V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Southside
V2EX  ›  问与答

公司项目里该不该夹带自己项目的代码?

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

    部门之前来了个初级前端。一开始项目忙没怎么注意他,但是看他写的代码发现根本不像是前端写的。vue 项目里组件全部写 render ,弹窗都是 Vue.extend 继承后手动挂载,相同的代码必抽 mixin ,甚至多处用到的弹窗还要绑定在 Vue.prototype 上。写功能就是 class ,然后引入一大堆自己写的各种 utils ,什么 typeUtils 、geoUtils ,htmlUtils 。一判断就用自己的代码,导致什么组件都要和他自己写的 utils 耦合,简直是造轮子狂魔。 最离谱的是表格文字超出要显示 tooltip ,他要监听表格大小变化,自己夹带的私货里还要用 webworker 。一问才知道原来是写 java 的。之前也说过他,理由是代码要精简,写 render 可读性差,夹带自己的代码不好维护。但是他说自己写习惯了,所以效果也不是很明显。 想问下大佬们,碰到这种情况一般是怎么处理的。

    17 条回复    2022-11-18 11:25:45 +08:00
    wanganjun
        1
    wanganjun  
       71 天前
    你要是他的领导自然可以管他,你要不是,只能找他的领导
    swulling
        2
    swulling  
       71 天前
    Code Review 的时候打回修改。
    Southside
        3
    Southside  
    OP
       71 天前
    @wanganjun 部门管理松散,基本都是项目组各干各的,他是和我写一个项目我才说他的
    Southside
        4
    Southside  
    OP
       71 天前
    @swulling 小公司没有 code review 这个环节
    marcong95
        5
    marcong95  
       71 天前
    表格文字超出要显示 tooltip 监听表格大小变化好像 element-ui 也是这样实现的吧,有什么好办法吗?

    弹窗绑 Vue.prototype 上也是 element-ui 的做法,所以综合来看应该是读了一波 element-ui 源码深以为然就到处用吧

    滥用 render/extends/mixins 确实多少有点奇怪了
    CEBBCAT
        6
    CEBBCAT  
       71 天前
    整理一下背景。标题提问的是可不可以夹带自己的代码。正文写的是楼主不喜欢他的实现方式。末尾问的是大家是怎么处理的。

    楼上追问,楼主补充部门松散,是同僚不是领导,公司没有 Code Review 。

    对于这种情况,我建议楼主还是放手别管。代码没有严重交集你就加一层适配器隔离开逻辑,严重交集你再说。
    原因楼主应该也明白,领导不管,没有工程文化,费力不讨好。你要是想提升自己技术能力的话,就练自己的刀,早日跳槽吧
    wu67
        7
    wu67  
       71 天前
    讲真, render extends 我干活 5 年都没用到过 hhh.
    mixins 倒是用的多, 但是也深感 mixin 的弊端, 就是溯源困难, 调试贼痛苦
    Southside
        8
    Southside  
    OP
       71 天前
    @marcong95 他的思路是监听表格元素大小的变化,一般前端的思路还是监听 resize 事件或者是鼠标拖动的事件吧,所以才会整出 webworker 。我最不满意的是他一碰到需求,就把自己整理的一大段代码(整个 util class )复制进来,也没有文档,到时候出了 bug 别人就要去看他自己夹带的代码。
    Southside
        9
    Southside  
    OP
       71 天前
    @CEBBCAT 三线城市机会少,加上最近领导也给我涨了工资,还想在这干,所以要考虑以后维护的事情。
    marcong95
        10
    marcong95  
       71 天前
    @Southside #8 例如一个侧栏展开收起的时候,表格宽度发生变化,监听 resize 无效吧。如果让表格的组件监听展开收起那个按钮的事件,又显得不太优雅。但是我是不太了解这时候怎么能扯出来 webworker 的,webworker 里面不是不访问 DOM 的么,应该可以上 ResizeObserver 之类的吧。

    utils 这个没见过 utils 本身,有点难想象,你可以让他把这堆 utils 开源一波~~造轮子不开源还有什么意思
    suzic
        11
    suzic  
       71 天前 via Android
    有使用文档的话都可以接受
    learningman
        12
    learningman  
       71 天前 via Android
    问问他的 utils 能不能合并一下发 npm 或者公司私有库,稳定性可维护性也有保证
    silencil
        13
    silencil  
       71 天前 via iPhone
    其实看关系,我和同事也是同级,共同维护几个模块,为了保证代码风格,一开始我直接帮他写,然后关系处的很熟了,后面给他讲解怎么写,他也不会反感。
    Southside
        14
    Southside  
    OP
       71 天前 via Android
    @suzic 没有文档,只有开头几句注释
    potatowish
        15
    potatowish  
       71 天前 via iPhone
    然后引入一大堆自己写的各种 utils……
    已经是 java 的形状了
    IvanLi127
        16
    IvanLi127  
       71 天前 via Android
    项目谁负责?他负责你听他的,你负责他听你的,不是你们负责的话,你写你的他写他的。不过考虑公司利益和你们的体验,向领导确认汇报下呗?

    人家轮子未必不是好事,就是。。。看这名字不像什么优秀的轮子。
    NerbraskaGuy
        17
    NerbraskaGuy  
       70 天前
    草,你的描述让我想起我之前接手一个前端项目的噩梦了,简直一模一样,当时也怀疑是个后端客串写的,接手后改起来发现一个套一个跟套娃一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   2545 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 02:38 · PVG 10:38 · LAX 18:38 · JFK 21:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.