什么是代码整洁程序员
今天来讲说“代码整洁”,这是个永恒的话题,自从第一行代码被写出来后,优秀的程序员们就不停地经过各类方法、方式和工具来使本身的代码看来整洁美观。那为何咱们要作代码整洁?无论你作过几年编程,你必定被某个傻缺的糟糕代码绊倒过气的找不到北;同时本身也确定写过这种代码把别人坑的不要不要的,让人指着后脊梁骨暗骂一通。毛主席讲过批评与自我批评,人老是在自我反省中成长,因此就先来让咱们先看看代码混乱主要的几种缘由(各类案例在下一章列出):算法
若是你一直都是写出上面所描述的混乱不堪的代码,不只得不到同事的尊重,本身你的编码水平也不会随着时间推移而提高,更容易成为N年工做经验,混乱不堪的代码更是将项目推向难以维护的境地。因此从我的角度上说,整洁好看的代码不只是你技术水平体现更能让你赢得你们的尊重;从项目角度上说,整洁优秀的代码是产品可维护性基石,整洁有序的代码是任何产品失控以前的第一道防线;因此优秀整洁的代码在公在私都极为重要,鉴于以上缘由我将代码整洁做为咱们分享会第一课,就是趁在座各位都还处于代码婴儿阶段,让你们养好习惯、打好基础、培养好本身的代码思想力为大家往后成为代码大师打下最坚实的基础。编程
最后,将美国童子军的一条简单军规应用到咱们的专业领域:“让营地比你来的时候更干净。”--《代码整洁之道》函数
怎么样作才是代码整洁工具
灌了这么多心灵鸡汤,那么咱们怎么作好代码整洁,在我看来有两个方面:学习
1、调整心态优化
你是否在写代码时,是否有下面心理状态:编码
上述缘由,跟任何技术水平有关吗?spa
无关,所有都是心态上的问题,因此提升代码整洁第一步就是须要提升自我责任心,不断的心理暗示告诉本身须要对本身的代码负责,如何写的更好看一些,如何让别人更容易读懂一些,须要你有处女座般的洁癖来打造本身的代码。.net
2、硬性技能
1. 有意义的命名
代码中随处可见命名。咱们给变量、函数、参数、类和文件命名。咱们写代码30%都在命名, 选个好名字要花时间,但省下来的时间比花掉的多。并且一旦发现有更好的名称,就替换掉旧的。这么作,读你代码的人(包括你本身)都会更开心?下文旧列出几条简单规则(本文不是讨论具体代码规范,由于有太多太多内容能够谈,因此将以概念为主)。
1.1 名副其实的名称
以下图一,简洁且格式代码也符合.net标准。可是你能知道它作什么吗?
主要有3个问题:1、函数名不知道作什么;2、函数参数不知道传入什么、3、使用字面量。归结起来,按专业的说法:简洁度达标,可是模糊度过高,没法见文知意。
咱们先看调整后的代码格式
这里,咱们作了几个修改,能够很明显看到效果:
1.2 一致的拼写,避免误导
当你在设计API,编写业务层代码时,没有绝对的标准,可是请与旧代码保持一致性。举个例子:
正例:
GetOrganByOrgid(string orgId) GetOrganByParentId(string parentID) GetOrganByOrgEntity(Organ entity);
反例:
GetOrganData(string orgId) LoadOrganByOrgList(Organ entity) LoadOrganUseParentId(string parentID)
现代化的IDE的智能感知已经很是先进,不少程序员已经不看接口文档,若是一致的拼写,在IDE智能感知了,就很是方便开发人员调用;
1.3 作有意义的区分
1.3.1 不要以数字系列命名,例如a1,a2…aN。以下反例:
Public DataTable GetCostListByUserDate(DateTime date1,DateTime date2);
可是这样,彻底没法体现出来参数的做用及做者意图,正例:
Public DataTable GetCostListByUserDate(DateTime startTime,DateTime endTime);
1.3.2 不要添加废话修饰
不要加上,Info ,Data ,the 这些废话定词
例如: AccountInfo、AccountData与 Account 。其实表明同样的含义;
再好比,
1.4 使用可搜索的名称
同1.1中的魔法术,这点是最容易改进的,搜索“4”容易仍是搜索”CHECK_FLAG”容易?
1.5 避免使用编码,前缀
在远古时代,由于IDE还不流行。须要在变量名前,加前缀;例如 b_ 表明byte.i_ 代码表int类型;可是如今IDE已经很是流行了,无需再加这些前缀;
1.6 类名方法名
类名、变量名应该是名词短语,例如: Account,Page,Customer等。
方法名,应该是动词短语,例如:GetAccount,DownLoadPage
1.7改善措施:
l 学习英语(我老大上市公司研发部总监,依然天天朋友圈打卡学习英语,开始学习吧,没人笑你!这是你往后职场上的最重要武器之一 )
l 经常使用词列表(会随着部门代码规范一块儿发布)
2. 一致性的格式
2.1 团队规则
每一个coder都有本身喜欢的格式规则,可是若是在一个团队中,就应该团队说了算。而不是让它显得有一大票意见相作的我的所写成。
咱们的措施:.Net代码规范(自定义 + StyleCop.Analyzers )
Javascript:代码规范(须要你们群策群力)
2.2 垂直格式
向报纸学习,源文件也要像报纸文章那样。名称应当简单并且一目了然。源文件最顶部应该给出高层次的概念和算法。细节应该往下渐次展开,直到源文件中的最底层函数和细节。
例如:
.Net中,类中的全局变量,私有变量,常量等等,均放在类中最顶部
函数方法,public , protect private,按顺序摆放。
JavaScript中,全局变量,私有变量,常量等等,均放在类中最顶部
2.3 横向格式
我刚工做时,当时的代码规范是横向建议一行最多不超过80个字符。随着近年显示器愈来愈大,一行你们都默认不超过120个字符原则,可是无论什么样显示,咱们保持无横向滚动条原则。