如何培养良好的编程习惯?

编写优美的程序需要灵感和高超的技巧,就像诗人写诗,画家作画,建筑师构筑,充满了乐趣、挑战和美。优雅的程序会像诗歌一样耐人寻味,像名画那样大开眼界,像教堂一样堂皇华丽。所以,计算机编程也同样是一门艺术,程序员就是创造这种艺术的艺术家。

(一)结构、命名、注释

·文件结构

首先你的项目结构要清晰,养成良好的文档结构分类习惯是很有必要的,举个最简单的web网站项目。

把解决方案分成若干个项目,按照各自功能划分,这样相对来说比较清晰。每个项目重也可以根据功能不同,文件种类不同,或者业务不同进行划分。看你如何设计了。

·代码结构

为了增强阅读性,首先该换行的换行,该缩进的缩进「这个感觉不用说,现在工具都比较智能了」。

其次就是代码模块化,每个方法尽量做单一的事情,并且有层次,一定要避免大段逻辑,又是循环,又是判断,还不停的嵌套「看到这样的代码真的会疯」

·命名

文档的命名,变量的命名,方法的命名,对象的命名。相信每个公司应该都会有一套自己的命名规范,但很多时候开发着开发着就变味了。

对个人来说,养成比较主流和公认的命名规范就行了,英文不行就找找翻译,顺便多学几个单词。千万不要来点个人奇葩主义,要知道这样你的同伴会很苦逼的。「曾经阅读过全拼音命名的代码,怎么看怎么别扭。还看到变量名从asd1-asd33的,看的我口吐白沫啊」

·注释与文档

据说程序员最讨厌的四件事是:写注释、写文档、别人不写注释、别人不写文档。

对于大型项目或者二次开发的项目没有文档和注释,那简直是……「心里一万个草泥马在飞啊」

(二)设计模式、CodeReview、单元测试

有了代码规范,接下来就是要提高代码质量了。

·设计模式

代码写到一定火候之后,自己就要有意识的去了解和学习些设计模式,也许你在写代码的时候已经有意无意的用到了,但你可能不了解,也很模糊,这时候,再回过头,看看之前大学学的设计模式,你会恍然大悟,什么抽象工厂模式啊,单例模式啊,外观模式啦,其实也就那么一回事。

·CodeReview

这其实是提高代码质量的一种手段,当一个团队可以定期的去codereview,相互交流,相互去学习模仿,你会发现,整个团队的代码质量有显著提高,并且风格也能基本保持统一。「但以前有个团队是非常失败的,某某负责人带着几个实习生,自己水平不怎么样,结果还每周codereview,导致他们团队的代码出奇的一致。」

·单元测试

单元测试很重要,或许很多人都没有编写单元测试的习惯,也有很多客观因素,比如项目进度不允许之类的。但是从长期来看却是非常省时间和精力的。

如果可以达到60%以上的时间在写Test case, 40%甚至更少在写逻辑,无论改哪一行的代码,都会有Test case 挂掉;只要Test都过了,怎么改代码都可以,如果能达到那样的境界你就完美了。

当你编写多了测试代码之后,你会发现你考虑的问题会更全面,在真正写逻辑代码的时候思路会更加清晰。

(三)总结

很多时候做一件事情最困难的就是坚持,当你一直有一套标准去要求自己,并且能坚持下来,我想这样就变成习惯了。

原文发布于微信公众号 - Bug生活2048(BugLife2048)

原文发表时间:2017-03-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

程序员之痛点:取个好名字

21530
来自专栏老九学堂

如何成为一个牛逼的C/C++程序员?

这个题目的噱头太大,要真的写起来, 足够写一本书了。 老九君分享一些经验,希望能让初学的小伙伴少走弯路。 每个人的情况不一样,所以下面的描述可能并不适合每一个...

36040
来自专栏博岩Java大讲堂

Java虚拟机--虚拟机发展史

38450
来自专栏FreeBuf

匿名者发布三个黑客攻击操作指南“教你如何攻击ISIS”

为了鼓励人们参与到针对ISIS的网络战中来,国际黑客组织匿名者公布了三个黑客攻击操作指南。这三个指南主要针对的对象是隶属于ISIS的网站。 黑客与恐怖份子之间的...

25160
来自专栏Crossin的编程教室

【每周一坑】用代码给图片配上文字

我们的『每日一坑』栏目里都是一些练手的小题目,难度不高,适合新手用来熟悉编程。如果想要更复杂的大项目,可以上我们的实验室栏目 lab.crossincode.c...

34460
来自专栏自动化测试实战

我对RF的理解

487100
来自专栏ThoughtWorks

谈谈命名|TW洞见

今日洞见 文章作者、部分图片来自ThoughtWorks:黄博文。本文封面来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks...

375100
来自专栏博岩Java大讲堂

Java虚拟机--Java发展史Java虚拟机

41670
来自专栏Java社区

Python高效编程技巧实战教程视频

16140
来自专栏闰土大叔

太原面经分享:如何在vue面试环节,展示你晋级阿里P6+的技术功底?

一年一度紧张刺激的高考开始了,与此同时,我也没闲着,奔走在各大公司的前端面试环节,不断积累着经验,一路升级打怪。

24210

扫码关注云+社区

领取腾讯云代金券