• 请不要在回答技术问题时复制粘贴 AI 生成的内容
txzh007
V2EX  ›  程序员

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

  •  
  •   txzh007 · Jul 9, 2024 · 4625 views
    This topic created in 848 days ago, the information mentioned may be changed or developed.
    这里说优雅性只是一个比喻.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ---

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