先引见下背景,博主由运营转行前端,入职一个月,完成了一个相对较大的模块。因为基本相对柔弱,犯下了不少毛病,故想记录下来警省本身和分享列位。
前端手艺栈是 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,进修一下debug
,80%的题目就会被文档和debug
处置惩罚
9.不范例的事情流
制订合理的事情流程可以削减风险变乱的能够和进步事情效率。
关于顺序员来讲,work flow
更意味着代码的构造,事情成员之间的合作体式格局。
我常犯的一个毛病是直接在alpha
或master
分支上直接commit,而团队是不允许如许做的。一切的修改必需只能经由过程 merge
的体式格局合并到主分支,如许的优点在于防止bugfix
仅在alpha
上处置惩罚,而遗忘merge
到master
上。这些都可以经由过程 CI
或许git hook
等一些剧本或东西完成。
优越的编码习气不是一日养成的,要从各个细节处不停修改进步。好的代码构造清楚,读来心旷神怡,坏的代码,杂沓蹩脚,让保护者不由得骂娘。一名初学者要不停地读巨匠的代码,吸取个中的营养,不停修改本身的代码,祝贺列位有朝一日都能写出文雅的代码。