绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
硬核!编程中,有哪些好的习惯从一开始就值得坚持?
2021-09-02 15:38:30

以下文章来源于herongwei ,作者herongwei  

大家好,我是小贺。

之前在知乎上回答了这个问题,近有一些读者来咨询,说刚工作,有什么需要注意的编程好习惯。

那么小贺结合自己工作一年多的经(cai)验(keng),给大家分享下在编程中,有哪些好的习惯应该从一开始就坚持。

一、先想通逻辑,再写代码

有一种斐波那契程序员:每天都在修复昨天和前天的 bug

相信很多开发的同学,都有过这样的经历:代码删了又写,写了又删。

在敲代码之前,其实可以先问自己一个问题:我写下的这行代码是真的能用上的吗?会不会有逻辑漏洞?

思考清楚业务流程之后再写代码,往往事半功倍。

磨刀不误砍柴工,我们应该用大部分的时间思考代码逻辑,事先做好全面的考虑,争取让写下的每一行代码都有价值

梳理代码逻辑是有一定方法的,例如:

  • 通过画图工具先将逻辑画出来,流程图、UML 图、时序图、思维导图都能对你有所帮助。
  • 写接口之前先模拟出假数据,测试逻辑层没有问题之后再写接口,可以避免写出的接口不合适。
  • 善于写伪代码,将程序需要实现的每个步骤先用抽象的伪代码写出来。具体实现时再将伪代码细化。
  • 写代码之前先编写测试用例,将你期望的输入输出写在测试用例中。

二、遇到 bug 多调试,多输出,多问几个为什么

这个问题其实是编程基本功了,相信大家都不用怀疑了。

三、给变量、函数取个好名字

规范的命名对于阅读程序是非常重要的,在阅读代码时,理解一个变量和函数都是从名字开始的。
在写一行代码之前就需要考虑别人在看到这段代码的时候会思考什么?会遇到什么问题?如果需要注释来解释,其实就不是好的命名。

例如:将变量名

修改为:

将函数名

修改为:

宁可名字取长一点,也不要起个模糊的名字。

不过,变量名也并非越长越好,去除变量名中的冗余也是一个好习惯。

命名风格应该保持统一,每个概念对应一个词。

总之,取一个精准的名字是一名程序员的基本功。从一开始学习编程时,每次取名都应仔细思考,切不可草草了事。

四、保持代码美观

感受一下两种格式的代码:

同样的代码,仅仅是加上空格与缩进就能看起来更美观。

现代化的 IDE 都有代码格式化快捷键,在代码敲完后随时格式化,并去掉多余的空行,是一个让代码保持美观的好习惯。

五、大胆重构

开发者应该保持爱折腾的习惯,不安于现状,才能做到与时俱进。

  • 你突然灵光一现,找到一种更好的实现方式,那么就可以尝试去重构你的代码,重新优化,也许会有不一样的效果和提升。

PS:关于重构的更多知识可以阅读 Martin Fowler 所著的《重构改善既有代码的设计》,软件开发不朽的经典。

六、定时备份

年轻时,我曾在网上问一个命令行怎么写,有人教我 rm -rf / ...

如果程序中用到数据库操作,一定要记得定时备份。

很多朋友的电脑里都保存了许多重要的文件,无论是工作上或者生活中这些文件,都对我们十分重要。


由于我们每天的资料、文件在电脑里都会进行一些更新,做好文件定时备份就显得很有必要了。


数据库备份有诸多好处:可以防止数据丢失,可以在程序出错时方便数据回滚。只需要写个脚本完成定时自动备份。


同样,代码也需要及时备份,因为你不能保证你的开发环境哪怕是线上环境百分百是稳定的。


使用版本管理工具:SVN 或 Git,随时 commit,丢失代码的情况几乎不可能发生。

小贺我之前有一次,下班前忘了提交代码到仓库,第二天上班,正好电脑出问题了,之前辛苦干的活都凭着记忆重新再来一遍😭

七、写一份完善的 README

GitHub 上有非常多的好项目,无一例外,他们都有一份完善的 README。

README 是程序的门面,有助于别人及时发现你写的好项目(不要奢望每个人都有闲情逸致来阅读你的源码)。

况且 README 文档的好处不止于此,它还可以帮助自己梳理逻辑,理清思路。

写好 README 之后,随着项目的演进也需要及时更新它,尤其是组内,有共享的需求文档,或者需要提供给上下游的同事,认真对待文档是一种工作态度。

八、遇到不清楚或不懂的知识点,先去看官方文档

先!去!看!官方!文档!

很多官方文档是英文的,硬着头皮也要看!看着看着就习惯了。


刚开始读英文文档会费时间和精力,但是等你回过头来再看,你会觉得这才是恰当的选择。


九、勤于思考

1对代码规范及编码有自我要求;

2、保持思考,向别人描述问题时尽量告诉自己再多思考一下,看能否找出更深层次的原因;

3、试着找别人要反馈,特别是那些水平比你高的人。

Reference:Alpinist Wang。

·················END·················

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Python编程时光
创建时间:2020-06-09 15:11:01
专注输出 Python 高质量原创文章
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • highhand
    栈主

小栈成员

查看更多
  • 孔庆杰
  • Pantj
  • 高岩
  • www1392617710
戳我,来吐槽~