在有复杂功能且持续迭代过程中的工程,如何保持架构简洁、代码可读性等?

2024-01-14 03:07:50 +08:00
 exch4nge
一般一个长期维护的中大型工程,最开始成型仅包含核心功能时,比较容易保持简洁。不过随着功能迭代,为满足各种细节需求,代码中不可避免地会增加很多流程与新概念,代码读起来会不流畅,一旦不控制好,最终很容易就变成屎山。

一个例子是,leveldb 的源码读起来很顺畅,从 leveldb 演化的 rocksdb ,目前已经是个变成庞然大物,虽然大体代码架构也很清晰,但由于支持的功能多、复杂度高,代码中相对会很多噪音,读起来相对不是那么流畅。

复杂度必然会影响可读性,那控制不变成屎山就很重要,大家对这方面有什么经验分享吗?
2394 次点击
所在节点    程序员
24 条回复
xsen
2024-01-15 08:51:36 +08:00
需要人搞卫生(维护)
需要人天天清理,不然再底层设计、再多人,早晚都会成屎山
这个与你房子多大、住的人多优秀无关
lujiaxing
2024-01-15 14:02:16 +08:00
没有可能.

只要你们公司存在人员流动, 功能更迭, 代码的腐化就是不可避免的. 任何的规范和制度都只不过是延缓其发生而已, 不可能避免. 很多很多的功能其实开发的时候, 功能描述里说的可能只是一个很简单的需求, 但是实际上开发的时候, 隐藏在里面的逻辑却可能是相当复杂的. 而这种复杂并不是一句两句话能说得清的. 而一旦编写这种复杂业务逻辑代码的人离职, 这段代码很可能就会变得难以维护. 就算是留下交接文档, 这种编写于几年前的复杂业务逻辑代码, 当事人也不一定会记得当时的逻辑细节. 更何况很多情况下人员并不是主动离职而是被辞退/优化掉的, 这种更是连交接的过程都不会有. 这种过程多来几次, 你的代码就基本没法儿看了.
sampeng
2024-01-15 14:28:25 +08:00
持续重构。没有第二条路。其他都是扯蛋。如果没有投入持续重构,动不动就是,这个功能稳定了,不能动,代码不能改。吧啦吧啦。。这必定成为一个新的 shit 山
WashFreshFresh
2024-01-15 14:52:34 +08:00
全都自己写

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

https://tanronggui.xyz/t/1008456

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

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

© 2021 V2EX