先介绍下背景,博主由运营转行前端,入职一个月,完成了一个相对较大的模块。因为基础相对薄弱,犯下了很多错误,故想记录下来警醒本身和分享各位。前端
前端技术栈是 ES6
+ backbone
+ react
+ antdUI
,后端使用的 Ruby on Rails
。react
MVC提及来很是简单易懂,即model+view+controll,数据-视图-控制分离,特定的模块作特定的事情,便于程序的维护和拆分。个人体验是我有这个意识,却经常写出不合规范的代码。git
出现问题的缘由是抽象是不符合人的天性的,天性就是怎么简单怎么来,不会顾及到总体架构如何。程序员
解决办法也很简单,改! 不停的修改你的代码,改到完美为止!改的过程当中不断告诉本身,我这样写是错的,下次不能这样写。坚持一段时间颇有效果。后端
大段的if-else缺乏注释,让维护者没法快速分辨分支逻辑。特定地方存在hack或复杂逻辑的代码,缺乏注释会让后来者不明因此。为了你好,也为了后来者好,请务必加上代码。说不许之后仍是由你来维护这段代码。antd
程序员中流传着一句话,此处不要写死,未来必改。有经验的程序员会将一些业务层的逻辑抽象出来,写成配置文件,好处就是若后续需求有改变,只需改配置文件便可,确定不会引入bug。架构
程序员中又流传着一句话,没有测试的代码等于没写。虽不敢所有赞同,却也有几分道理。从测试用例驱动开发,持续集成,每次编译自动跑测试用例,可以保证系统的稳定同时也减轻测试成本。本身改的的部分作好自测,理解需求,作一个有责任心的工程师。工具
你应该经过方法去操做数据,而不是直接操做数据,这样可以保证你总能操做数据正确。
例如一个类中定义的属性发生变化了,代码中全部涉及到直接操做该属性的代码都须要修改。若是经过方法操做该属性,则仅需修改操做方法,对于外部调用者,类属性变化被屏蔽了,遵循了解耦的原则,代码稳定性大大提升。学习
hard code
hard code
=>魔法数字
,后果是代码中不明因此的数字处处乱飞,让人读来莫名其妙,全然不动其中的意思。若是你不想你的代码被人破译,请尽情的使用hard code
吧测试
DRY,don't repeat yourself!
这个话题聊起来估计三天三夜也说不完。电脑擅长人不肯意干的、重复的事情,因此电脑解放了人类。那么程序员如何解放本身呢?那就是不写重复的代码,其中一个准则就是三次。一件事情重复三次,就能够从中提取出规律。
Example: 1, 2, 3, ....
Example: 1, 2, ....
写代码从debug开始。每个初学C语言的人都会遇到各类各样的问题,譬如缺了分号,if判断写成赋值。初学者不了解语言和其中的坑,惟一能解决问题的就是一步一步进入代码的执行,找到其中不合预期的地方,即为bug
所在。找一个称手的IDE,学习一下debug
,80%的问题就会被文档和debug
解决
制定合理的工做流程可以减小风险事故的可能和提升工做效率。
对于程序员来讲,work flow
更意味着代码的组织,工做成员之间的协做方式。
我常犯的一个错误是直接在alpha
或master
分支上直接commit,而团队是不容许这样作的。全部的修改必须只能经过 merge
的方式合并到主分支,这样的好处在于避免bugfix
仅在alpha
上处理,而忘记merge
到master
上。这些均可以经过 CI
或者git hook
等一些脚本或工具完成。
良好的编码习惯不是一日养成的,要从各个细节处不断修正提升。好的代码结构清晰,读来赏心悦目,坏的代码,混乱糟糕,让维护者忍不住骂娘。一位初学者要不断地读大师的代码,汲取其中的营养,不断修改本身的代码,祝愿各位有朝一日都能写出优雅的代码。