新手程序员常犯的十个错误

原文链接: https://segmentfault.com/a/1190000008207481

先介绍下背景,博主由运营转行前端,入职一个月,完成了一个相对较大的模块。由于基础相对薄弱,犯下了不少错误,故想记录下来警醒自己和分享各位。

前端技术栈是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails

1.未遵循MVC分离思想

MVC说起来非常简单易懂,即model+view+controll,数据-视图-控制分离,特定的模块做特定的事情,便于程序的维护和拆分。我的体验是我有这个意识,却常常写出不合规范的代码。

出现问题的原因是抽象是不符合人的天性的,天性就是怎么简单怎么来,不会顾及到整体架构如何。

解决办法也很简单,改! 不停的修改你的代码,改到完美为止!改的过程中不断告诉自己,我这样写是错的,下次不能这样写。坚持一段时间很有效果。

2.缺少必要的注释

大段的if-else缺少注释,让维护者无法快速分辨分支逻辑。特定地方存在hack或复杂逻辑的代码,缺少注释会让后来者不明所以。为了你好,也为了后来者好,请务必加上代码。说不准以后还是由你来维护这段代码。

3.不变和变化的部分拆分

程序员中流传着一句话,此处不要写死,将来必改。有经验的程序员会将一些业务层的逻辑抽象出来,写成配置文件,好处就是若后续需求有改变,只需改配置文件即可,肯定不会引入bug。

4.忽视测试部分

程序员中又流传着一句话,没有测试的代码等于没写。虽不敢全部赞同,却也有几分道理。从测试用例驱动开发,持续集成,每次编译自动跑测试用例,能够保证系统的稳定同时也减轻测试成本。自己改的的部分做好自测,理解需求,做一个有责任心的工程师。

5.直接操作数据

你应该通过方法去操作数据,而不是直接操作数据,这样能够保证你总能操作数据正确。
例如一个类中定义的属性发生变化了,代码中所有涉及到直接操作该属性的代码都需要修改。如果通过方法操作该属性,则仅需修改操作方法,对于外部调用者,类属性变化被屏蔽了,遵循了解耦的原则,代码稳定性大大提高。

6.代码中存在hard code

hard code=>魔法数字,后果是代码中不明所以的数字到处乱飞,让人读来莫名其妙,全然不动其中的意思。如果你不想你的代码被人破译,请尽情的使用hard code

7.写重复的代码

DRY,don't repeat yourself! 这个话题聊起来估计三天三夜也说不完。电脑擅长人不愿意干的、重复的事情,所以电脑解放了人类。那么程序员如何解放自己呢?那就是不写重复的代码,其中一个准则就是三次。一件事情重复三次,就可以从中提取出规律。

Example: 1, 2, 3, ....

Example: 1, 2, ....

8.不懂debug和如何解决问题

写代码从debug开始。每一个初学C语言的人都会遇到各种各样的问题,譬如缺了分号,if判断写成赋值。初学者不了解语言和其中的坑,唯一能解决问题的就是一步一步进入代码的执行,找到其中不合预期的地方,即为bug所在。找一个称手的IDE,学习一下debug80%的问题就会被文档和debug解决

9.不规范的工作流

制定合理的工作流程能够减少风险事故的可能和提高工作效率。
对于程序员来说,work flow更意味着代码的组织,工作成员之间的协作方式。
我常犯的一个错误是直接在alphamaster分支上直接commit,而团队是不允许这样做的。所有的修改必须只能通过 merge 的方式合并到主分支,这样的好处在于避免bugfix仅在alpha上处理,而忘记mergemaster上。这些都可以通过 CI 或者git hook 等一些脚本或工具完成。


良好的编码习惯不是一日养成的,要从各个细节处不断修正提高。好的代码结构清晰,读来赏心悦目,坏的代码,混乱糟糕,让维护者忍不住骂娘。一位初学者要不断地读大师的代码,汲取其中的养分,不断修改自己的代码,祝愿各位有朝一日都能写出优雅的代码。

你可能感兴趣的:(新手程序员常犯的十个错误)