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

71 天前
 txzh007
这里说优雅性只是一个比喻.

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

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

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

方式 2. 对老代码进行重构,解耦,优化逻辑,代价 时间成本上升,在评估时间内可能无法完成
2701 次点击
所在节点    程序员
28 条回复
sampeng
71 天前
其实。。除了加班。。无解
txzh007
71 天前
@zhazi 突然顿悟了 hah
night98
71 天前
公司不考核这方面,就是单纯扯淡。
其次很重要的一点,是必须团队统一规范和风格,否则说这些就是扯淡

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

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

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

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

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

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

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

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

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

---

最后,我很痛心,看到这么多负面的关于项目质量的发言,使我对这个行业的未来感到担忧,也对你们可能被 AI 或者其他什么东西取代而失去赖以糊口的工作产生担忧。
我希望行业中能出现更多的独立思考和发言,更多的对于技术的热爱和对于工作的责任感。
少一些负面情绪,多一些积极的态度,这样我们的行业才会有更好的未来。
赶日超美,加油!希望我们行业的后辈不再说出那句“国外的软件更发达”,就像我们现在已经不再说“国外的汽车更好”一样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1055885

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX