V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firhome
V2EX  ›  职场话题

你们遇到过合作不给完整代码的情况吗?

  •  
  •   firhome · 40 天前 · 4658 次点击
    这是一个创建于 40 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一家公司找我们合作帮忙开发,对方新建了个 git 仓库。

    结果仓库里代码只给了基础的框架(前端,类似各种 admin 后台),逻辑代码通通不讲。

    他们已经做了许多开发,但是菜单一个都打不开(把相关菜单的代码从这个仓库里移出了)

    现在让我们帮忙开发,意思只新增菜单就行了。

    [新需求是照着他们之前的业务出的] 。

    他们这个 admin 用什么列表,什么搜索,弹框之类,以及他们自封的一些业务组件,我要参照他们之前怎么做的,好保持统一,现在一个都参照不了。

    真的无语,既然合作开发,这年头还有不给看全部代码的。

    38 条回复    2024-10-25 10:38:30 +08:00
    967182
        1
    967182  
       40 天前
    不给看全部代码不是太正常了吗? 保证能开发调试运行,最后能合并就行了。当然示例 demo 得有。
    smilenceX
        2
    smilenceX  
       40 天前
    倒也能理解,你这边工作缺少什么,找他们要就是了。
    brazz
        3
    brazz  
       40 天前
    常事,万事靠自己
    listen2wind
        4
    listen2wind  
       40 天前   ❤️ 1
    他不给就不保持统一了,反正以后他们二次开发是他们的事,实现功能就 ok
    gaobh
        5
    gaobh  
       40 天前
    遇到过收了首付款干了一半直接跑路的,代码什么全都没给,所以我现在找开发比较谨慎,有些开发素质真的没下限
    zjttfs
        6
    zjttfs  
       40 天前
    不是很正常吗?
    lyxxxh2
        7
    lyxxxh2  
       40 天前
    问题是给的跑不了。
    realpg
        8
    realpg  
       40 天前
    你入职腾讯微信的核心开发,你都是自己人了,你也看不到微信的全部代码。
    有规范,规范不够就找他们要,能 merge ,有测试方法,就够了
    对于要有一致性要求的,可以索要一两个 demo 页面用来扒结构
    firhome
        9
    firhome  
    OP
       40 天前
    @967182

    感谢回复,我没明白 前端不给看全部代码有意义吗,而且还是测试环境。他们是给我们单独建的仓库,我怀疑最后要人肉 copy 到他们自己的仓库去。

    而且对于列表上来说是有操作的,我自测的时候 点操作要进下一个流程/列表,然而不给我下一个流程的页面代码,我也无法自测,还得反复沟通,真的很费劲。
    liahu
        10
    liahu  
       40 天前
    正常的,基本保证你那模块能正常开发就行,他们有人合并的😀
    coderluan
        11
    coderluan  
       40 天前
    这么做很正常,而是实际上对方比你们更麻烦,就是单纯的对方为了安全抛弃了效率。至于这个是不是过度“安全”了,或者说对方是出于什么做这个决定的,外人就不知道了。可能是确实需要,可能是之前吃过亏,也可能是单纯的对方想多了。
    pacal
        12
    pacal  
       40 天前
    代码分隔没做好,但是不给全部代码是正常的,有需要找他们要就是了
    xz410236056
        13
    xz410236056  
       40 天前
    @realpg 那我倒是有个疑问了,客户端没有全部代码怎么运行调试呢?难道写完不管对错先 push 打包后靠 log 盲调?
    pkoukk
        14
    pkoukk  
       40 天前
    @xz410236056 首先,调试靠单测,功能基本没问题了再做集成测试。
    其次,系统开发都是插件式或者模块式开发,他肯定有一个什么功能都没有的裸框架。
    每个人开发自己的模块,合并进裸框架做测试,不要管别人做了什么功能,当然也看不到别的模块的代码。
    xz410236056
        15
    xz410236056  
       40 天前
    @pkoukk “首先,调试靠单测,功能基本没问题了再做集成测试”
    你不是做客户端开发的吧,没有完整代码 run 都 run 不起来,带界面的你怎么跑?
    pkoukk
        16
    pkoukk  
       40 天前
    @xz410236056 #15 单测还需要完整代码?你用的哪个上古语言?
    xz410236056
        17
    xz410236056  
       40 天前
    @pkoukk #16 “单测还需要完整代码?你用的哪个上古语言?”
    你这句话就证明你后端开发多了,你说你又不是搞前端开发的你在这里犟什么?
    你写个界面不运行起来脑补画面?运行起来就需要全部的代码,不然项目就报错。你说把界面诺出来到一个空白工程,不好意思,界面很可能很复杂引用了项目脚手架 ui 、组件之类的。你怎么挪,iOS 、安卓都是这样,就算是 web 工程也很少单测 vue 组件。

    最后,前端项目 UITest 做的要比 unitTest 多。。
    pkoukk
        18
    pkoukk  
       40 天前
    @xz410236056 #17 不好意思,脱离时代了。
    当年做过 windows 的客户端开发,那时候都是开发 dll ,放在裸框架 exe 文件的规定路径下,开 dbg 注入调试就行了。
    和楼主说的情况完全一样,裸框架里什么功能都没有,所有的功能都是 dll 注入进去的。
    没有想到现在基于前端技术的客户端开发比以前还不方便了....
    kpsanmao
        19
    kpsanmao  
       40 天前
    我遇到过屎山传家宝代码签保密协议的,就那代码我要不是为了钱,多看一眼我都想吐。
    pkoukk
        20
    pkoukk  
       40 天前
    @xz410236056 #17 后来短暂的写过一个前端项目的二开,它也是插件式的,把需要执行的 js,html 放在某个目录下,再在某个配置文件里写上这个插件的名称和配置,用户就会在菜单里看到这个功能。
    因为当年在传统软件公司,实际上卖给每个客户的版本就是这些插件功能的排列组合。我理解这种模式是刚需啊,怎么还牙膏倒吸,缩回去了呢
    ZGame
        21
    ZGame  
       40 天前
    @pkoukk #18 你这也不是啥正统 winform 开发, 也只有涉及第三方厂商类似金蝶用友那种可能会用这种 hooks 方法...
    xz410236056
        22
    xz410236056  
       40 天前
    @pkoukk #18 把几个界面打包成一个静态库(或者动态库、组件)这是可行的,可以单独跑的(但是不能调用主工程的相关组件之类的东西),但是公司开发功能总不能一个界面一个库吧。app 开发和 SDK 开发不太一样。
    FreeGuy
        23
    FreeGuy  
       40 天前
    太幼稚了,源码是核心,怎么可能说给就给,越是影响大的项目安全级别越高!
    pkoukk
        24
    pkoukk  
       40 天前
    @ZGame 插件式开发,我觉得挺正常啊,很多软件都是这个架构。
    guanhui07
        25
    guanhui07  
       40 天前
    很正常
    NakeSnail
        26
    NakeSnail  
       40 天前
    额外工作算钱就行,赚钱嘛
    yikyo
        27
    yikyo  
       40 天前 via iPhone
    不关你事,你只要正常开发就行了,期间导致开发成本高,开发体验不舒服,只要工资正常给你,其他事情没必要纠结
    lasuar
        28
    lasuar  
       40 天前
    合理的,按要求做就行了。
    ZGame
        29
    ZGame  
       40 天前
    @pkoukk #24 嗯算是插件式开发吧... 但有时候更像逆向那种 hooks 方法,就是对方没提供源码 ,然后调用他的软件的方法
    ZGame
        30
    ZGame  
       40 天前
    @pkoukk #24 跟 plugin 还是有区别,那个是对方主动提供的接口类,类似 java spi 那种模式,你只用按那个模式去写代码就可以了
    pkoukk
        31
    pkoukk  
       40 天前
    @ZGame #30 就是这个模式,dll 按照文档实现接口,框架按接口调用 dll 里的方法。
    只是区别在于,大部分情况下不提供框架的源码,所以集成测试的时候需要注入。
    ttyy22007
        32
    ttyy22007  
       39 天前
    有可能对方公司某个领导拍脑袋决定的,为了代码保密
    evill
        33
    evill  
       39 天前
    不知道为什么这么多人介意这个问题,或者单纯为了喷保密

    这很正常的事情,比如电商 app 这些,各部门代码隔离非常正常。

    营销部分只能看到活动部分,订单部门只能改订单。

    每个模块自己做一个单独的启动方式;通用的比如 session 等,开发走 mock 。

    上线直接 CI 打包就行。

    而且很多大项目,如果给你全部代码,编译都得半天。
    evill
        34
    evill  
       39 天前
    当然这种项目一般有一个框架,要求各个模块按照特定的方式接入。
    realpg
        35
    realpg  
       37 天前
    @xz410236056 #13
    为啥调试要客户端全部代码?我是真的 get 不到你为什么能问出这种问题

    我公司现在有个八手项目,是中国银行的业务系统中低柜的一个模块开发,不是打包成独立项目,最后就是要编译到中国银行每一个低柜窗口的系统内是系统内的一个模块,前后端都要做的。

    你不会认为为了调试这个东西,中国银行要把他整个柜员系统的代码都给我们吧。。。
    xz410236056
        36
    xz410236056  
       37 天前
    @realpg #35 你回复不看 context 的吗?
    xz410236056
        37
    xz410236056  
       37 天前
    @realpg #35 就问一句,iOS 和安卓,你打算每个界面(模块)都封装成 sdk 吗
    realpg
        38
    realpg  
       37 天前
    @xz410236056 #37

    行了 我知道你的问题在哪了 不用讨论了 你也不用回我了

    你压根就没跟海量的人协同开发过大型项目,尤其是合规要求严格的项目,项目管理完善的项目



    从你主贴的内容来看,你这次合作的公司别管对方人多人少规模大小,是个技术能力不错,且开发管理机制非常可靠的公司 而你只在中小规模项目组开发过,也没参与过任何规模较大合规严谨完善的项目 因为技术能力差的 想做这种拆分都做不到

    这样,导致你连怎么去协调这类场景开发,怎么跟上游架构师要东西都不会,也没有自己分析能力
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2566 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:23 · PVG 13:23 · LAX 21:23 · JFK 00:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.