第一是大项目的代码模块,一开始就要按照功能划分为很多子模块。不能大海捞针一样的,直接在几万行代码库里修改。
否则过大的程序代码库,就意味着大脑负担大。同时数据量大,加载慢,调式慢,运行慢,多耦合,写代码自然也慢了。
而轻量级的数据,能让单元测试写起来很顺手,事半功倍。
第二是语法不能定太死,尽可能根据项目需求,引入 DSL ( domain-specific language ),来最大限度降低代码的阅读难度。
条件允许的情况下,可以对源代码做二次预处理(比如 QT )。
举个例子,JSX 语法肯定要比传统的 JS 拼接字符串有更高的可读性,但是代码都是必须经过编译的。
1
tool2d OP 第三,对代码库进行星空图重建,每个类之间,有双向链接是最好的。
有时候不太重要的功能,会花去自己太多的编程时间,导致项目进度太紧张,产品质量下降。 只有图才能最直观的显示,自己的精力用在了哪一个模块。有全局的掌控后,才不会陷入无限的代码细节。 |
2
SmiteChow 2021-11-23 09:31:23 +08:00 1
你说的几乎不算提升效率的方法,而是工程实践的最佳方式。
第一,提高内聚不可以超前规划,模块应该是慢慢重构长出来的 第二,你要表达的是通过引入转换层节省一些枯燥的工作,这个与 DSL 是两个完全不同的概念。具体你可以查一查 transpiling vs compiling ,这个属于工具链范围,一般确定技术栈时就 fix 了 第三,我没听过,不过我猜测应该类似代码模块规模可视化之类的透视图,这个也并不提升编程效率,而是为 review 或检测代码质量服务的 |
3
caixiangyu17 2021-11-23 10:24:11 +08:00 1
最好的提升效率的方法就是想办法杜绝摸鱼。我经历过效果最好的就是 pair programming 。现在每天早九晚五,一直 pair ,几乎没有摸鱼时间,效率极高,不用加班进度也很快。
|
4
SmiteChow 2021-11-24 10:26:59 +08:00
@caixiangyu17 结对编程也是工程实践的最佳方式,可以省略掉后续 review 的时间,但要注意结对是为了质量,省掉时间只是副作用。
提倡最佳实践目的是为了提高代码质量和可维护性,非要从效率这个词上评价的话应该是提升工程效率,质量差会有很多 bug ,修 bug 也会浪费很多时间。 要提升编程效率还是要向提升专注度减少大脑上下文切换次数,比如限制在制品数量,会议数量,合适的背景音;提升命令频次减少按键次数,比如使用全功能 IDE ,可以编码、调试、UT 一把梭,AI 自动代码补全等这两方面下功夫。 |