首页 > 编程语言 >每个优秀程序员都应遵循的代码原则和规范

每个优秀程序员都应遵循的代码原则和规范

时间:2023-06-12 12:33:03浏览次数:32  
标签:功能 原则 代码 米特 程序员 遵循 团队

什么是优秀的程序员?

首先我们会先提出这个问题,如果你向10个人问这个问题,尽管可能答案不同,但是少有一点应该是一致的。而对我个人而言,一个优秀的程序员应该是一个能够充分理解需求,并能提出可行性解决方案通过团队协作向最终用户展示成果。而说到团队协作,就涉及到代码的可维护性,那么你该如何管理庞大的代码库?如果放任团队成员提交随意的代码,那么在项目中无论在bug修复还是新增功能,都将很难完成。

如果想要实现可维护这个目标,那么团队中的每个成员都应该保证提交整洁且可维护的代码。那么您应该让你的团队成员遵守一定的编码原则。遵守这些原则,可以使你和其他人的协作变得更容易。所以团队成员应该遵循什么样的规则呢?

童子军原则

童子军是美国社会针对未成年人的一种教育实践制度,加入童子军的小朋友都要学习并遵守一些规则,然后获得各种各样的勋章。其中一条规则是离开宿营地前进行清扫活动的原则,简洁明了:

Leave the campground cleaner than you found it.

假设某个小朋友来到某个宿营地,不幸发现地上有两处垃圾,然后他自己在接下来的日常活动中也制造了一处垃圾。那么当他离开时,不仅要清理掉自己的垃圾,还要处理早先小朋友留下的两处垃圾。应把注意力放在为下一个露营者创造更好的环境,而不是去寻找是谁丢的。

这个原则放到软件生产中则意味着让check in比check out时更整洁,至少不要让代码变得更糟糕。

每个优秀程序员都应遵循的代码原则和规范_代码块

(图片来源于网络)

避免重复

尽量在项目的开发过程中减少产出重复的代码、方法和类,多数的设计模式根本目的是为了减少代码重复,尽可能将重复使用的代码抽象封装,是提高代码的可重用性和可维护性的最佳方式之一。

功能独立

这里功能独立的意思是指,函数或方法尽可能简单,功能尽可能独立。

换句话来讲就是,一个方法最好只做一件事,如果你觉得你的代码过于复杂,该怎么做?抽方法。

初级程序员最常犯的错误就是在一个方法中包含了很多种要做的工作,这可能会在软件的生命周期带来灾难。

简单易懂的代码比“聪明“的代码更好

程序员作为社会中最聪明的群体之一,往往在写代码时也会产出一些炫技的代码块,这部分代码块过段时间再去看,就像谜一样存在于程序中,虽然很简洁,但并不易读。

例如:有些人在程序中喜欢使用三目运算而非if-else,虽然本身使用三目运算符没有问题,但存在嵌套情况时,那么对于后面的维护者就是一场噩梦,例如如下代码:

1
(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

YAGNI原则是指在开发时只需要将应用程序必需的功能包含进来,而不要试图添加任何其他你认为可能需要的功能。开发过程中为了应对将来可能的提出的需求,提前开发一些功能进去,我们通常会花不少时间成本在这些过度设计的功能开发上,但可能未来的两三年内这个设计根本没有用到。应把更多的精力花在更重要的功能开发上,适度假设未来需求的规划,加速后期功能迭代和代码维护。

每个优秀程序员都应遵循的代码原则和规范_代码块_02

总结

虽然上面提了很多原则和规范,但这些规范需要在长期在工作中的实践才能有更深的理解的。希望您能从本文中了解一些基础,最后,希望大家都能写出优美、规范的代码。



标签:功能,原则,代码,米特,程序员,遵循,团队
From: https://blog.51cto.com/u_14347868/6461405

相关文章

  • 初学最容易犯错的代码
    下面10个python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够pythonic,因为python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性。1.真值比较初学者经常在if语句中使用==比较符来判断表达式是否为真值a=Trueb=Falseifa==True!print('Thi......
  • 程序员必备技能-怎样快速接手一个项目
    作为一个程序员,我们很少能从头到尾参与一个新项目的开发。如果你经常开发的是新项目,那你真是太幸福了。更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护。还有一种情况就是领导不知道从哪里弄过来一个系统和一堆文档,然后就直接就把系......
  • V8是如何执行JavaScript代码的?
    前言一般来讲,电脑是不能直接运行我们的javascript代码的,它需要一个翻译程序将人类能够理解的编程语言JavaScript,翻译成机器能够理解的机器语言。目前市面上有很多种JavaScript引擎,诸如SpiderMonkey、V8、JavaScriptCore等。而由谷歌开发的开源项目V8是当下使用最广泛的Ja......
  • c++中string类的源代码
    一:回顾(1)c++中的string类是在面试中和笔试中经常考的题目;工程代码免费下载 string类的自行实现(2)c++中的string类和fstream类合起来是处理外部数据的利器;(3)string类经常用到findfind_first_offind_first_not_offind_last_offind_last_not_ofsubstrreplace等,以及联合使用来达......
  • CSS选择器——简单爬虫代码
    爬取豆瓣top250影片资料(待修改)使用BeautifulSoup方法进行操作,CSS选择器截取html文本内容,对网页解析如。 importrequestsfrombs4importBeautifulSoup#避免反复获取出现爬取失败#头请求用于防止访问拒绝,亦可加cookiesdefpage_request(url,headers):htmltxt=requests.g......
  • 使用Xpath编写爬虫代码
    Xpath选择器爬取房源信息实例获取网页html,未处理子网页信息。python3.6foriinrange(1,101):print('正在爬取第'+str(i)+'页')#爬取北京上海广州深圳的二手房信息city=['bj','sh','gz','sz']forcincity:......
  • 【操作系统】【硬件结构】如何写出让 CPU 跑得更快的代码?
    1  前言代码都是由CPU跑起来的,我们代码写的好与坏就决定了CPU的执行效率,特别是在编写计算密集型的程序,更要注重CPU的执行效率,否则将会大大影响系统性能。CPU内部嵌入了CPUCache(高速缓存),它的存储容量很小,但是离CPU核心很近,所以缓存的读写速度是极快的,那么如果CPU......
  • mybatis-plus-generator-ui 可视化代码生成器!
    它提供交互式的WebUI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等。可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。git地址:https://github.com/davidfantasy/mybatis-plus-generator-ui一、使用示例1......
  • 面试考代码,居然翻车了!
    你好,我是田哥今天早上,一位同学去现场面试,面试官现场写一段代码,请看代码:/***@author公众号:java后端技术全栈*@date2022年11月07日*/publicclassSolution{publicstaticvoidmain(String[]args){intcount=0;for(inti=0;i<10;i++......
  • 美女程序员:仅有30天,该怎么准备?
    你好,我是田哥昨天,一个美女同学私信我,现在想下个月就去面试,现在该如何准备面试,如何快速复习。下面,我来说一下我的看法。了解情况第一步,肯定是要了解自己的情况,不能随便说说你怎么怎么快速复习。要结合自己的技术栈来。针对性得来安排,而不是一概而论。比如说,你在项目中用过Spring、S......