V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
voidmnwzp
V2EX  ›  程序员

大家公司的项目代码会写的尽善尽美吗

  •  3
     
  •   voidmnwzp ·
    NullpointerW · 2022-08-18 12:43:50 +08:00 via iPhone · 12726 次点击
    这是一个创建于 830 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如命名变量讲究,尽量低耦合设计,接口测速,尽可能的优化和压榨性能等等,我之前写业务代码是打算这么做,但又想到这些个代码又不属于自己,优化的再好老板也不会给加工资,想通后所以现在是估期多估 2d ,尽量快速完成开发,至于优化啥的等测试提再说,没提是最好,然后剩下时间全用来写自己的开源项目,好歹 GitHub 上的项目写在简历上面试官可能会看
    166 条回复    2022-10-14 10:34:59 +08:00
    1  2  
    lessMonologue
        1
    lessMonologue  
       2022-08-18 12:47:38 +08:00
    工期紧,能跑就行。有什么非要优化的理由吗
    uiosun
        2
    uiosun  
       2022-08-18 12:50:59 +08:00   ❤️ 4
    @lessMonologue 是人能跑,还是代码能跑?
    voidmnwzp
        3
    voidmnwzp  
    OP
       2022-08-18 12:51:59 +08:00 via iPhone
    现在写业务代码就是快速流水账了 无脑命名变量,能在一个方法里写完的逻辑绝不拆分,数据全查 db ,如无必须绝不用缓存
    qiumaoyuan
        4
    qiumaoyuan  
       2022-08-18 12:52:24 +08:00   ❤️ 17
    感觉多数程序员就是短期混,长期熬。要想长期不难受,自始至终只有不停地跟熵作斗争这一条路。时时勤拂拭,勿使惹尘埃。
    qiumaoyuan
        5
    qiumaoyuan  
       2022-08-18 12:53:01 +08:00   ❤️ 44
    技术债早晚得自己买单,不是在项目上,就是在职业生涯上。
    wjfz
        6
    wjfz  
       2022-08-18 13:01:10 +08:00   ❤️ 27
    当然是认真写,下班偶尔也会重构优化,甚至有时候做梦都是解决方案。

    1 、要对得起自己的良心。
    2 、质量 > 数量,面试官一看 GitHub 上的代码稀碎也不好,况且一般来说不出名的项目也加不了几分。
    3 、很多设计和优化是在工作中领悟到的,公司的项目肯定比自己的小项目复杂。
    4 、世界很大,圈子很小,口碑很重要。
    wangtian2020
        7
    wangtian2020  
       2022-08-18 13:02:07 +08:00   ❤️ 2
    我前端,爱把代码写的尽可能的短,能用新特性就用,其他真的不讲究
    meteor957
        8
    meteor957  
       2022-08-18 13:03:45 +08:00
    取决于工期,代码质量远没有按时上线重要
    xsqfjys
        9
    xsqfjys  
       2022-08-18 13:07:08 +08:00   ❤️ 1
    时间充足会尽量优化 后续出 bug 或者有变动改起来也简单
    其次也是实践练习了,天天写垃圾哪天想写点好的都写不出来
    golangLover
        10
    golangLover  
       2022-08-18 13:08:43 +08:00 via Android   ❤️ 1
    会的,对自己一种训练
    duan602728596
        11
    duan602728596  
       2022-08-18 13:18:25 +08:00   ❤️ 5
    会的,因为写好了,后面加需求或者删代码也会快很多。节省的也是自己的时间,这个时间无论是学习、划水还是干私活都是赚到了。而且简历上也有资本吹了。
    dalianliyan
        12
    dalianliyan  
       2022-08-18 13:21:56 +08:00
    代码质量差不多就行。实际工程项目还是要数据在里面了,才有优化的方向。理论上快排比插入性能高,可实际数据就 20 几个,实际插入性能还更好些。
    jatsz
        13
    jatsz  
       2022-08-18 13:26:15 +08:00
    如果你合作的 repo 人数够多,当团队人员技术过了一个门槛以后,尽善尽美代码本身的收益会很小。更多的收益或者时间花费在工程和业务的梳理上。我相信我所在的团队,如果能排除工程干扰(legacy code)干扰,能明确业务,每个人都能写出 good enough 的代码。
    SuperManNoPain
        14
    SuperManNoPain  
       2022-08-18 13:28:12 +08:00
    工时不紧张的话,会写好一些,毕竟平时都写不出好代码,真想好好写,又怎么写得出来呢
    snowsui
        15
    snowsui  
       2022-08-18 13:28:39 +08:00   ❤️ 7
    时间允许的情况下会尽量优化
    1 、可以节约自己将来的时间
    2 、方案做的好晋升的时候可以吹
    3 、可以锻炼自己的能力,百万的 qps 和自己那点比还是差不少
    4 、你写的代码人人都看得到,写的怎么样大家心里都有数
    5 、强迫症会尽量让自己写的好看
    renmu
        16
    renmu  
       2022-08-18 13:32:54 +08:00 via Android
    有一个能跑就行
    JamesR
        17
    JamesR  
       2022-08-18 13:33:43 +08:00
    有余力当然会做,其实最要紧的是先把缺的,必要的注释写上。
    Shura
        18
    Shura  
       2022-08-18 13:35:49 +08:00
    你没想过你可能重构你之前写的代码吗?
    sunhelter
        19
    sunhelter  
       2022-08-18 13:36:56 +08:00
    如果公司各方面都能让你满意,想长期干下去,那当然要
    serialt
        20
    serialt  
       2022-08-18 13:38:06 +08:00
    能跑就行,不要管是代码还是你
    polo3584
        21
    polo3584  
       2022-08-18 13:49:25 +08:00
    自己长期维护的项目,尽量考虑得全一些。加班赶工的项目,能跑就行,以功能实现为主要目标。合作负责的模块和接口,注释详细免得别人看不懂还要来问。
    bigpigB
        22
    bigpigB  
       2022-08-18 13:51:28 +08:00
    @qiumaoyuan 我直接组长天天埋雷带坑,然而人家跪舔领导厉害,依然稳
    wolfie
        23
    wolfie  
       2022-08-18 13:53:00 +08:00
    能跑就行的代码,真的会提高开发速度吗?
    wukongkong
        24
    wukongkong  
       2022-08-18 13:53:54 +08:00 via Android
    当然。如果手下代码有问题会指出,要求必须改。不然和咸鱼有什么区别。我们的代码因为业务多,经常重构,整体质量越来越稳定,客诉逐渐变少。
    huangwei8ku
        25
    huangwei8ku  
       2022-08-18 13:58:06 +08:00
    怎么说呢?不影响工期进度,可以按照领导的要求好好写,但如果超出项目期限了,领导不背锅,那就不给他写
    ihciah
        26
    ihciah  
       2022-08-18 13:58:52 +08:00
    可以慢慢迭代,但不接受自己造💩
    justin2018
        27
    justin2018  
       2022-08-18 14:00:06 +08:00
    不会

    写得好 下一个毕业的 就是你~
    qiumaoyuan
        28
    qiumaoyuan  
       2022-08-18 14:04:23 +08:00
    讨论的朋友蛮多的,补充一下。其实工期太紧,跟领导又说不通(延长工期、给时间重构之类)的话,有两种选择:可以临时选择应付一下,再用业余时间来完善;或者干脆把完美主义贯彻到底,上班写不完下班回家写,这跟前一种选择差不多,都是占用业余时间。但最后受益的仍然是自己。就如前面几楼的朋友说的,一方面往后的工作会舒服很多,可能就不用再占用业余时间了;另一方面自己成长的受益是一辈子的。

    当然如果公司又赶工期又整天加班到完全没有业余时间,甚至整天睡眠不足严重损害健康,就像我上一份工作那样,那我会选择走人。
    Mexion
        29
    Mexion  
       2022-08-18 14:06:03 +08:00
    不会,主要写的又不是自己喜欢的,随便写能跑起来就行
    insert000
        30
    insert000  
       2022-08-18 14:06:13 +08:00
    那就看是对谁了,自己公司产品 还是会写的好点,给客户交付的又事逼又不砍需求的,能用就行
    shyangs
        31
    shyangs  
       2022-08-18 14:07:42 +08:00
    過早的優化是萬惡之源.

    從理論上來說,抽象程度越高執行速度越慢:过程式编程 快於 面向对象 快於 函数式编程





    所以你選擇速度優化還是抽象優化
    southsala
        32
    southsala  
       2022-08-18 14:10:21 +08:00
    对于公司项目代码来说,所谓代码质量也是为了工程化服务,稳定、快速、简单
    mosliu
        33
    mosliu  
       2022-08-18 14:13:10 +08:00   ❤️ 3
    当一块东西完全自己负责及负责任时,写的越好对自己越好。起码不用半夜被从床上叫起来修 bug
    Jinnyu
        34
    Jinnyu  
       2022-08-18 14:14:44 +08:00   ❤️ 1
    其实你可以换个角度去考虑
    代码质量的高低 完全取决于真正写代码的人
    不在于是公司的项目还是个人的项目

    **无论如何对项目有整体的设计和预估是高质量代码的开端, 不要为了用某某技术而使用某某技术.**
    点名 Java 中的微服务模式, 尽管我也是 Java 开发. (仅限那些为了微服务而微服务的傻屌决策者)

    良好的代码设计 /分层 /逻辑是不会欺骗你的
    这些是属于你的能力, 不会因为是公司的项目就留在公司.
    长时间的累计后你会发现, 即使你想写的烂也不会离谱到哪去.
    wuxinling
        35
    wuxinling  
       2022-08-18 14:21:44 +08:00
    写得好纯粹是为了偷懒,以后也是自己维护,写的好一点,后面省心一点。
    baiyi
        36
    baiyi  
       2022-08-18 14:24:50 +08:00   ❤️ 1
    软件的可维护性也是工作的一部分,这是软件研发团队需要明白的一点,研发团队也需要为此与其他团队抗争,来保证这一点。同时这也是作为软件开发人员职责的一部分,如果忽视软件可维护性的价值,那么系统将会越来越难以维护,总有一天会变得无法维护,如果系统变成这样,那么说明你没尽到责任。

    这是我从《 Clean Architecture 》这本书中学到的,也一直在用其要求自己。虽然不太符合大多数公司的现状,但也可以尽量让其他人或团队明白软件架构和代码整洁的必要性。
    Kontinue
        37
    Kontinue  
       2022-08-18 14:28:22 +08:00
    代码自然是能写好就写好,至于性能,除非前期就明确了性能指标,否则按序优化吧
    jackie8tao0306
        38
    jackie8tao0306  
       2022-08-18 14:29:38 +08:00   ❤️ 1
    在国内这是不可能的,100%不敢说,99%是可是说的。
    Leviathann
        39
    Leviathann  
       2022-08-18 14:31:02 +08:00
    第一次写,糊屎或许会快
    下次要改动呢?
    Leonard
        40
    Leonard  
       2022-08-18 14:32:14 +08:00
    看项目,长期项目尽量写得模块化好复用,但是产品总能整幺蛾子让你没法直接复用
    blackboom
        41
    blackboom  
       2022-08-18 14:36:04 +08:00
    愚蠢啊!
    ysn2233
        42
    ysn2233  
       2022-08-18 14:39:49 +08:00
    开始会,然后越来越不会
    nekoneko
        43
    nekoneko  
       2022-08-18 15:01:14 +08:00
    自己从开始就负责的项目会, 接手的粪堆不会.
    weivi
        44
    weivi  
       2022-08-18 15:01:34 +08:00
    会,作为一个小项目的负责人。从长期来看,适当的优化可以降低之后的开发难度,新人来了也容易快速上手。该优化的不优化,总有要还债的时候。
    xaplux
        45
    xaplux  
       2022-08-18 15:03:37 +08:00
    有时间就打磨打磨,没时间就凑合凑合
    blastbao
        46
    blastbao  
       2022-08-18 15:06:11 +08:00   ❤️ 1
    前提是工作稳定,在互联网公司没准哪天业务、岗位就没了,想不到较真的意义在哪。写的太简洁、通用反而是工程师被替代的催化剂。
    murmur
        47
    murmur  
       2022-08-18 15:07:42 +08:00
    @shyangs

    https://leanylabs.com/blog/js-forEach-map-reduce-vs-for-for_of/

    你们的数据谁有问题,for loop 快于 for each ,只是 3-4 倍的速度,你那个图里的太离谱了
    pengtdyd
        48
    pengtdyd  
       2022-08-18 15:12:30 +08:00
    代码和人有一个能跑就行,写那么好给谁看?
    Leviathann
        49
    Leviathann  
       2022-08-18 15:12:41 +08:00
    @shyangs 少 render 一次够执行几万遍 foreach 了
    lujiaosama
        50
    lujiaosama  
       2022-08-18 15:14:09 +08:00
    在时间允许的前提下, 对自己有点要求优化下代码, 看起来有满足感, 维护起来轻松, 复用起来方便, 下次写类似代码就能又快又好.
    shyangs
        51
    shyangs  
       2022-08-18 15:18:23 +08:00
    @murmur

    ie6 ~ ie8 都不支援 Array.prototype.forEach(),
    我以為你只用 for-loop
    jsjgjbzhang
        52
    jsjgjbzhang  
       2022-08-18 15:19:36 +08:00   ❤️ 4
    如果公司优化员工的时候会考虑这么多就好了
    ymmud
        53
    ymmud  
       2022-08-18 15:22:42 +08:00
    需要自己维护的上点心,其它的烦不了
    icyalala
        54
    icyalala  
       2022-08-18 15:23:35 +08:00
    不同公司、不同项目,差别大得很。是我经过的几家公司,大部分人都不会。
    但时间允许的话,我自己还是会尽可能写好一些的代码。
    Maxwe11
        55
    Maxwe11  
       2022-08-18 15:30:33 +08:00   ❤️ 5
    公司研发能够活下去的研发核心理念:

    1 、汇报比代码重要;
    2 、尽善尽美的代码和低 bug ,首先业务导向的企业掌权的没人会 review 你的代码,另外低 bug 会显得你在公司无足轻重,那些每日产出 bug ,天天配合业务找错,1 、2 年不得已就得推倒“研发”全新版本的技术人员尤其备受公司重视。

    公司系统尤其是业务代码也不可能拿出去,所以节省点儿时间,差不多就得,速度效率首位,有人问这就是“敏捷开发”,省下来的时间想提升技术的自己拿理念正经琢磨清楚,然后换个业务形式重写一次;

    重视人生体验的,有这闲功夫去维护维护妹子关系,孝敬孝敬父母,跟朋友烧烧烤,喝喝酒,出去跑跑步,比啥不强。
    rockoverflow
        56
    rockoverflow  
       2022-08-18 15:37:34 +08:00
    业务代码可以看作垃圾
    mingl0280
        57
    mingl0280  
       2022-08-18 15:41:23 +08:00
    会,主要是因为产品卖出去了一般要用十年的,不写好代码客户天天找你赔的钱都能把部门给卖了……
    fournoas
        58
    fournoas  
       2022-08-18 15:43:17 +08:00
    @qiumaoyuan 首先,公司寿命不一定有你代码寿命长;其次,到时候说不定早就跑路了
    fournoas
        59
    fournoas  
       2022-08-18 15:43:57 +08:00
    个人项目会,公司项目不会。
    joooooker21
        60
    joooooker21  
       2022-08-18 15:44:18 +08:00
    当然会

    题外话,既然对公司这么厌恶,为何不跑呢?既不开心,也没有提升
    salmon5
        61
    salmon5  
       2022-08-18 15:46:05 +08:00
    我碰到的这种人极少,和工作强度无关,都想躺着领工资
    bear2000
        62
    bear2000  
       2022-08-18 15:48:30 +08:00
    自己当然是认真写好,但是开发周期太短,整体的代码稀巴烂
    wupher
        63
    wupher  
       2022-08-18 15:48:31 +08:00
    sometimes

    你读书时,高考除外,会坐在考场里冥思苦想,尽全力考一个更好的分数吗?
    fstar
        64
    fstar  
       2022-08-18 15:48:49 +08:00
    不会。因为我改不动同事的复杂代码。每次要修同事的代码就头大。真就前人爽拉屎,后人吃屎
    HashV2
        65
    HashV2  
       2022-08-18 15:53:00 +08:00   ❤️ 7
    我之前一个妹子开发同事,review 代码的时候 leader 说她某个地方写的不好,可以怎么怎么优化,
    她说:这样写也没有问题啊。leader:这样写 cpu 它不累吗?妹子:它累让他累呗,又不是我累
    我当场没忍住笑出声了。
    qiumaoyuan
        66
    qiumaoyuan  
       2022-08-18 15:54:22 +08:00   ❤️ 3
    @fournoas 这么说吧,对代码真能写得干净的程序员来说,不存在这种“要不要把代码写好”的问题。
    rxswift
        67
    rxswift  
       2022-08-18 15:54:51 +08:00
    @uiosun 人和代码,有一个能跑就行
    rxswift
        68
    rxswift  
       2022-08-18 15:56:04 +08:00
    @HashV2 有些女同志真的让人一言难尽
    karott7
        69
    karott7  
       2022-08-18 15:58:13 +08:00
    非必要情况不去优化,一是怕改崩了或者没改好,再就是有空多研究新技术,好出去面试吹
    dcsuibian
        70
    dcsuibian  
       2022-08-18 16:03:16 +08:00
    会尽量往好了写,这是职业素养,但还不至于尽善尽美。

    工作中,需求可能反复变更,领导和同事不是很重视代码、性能甚至是功能,团队其它成员的技术栈和水平,不喜欢现有的代码风格等,这些都会影响到工作热情。

    自己的项目可以精益求精,写法和变量名可以再三修改,但也会想这样是不是浪费了不少时间。

    而且公司的项目再怎么烂还是拿来赚钱的,自己的就很难说能派上多大用途,陷入自我怀疑。
    yaphets666
        71
    yaphets666  
       2022-08-18 16:04:55 +08:00
    @qiumaoyuan 溜了就是别人买单了
    fournoas
        72
    fournoas  
       2022-08-18 16:11:19 +08:00
    @qiumaoyuan 太天真了,你要看产品怎么给你半路加功能了
    bitmin
        73
    bitmin  
       2022-08-18 16:13:57 +08:00
    成本不高的情况下会改,成本高的就不动了,不过度优化。主要还是因为时间有富裕。
    qiumaoyuan
        74
    qiumaoyuan  
       2022-08-18 16:18:41 +08:00
    @fournoas 我觉得你先理解我说的话吧。
    intmax2147483647
        75
    intmax2147483647  
       2022-08-18 16:20:05 +08:00
    写代码不追求写的更好更优雅的程序员,还是尽早转行吧
    hay313955795
        76
    hay313955795  
       2022-08-18 16:23:57 +08:00
    代码的最初形态都是尽善尽美的。能模块化的就模块化....后面工期紧了 只能瞎补了
    pkoukk
        77
    pkoukk  
       2022-08-18 16:24:38 +08:00
    新项目好好写,屎山看心情,大部分情况下都会入乡随俗
    chenyu8674
        78
    chenyu8674  
       2022-08-18 16:26:48 +08:00

    防止被未来的自己穿越回来掐死
    funbox
        79
    funbox  
       2022-08-18 16:29:52 +08:00
    做的太好 带动不了就业啊
    leisure
        80
    leisure  
       2022-08-18 16:30:15 +08:00

    想掐死三年前的自己
    cxbig
        81
    cxbig  
       2022-08-18 16:32:37 +08:00
    不被 PR 打回来的前提下,越快完成越好。
    打磨是没有止境的,自己找效率和质量的平衡就好。
    elevioux
        82
    elevioux  
       2022-08-18 16:37:20 +08:00
    时间充足的话,还是会仔细考虑代码 /项目结构的,因为不能给后续开发埋太多坑。

    时间紧的话,怎么快怎么来了。明明知道这样写不太妥,但是,,罢了罢了,我只想下班。。。。
    otakustay
        83
    otakustay  
       2022-08-18 16:37:37 +08:00   ❤️ 1
    代码写得尽善尽美难道不是属于自己的快乐吗
    qzhai
        84
    qzhai  
       2022-08-18 16:40:05 +08:00
    不会,
    项目永远至服务于客户的。
    所以永远都会已解决用户需求的角度出发,即使是大公司也是这样。
    开源代码之所以很规范的原因也是如此,因为这也是用户需求的一部分。
    fournoas
        85
    fournoas  
       2022-08-18 16:44:52 +08:00
    @qiumaoyuan 也请您理解一下
    onice
        86
    onice  
       2022-08-18 16:54:48 +08:00
    在满足项目要求的情况下,怎么快怎么方便怎么来。

    如果优化做多了,项目进度就慢,其他同事还会觉得你是拖油瓶。

    比如文件上传,应该禁止脚本后缀的。按理说前端,后端都应该去检查。

    但实际是前端大概检查下,后端直接忽略。

    上线后网站被攻击了,和我又有什么关系呢?反正项目已经验收了。

    如果我在开发的时候,去考虑 xss ,写过滤器。csrf 漏洞,每个提交表单都去验证 token ,纯属是给自己找不自在。

    多做事却不出成绩。
    qiumaoyuan
        87
    qiumaoyuan  
       2022-08-18 16:58:28 +08:00
    @fournoas 话是我先说的,你在跟我对话,难道不是要先看明白我在说什么?你的逻辑啊。
    qiumaoyuan
        88
    qiumaoyuan  
       2022-08-18 16:59:33 +08:00
    @fournoas 小孩式的争论就不必了。
    Eathein
        89
    Eathein  
       2022-08-18 17:07:16 +08:00
    在我看来一切工作都该以对跳槽涨薪有帮助为导向。普通项目糊完就行,优质项目好好完成可以写进简历。有时间就该多摸鱼多划水多为下一份工作学习技能。
    456789
        90
    456789  
       2022-08-18 17:15:07 +08:00
    开始尽量写得好导致一直拖任务,后来就随便写了,能跑就行,之前公司的老人一个没有了全跑了
    LoNeFong
        91
    LoNeFong  
       2022-08-18 17:16:22 +08:00
    我是时间决定的 排期紧到 996 谁会想着抽象,tmd 能做完就不错了
    写个人项目时间充裕的时候会反反复复琢磨优化
    offswitch
        92
    offswitch  
       2022-08-18 17:17:31 +08:00
    @fournoas 别跟这些人打嘴炮了,这些人也就嘴上说说,实际上工作中一大堆 shit hole,别人接手觉得写的一坨屎,他们还沾沾自喜觉得自己写的比较好,所以别人看不懂。
    绝大部分人写的代码说得不好听,就是一坨屎,完全没啥学习价值,就是为了完成业务而已
    salmon5
        93
    salmon5  
       2022-08-18 17:17:45 +08:00   ❤️ 1
    你写的尽善尽美,领了一份工资;
    你的同事没有写的尽善尽美,少于你很少的时间,领了一份工资,并且保护了身体健康;
    你的同事没有写的尽善尽美,少于你很少的时间,领了一份工资,搞了一份兼职,领了 2 份工资;
    Shiu
        94
    Shiu  
       2022-08-18 17:25:02 +08:00
    如果在屎山上作业,能把原来的屎包起来已经很了不起了
    TomVista
        95
    TomVista  
       2022-08-18 17:26:46 +08:00
    我主要工作是写小程序快应用, 能跑就行,没写过的人,是不知道小程序快应用开发体验有多恶略.dog
    yuelang85
        96
    yuelang85  
       2022-08-18 17:27:07 +08:00
    我想,老板不让。出了问题,老板骂人
    Kakarrot
        97
    Kakarrot  
       2022-08-18 17:27:39 +08:00
    我写 maxscript 都进来重构好几轮 因为之前自学所以写项目时候 一个版本发出去后就开始优化重写第二版了...

    强迫症没办法
    bytesfold
        98
    bytesfold  
       2022-08-18 17:29:56 +08:00
    必须要写精,很多知识都是不断修改的时候积累的。
    ashtwo
        99
    ashtwo  
       2022-08-18 17:31:04 +08:00
    刚开始的时候会,但之后因为一直压工期,多个项目并行后就不会了。
    fournoas
        100
    fournoas  
       2022-08-18 17:42:43 +08:00
    @offswitch 看到“用业余时间来完善”、“上班写不完下班回家写” 什么的,我差点笑出声
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1026 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 21:00 · PVG 05:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.