本文由葡萄城技术团队原创并首发程序员
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。设计模式
首先咱们会先提出这个问题,若是你向10我的问这个问题,尽管可能答案不一样,可是少有一点应该是一致的。而对我我的而言,一个优秀的程序员应该是一个可以充分理解需求,并能提出可行性解决方案经过团队协做向最终用户展现成果。而说到团队协做,就涉及到代码的可维护性,那么你该如何管理庞大的代码库?若是听任团队成员提交随意的代码,那么在项目中不管在bug修复仍是新增功能,都将很难完成。网络
若是想要实现可维护这个目标,那么团队中的每一个成员都应该保证提交整洁且可维护的代码。那么您应该让你的团队成员遵照必定的编码原则。遵照这些原则,可使你和其余人的协做变得更容易。因此团队成员应该遵循什么样的规则呢?函数
童子军是美国社会针对未成年人的一种教育实践制度,加入童子军的小朋友都要学习并遵照一些规则,而后得到各类各样的勋章。其中一条规则是离开宿营地前进行清扫活动的原则,简洁明了:工具
Leave the campground cleaner than you found it.学习
假设某个小朋友来到某个宿营地,不幸发现地上有两处垃圾,而后他本身在接下来的平常活动中也制造了一处垃圾。那么当他离开时,不只要清理掉本身的垃圾,还要处理早先小朋友留下的两处垃圾。应把注意力放在为下一个露营者创造更好的环境,而不是去寻找是谁丢的。开发工具
这个原则放到软件生产中则意味着让check in比check out时更整洁,至少不要让代码变得更糟糕。编码
(图片来源于网络)设计
尽可能在项目的开发过程当中减小产出重复的代码、方法和类,多数的设计模式根本目的是为了减小代码重复,尽量将重复使用的代码抽象封装,是提升代码的可重用性和可维护性的最佳方式之一。对象
这里功能独立的意思是指,函数或方法尽量简单,功能尽量独立。
换句话来说就是,一个方法最好只作一件事,若是你以为你的代码过于复杂,该怎么作?抽方法。
初级程序员最常犯的错误就是在一个方法中包含了不少种要作的工做,这可能会在软件的生命周期带来灾难。
程序员做为社会中最聪明的群体之一,每每在写代码时也会产出一些炫技的代码块,这部分代码块过段时间再去看,就像谜同样存在于程序中,虽然很简洁,但并不易读。
例如:有些人在程序中喜欢使用三目运算而非if-else,虽然自己使用三目运算符没有问题,但存在嵌套状况时,那么对于后面的维护者就是一场噩梦,例如以下代码:
(A>B?(A>C?A:C):(B>C?B:C))
其实上面的代码等同于,显然下面的格式更易懂
if(A>B){ (A>C?A:C) }else{ (B>C?B:C) }
迪米特法则是1987年秋天由lan holland在美国东北大学一个叫作迪米特的项目设计提出的,它要求一个对象应该对其余对象有最少的了解,因此迪米特法则又叫作最少知识原则。它的意义旨在下降类和类之间的耦合,避免发生因为耦合度过大形成的由于一个类发生变化,而对另外一个类形成影响。
YAGNI原则是指在开发时只须要将应用程序必需的功能包含进来,而不要试图添加任何其余你认为可能须要的功能。开发过程当中为了应对未来可能的提出的需求,提早开发一些功能进去,咱们一般会花很多时间成本在这些过分设计的功能开发上,但可能将来的两三年内这个设计根本没有用到。应把更多的精力花在更重要的功能开发上,适度假设将来需求的规划,加速后期功能迭代和代码维护。
虽然上面提了不少原则和规范,但这些规范须要在长期在工做中的实践才能有更深的理解的。但愿您能从本文中了解一些基础,最后,但愿你们都能写出优美、规范的代码。