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

如何平衡开发效率和代码优雅性?

  •  
  •   txzh007 · 60 天前 · 2686 次点击
    这是一个创建于 60 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这里说优雅性只是一个比喻.

    下面是一个场景,请问大家是如何面对的?

    得到一个新需求,评估时间不长,逻辑也很简单,但是和之前代码有关联,后续也有可能会复用这段逻辑

    方式 1. 用最快速的方法解决,然后该干嘛干嘛, 屎山+1

    方式 2. 对老代码进行重构,解耦,优化逻辑,代价 时间成本上升,在评估时间内可能无法完成
    28 条回复    2024-07-12 18:14:29 +08:00
    hidder
        1
    hidder  
       60 天前
    1.多摸会🐟
    2.多找点其他方面的事去做
    shadowyue
        2
    shadowyue  
       60 天前
    个人追求+时间+待遇水平,综合考量
    tool2dx
        3
    tool2dx  
       60 天前
    评估时间 x 2, 尽可能在项目周期内完成。
    LikeMurphy
        4
    LikeMurphy  
       60 天前
    评估时间内完成任务放第一位
    wu00
        5
    wu00  
       60 天前
    项目前期方式 2 ,被各种质疑,经常延期
    项目后期方式 1 ,需求越来越密集,节奏越来越快,屎山速度成指数级增长
    Richared
        6
    Richared  
       60 天前
    做新需求有工作量,改屎山自己一堆工作量,再领导那没有工作量,是太闲了么?上班不就是为了赚钱么,别扯有的没得,个人追求可以自己搞点开源项目,放简历上还好看。有时间还不如摸摸鱼呢。
    estk
        7
    estk  
       60 天前 via iPhone
    看老板,有些老板不懂代码,能实现就行,考核指标不含代码质量,那就策略 1
    有的老板懂技术,本身对代码质量要求高,考核指标包含代码质量,那就策略 2
    crz
        8
    crz  
       60 天前
    想法是方式 1+方式 2 ,优先可用,然后适量整理调优
    现实是方式 1 ,方式 1 ,。。。没有足够的资源方式 2
    SuperManNoPain
        9
    SuperManNoPain  
       60 天前
    一般来说是看后面这东西是我是我继续负责,是的话一般就代码质量写好一点,毕竟有坑的话还得自己填
    LoNeZ
        10
    LoNeZ  
       60 天前
    shi 山很多来源于需求不明确..
    wwd179
        11
    wwd179  
       60 天前   ❤️ 1
    同意。屎山很多时候来源于需求不明确。
    有时候一个系统经过多次迭代开发后,和设计初衷都不一样了。
    dudubaba
        12
    dudubaba  
       60 天前
    你离职后,你重构过 N 遍自认为优雅的不能再优雅的代码,再下一任维护者眼里就是坨便便。所以跟自己和解,在自己觉得优雅范围内不影响效率的情况下编码,会少很多烦恼事。
    povsister
        13
    povsister  
       60 天前
    看待遇,给多少钱干多少事。
    看环境,同事普遍高水平就严要求。
    看老板,如果你意见和老板不一致,那老板说得对。
    zhazi
        14
    zhazi  
       60 天前   ❤️ 1
    你这个“有可能“有多大可能,有很多时候你认为的有可能只是你认为的。
    在没有明确需求的情况下去为未来做一些事更容易产生屎山。
    你总想的那么多,别人看你代码就像屎山。
    SoviaPhilo
        15
    SoviaPhilo  
       60 天前   ❤️ 1
    成年人要明白一个道理, 就是谁承担最大的后果, 就应该承担最大的责任。

    你们公司有正经组织工程师培训什么叫优雅吗?
    你们公司有愿意为了更优雅的代码付出更多时间成本吗?

    没有?又不是你的项目, 老板都不急你急什么
    ychost
        16
    ychost  
       60 天前
    大部分是 1 ,当遇到产品大改就会顺便把 2 做了
    pkoukk
        17
    pkoukk  
       60 天前
    用 AI 写,几乎不存在 2 了
    pkoukk
        18
    pkoukk  
       60 天前
    @pkoukk 写错了,几乎不存在 1 了
    xueling
        19
    xueling  
       60 天前   ❤️ 3
    1 、原来的代码暂时不动,通过简单修改包路径防止互相交叉,新写的代码完全按新逻辑开发,要充分考虑兼容老代码逻辑,保证按时完成;
    2 、陆续按模块迁移老逻辑的代码到新模块中,这个过程的进度完全根据自己可支配时间决定,然后陆续删除老逻辑;
    3 、工作汇报、周报中尽量避免用 “代码逻辑优化、重构”这种模糊字眼,要不然就算你做了再多别人也会认为你在摸鱼。
    4 、评估排期时,实际所需时间和评估时间,要尽量控制在 2:3 以内,这样你剩余的时间可以充分进行想要去做的优化工作;
    5 、设计数据库字段、表结构、接口协议时要充分思考,因为这些地方设计的不好,上线后再改可就麻烦了。
    Younow
        20
    Younow  
       60 天前
    让自己变强
    sampeng
        21
    sampeng  
       60 天前
    其实。。除了加班。。无解
    txzh007
        22
    txzh007  
    OP
       60 天前
    @zhazi 突然顿悟了 hah
    night98
        23
    night98  
       60 天前
    公司不考核这方面,就是单纯扯淡。
    其次很重要的一点,是必须团队统一规范和风格,否则说这些就是扯淡

    综合来看,国内能做到以上两条的公司为 0
    因此讲究优雅实质上没啥意义,纯个人暗爽而已

    我选择直接往上拉屎
    新开的就稍微讲究点
    Tenlearn
        24
    Tenlearn  
       60 天前 via iPhone
    做给谁看?你有那功夫实打实的压缩了时间老板看在眼里,你加了两天工时,老板会打开 ide 看你的代码,然后发现你不仅写的漂亮还优化了老代码?可能吗!
    1000copy
        25
    1000copy  
       60 天前
    @xueling 真是实践者的建议,有实践有理论👍。这样的好内容不多,v2 很多时候都是虚无主义的天下。
    1000copy
        26
    1000copy  
       60 天前
    赞。

    ---
    1 、原来的代码暂时不动,通过简单修改包路径防止互相交叉,新写的代码完全按新逻辑开发,要充分考虑兼容老代码逻辑,保证按时完成;
    2 、陆续按模块迁移老逻辑的代码到新模块中,这个过程的进度完全根据自己可支配时间决定,然后陆续删除老逻辑;
    3 、工作汇报、周报中尽量避免用 “代码逻辑优化、重构”这种模糊字眼,要不然就算你做了再多别人也会认为你在摸鱼。
    4 、评估排期时,实际所需时间和评估时间,要尽量控制在 2:3 以内,这样你剩余的时间可以充分进行想要去做的优化工作;
    5 、设计数据库字段、表结构、接口协议时要充分思考,因为这些地方设计的不好,上线后再改可就麻烦了。
    lizy0329
        27
    lizy0329  
       59 天前
    没事你动老代码干嘛?如果你老板是你爸爸,可以选择方法 2
    shellus
        28
    shellus  
       57 天前
    依次辩驳一下前面发言:
    1. 下一任维护者眼里就是坨便便
    说明你从没看过好代码,所以任何你看不懂的代码你都觉得是坨便便,这只是你个人的问题,并不是普遍情况,好的代码很多,就像艺术品,可惜你没见过或者见到了也认不出。
    好的代码并不是说设计模式用的多,代码行数少,而是它精准的满足了需求,不多不少,也不会因为炫技或者盲目满足某些设计规范而增加代码复杂度。

    2. 给多少钱干多少事
    这很好解答,你应该找愿意为你能力买单的工作,而不是有多少钱干多少事,别告诉我你的能力已经没人能出的起对应价格了,也许你应该重新自我评估。

    3. 很多来源于需求不明确
    需求从来都是不断变化的呀,变化也是需求的一部分。这是我们本来就应该努力做好的工作。

    4. 这东西是我继续负责的话代码质量写好一点
    这和外地人在街上吐痰拉屎有什么区别?不是我家我就糟蹋,我就没素质,因为环境好了我也无法享受到成果?这是一种严重的误解。
    人生从来就是过程而不是结果,就像你吐了一口痰,走几步你就会踩到一坨屎,因为前面一个人也是和你一样想的。
    另一点误解就是,你其实很难选择写出“好代码”,你只能在写出“符合我水平代码”和“糟糕的代码”之间选择。

    5. 老板懂的话代码质量就写高一点
    老兄,你该换工作了,如果老板甚至都不知道你的工作成果的质量水平,凭什么认为他会给出合适的待遇呢?
    如果他给多了而不是给少了,那么说明他连基础的市场买卖都没搞懂,项目也不会在市场上脱颖而出,简而言之就是没有未来。
    另一方面讲,如果给多了,为什么你没有点感恩的心态,努力将事情做好,匡扶汉室于危难?而是一边拿着有愧的待遇,一边还做着不负责任的事情?

    6. 个人追求可以自己搞点开源项目
    工作对于大部分人来说就是人生中最重要的事情,如果可以,最好将全部的精力和时间投入其中。
    除非你已经摸到了职业生涯的天花板,哦~ 抱歉,我不小心摸到了你的痛处。

    7. 评估时间内完成任务放第一位
    这是正确的,但用一个正确的观点来论证另一个问题是不合逻辑的。
    在保证完成任务的前提下,剩余的空间才是讨论项目完成质量的空间。

    ---

    最后,我很痛心,看到这么多负面的关于项目质量的发言,使我对这个行业的未来感到担忧,也对你们可能被 AI 或者其他什么东西取代而失去赖以糊口的工作产生担忧。
    我希望行业中能出现更多的独立思考和发言,更多的对于技术的热爱和对于工作的责任感。
    少一些负面情绪,多一些积极的态度,这样我们的行业才会有更好的未来。
    赶日超美,加油!希望我们行业的后辈不再说出那句“国外的软件更发达”,就像我们现在已经不再说“国外的汽车更好”一样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:34 · PVG 08:34 · LAX 17:34 · JFK 20:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.