写了几千行代码以后自己就蒙了

2016-03-11 11:05:26 +08:00
 strahe

如题,也可能由于时间紧迫,但感觉更多的原因还是自己的经验不足,开始写代码前没做更多的设计,理解个大概就先写起来,跑起来再说,写了几千行以后,再往后写,就发现有时候不得不重复写一些功能相似的代码,之前写的都不怎么"通用",有一些代码逻辑也不是很好,但都能用,我自己是有写出简洁高效代码的意识的,但就是因为这个,所以如果没开好头,后期就会处于纠结之中,越写越矛盾.
请问一下怎么提升写好代码的能力,代码质量高,设计合理,还要优雅一些,求老程序员能传授一下自己的经验,谢谢.
如果要特指语言的话,就 python.

3571 次点击
所在节点    编程
11 条回复
finab
2016-03-11 11:07:23 +08:00
无他,唯手熟尔
chend
2016-03-11 11:24:01 +08:00
需求加着加着, 一开始的代码 就乱了~~~
要么经验丰富(代码经验和业务经验), 合理规划 代码 结构。。
要么, 写完功能后, 顺便考虑下 可能的需求改动, 重构优化, 代码质量慢慢提高
lxy
2016-03-11 12:08:35 +08:00
哈哈,刚好前几天独自完成了 2000 行的小项目,个人用。其实是第二次写了,把之前的全部推倒重写(之前的 BUG 太多,基本运行不起来,由于代码太乱我都不想再改了)。

重写的收获很大,简单来说最重要的经验就是自顶向下写代码。先考虑好最上层函数大概需要做什么,然后把需要做的动作写成一个函数,我也是用 python 写的,我觉得 python 有个特别有用的东西就是 pass ,先把顶层的写完,下面一层除了名称外不必考虑太多,主体暂时一律写 pass 。

比如写个抓帖子的爬虫,最上层就是 get_thread(), check_thread(), get_post(), save_post(),根本不必考虑下层写什么,先把主要的逻辑动作写完。写完后依此下去,考虑 get_thread 主要做什么,一直到最后不可分割的原子动作,每个函数代码可控制在 50 行以内(即使只有不到十行也别觉得太少),而且代码高度可重用。

另外 python 另一个有用的东西就是装饰器, log 、通用循环结构都可以写成装饰器,可以节省大量的重复代码,简化结构。
akring
2016-03-11 12:52:15 +08:00
经验堆砌,还有就是条件允许的情况下多重构,不断用新学到的知识优化代码, keep learning and moving on
zymmm
2016-03-11 13:12:13 +08:00
promise
feiyuanqiu
2016-03-11 13:39:50 +08:00
推荐看看 clean code (代码整洁之道),工作一两年之后再看这本书感觉简直把自己平时的坏习惯都写到了
然后写代码的时候一直记着 solid ,看看写的代码是不是符合这个原则,特别是单一职责、开放关闭两个,对写出清晰的类、方法很重要
WispZhan
2016-03-11 13:51:03 +08:00
《代码整洁之道》
《重构:改善既有代码的设计》
《 Head First :面向对象分析与设计》
strahe
2016-03-11 18:18:42 +08:00
@chend 好像是必经之路啊
strahe
2016-03-11 18:19:41 +08:00
@lxy 嗯我目前也是这中思维,只是还考虑不到太多情况
strahe
2016-03-11 18:20:19 +08:00
@feiyuanqiu
@WispZhan
ok, 谢谢
strahe
2016-03-11 18:21:08 +08:00
@akring 看来反复写是成长的必经之路

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

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

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

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

© 2021 V2EX