关于提升编程效率的两点想法

2021-11-22 18:04:23 +08:00
 tool2d

第一是大项目的代码模块,一开始就要按照功能划分为很多子模块。不能大海捞针一样的,直接在几万行代码库里修改。

否则过大的程序代码库,就意味着大脑负担大。同时数据量大,加载慢,调式慢,运行慢,多耦合,写代码自然也慢了。

而轻量级的数据,能让单元测试写起来很顺手,事半功倍。

第二是语法不能定太死,尽可能根据项目需求,引入 DSL ( domain-specific language ),来最大限度降低代码的阅读难度。

条件允许的情况下,可以对源代码做二次预处理(比如 QT )。

举个例子,JSX 语法肯定要比传统的 JS 拼接字符串有更高的可读性,但是代码都是必须经过编译的。

1331 次点击
所在节点    程序员
4 条回复
tool2d
2021-11-22 20:35:02 +08:00
第三,对代码库进行星空图重建,每个类之间,有双向链接是最好的。

有时候不太重要的功能,会花去自己太多的编程时间,导致项目进度太紧张,产品质量下降。

只有图才能最直观的显示,自己的精力用在了哪一个模块。有全局的掌控后,才不会陷入无限的代码细节。
SmiteChow
2021-11-23 09:31:23 +08:00
你说的几乎不算提升效率的方法,而是工程实践的最佳方式。

第一,提高内聚不可以超前规划,模块应该是慢慢重构长出来的
第二,你要表达的是通过引入转换层节省一些枯燥的工作,这个与 DSL 是两个完全不同的概念。具体你可以查一查 transpiling vs compiling ,这个属于工具链范围,一般确定技术栈时就 fix 了
第三,我没听过,不过我猜测应该类似代码模块规模可视化之类的透视图,这个也并不提升编程效率,而是为 review 或检测代码质量服务的
caixiangyu17
2021-11-23 10:24:11 +08:00
最好的提升效率的方法就是想办法杜绝摸鱼。我经历过效果最好的就是 pair programming 。现在每天早九晚五,一直 pair ,几乎没有摸鱼时间,效率极高,不用加班进度也很快。
SmiteChow
2021-11-24 10:26:59 +08:00
@caixiangyu17 结对编程也是工程实践的最佳方式,可以省略掉后续 review 的时间,但要注意结对是为了质量,省掉时间只是副作用。

提倡最佳实践目的是为了提高代码质量和可维护性,非要从效率这个词上评价的话应该是提升工程效率,质量差会有很多 bug ,修 bug 也会浪费很多时间。

要提升编程效率还是要向提升专注度减少大脑上下文切换次数,比如限制在制品数量,会议数量,合适的背景音;提升命令频次减少按键次数,比如使用全功能 IDE ,可以编码、调试、UT 一把梭,AI 自动代码补全等这两方面下功夫。

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

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

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

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

© 2021 V2EX