1.代码低耦合

低耦合性是结构良好程序的特性,低耦合性程序的可读性、可维护性、可重用性和扩展性会比较好,而紧耦合模块或者系统之间关系太紧密,存在相互调用,如果修改其中一个对象,那么另一个对象也需要修改。当两个对象过于紧耦合时,修改代码可能会是一场噩梦,同时更有可能在每次修改时引入bug。


2.避免上帝对象

上帝对象是指包含太多变量和函数的大型类或模块。“知道得太多”和“做得太多”都会造成一些问题,原因有以下两点:

  1. 其他类或模块会变得过分依赖于数据(紧密耦合)。
  2. 由于所有代码都挤在同一个地方,使得整体结构杂乱无章。相较于上帝对象,分解为许多小对象可能会更好。

3.拒绝长函数

顾名思义,长函数是指函数太长了。虽然没有一个特定的数字表示多少行代码对于一个函数来说“太长”,但当你看到这个函数时,你就会知道它是不是太长。一个长函数意味着包含了太多的功能实现。一般情况下长函数应该被分解成许多子函数,其中每个子函数被设计为处理单个任务或问题。理想情况下,原始的长函数将变成一个子函数调用列表,从而使代码更清晰,更易于阅读。


4.标识符命名有意义

一个或两个字母的变量名、无明显意义的函数名称、过分修饰的类名、使用变量类型标记的变量名称(例如,b_isCounted表示布尔变量),或者在一个代码中混合使用不同的命名规则,所有这些都将导致代码难以阅读,难以理解和难以维护。一般而言,变量名称应该简短但具有描述性函数名通常应该至少有一个动词,并且函数名称应该表现出该函数的功能,但是不要使用太多的单词,类名也是如此。


5.杜绝幻数

当你正在浏览一些其他人写的代码,这时你发现了一些硬编码的数字。它们也许是if语句的一部分,或者是一些难以理解的计算的一部分,看起来没什么意义,而你需要修改该模块,但却无法理解这些数字的含义,这会使你非常苦恼。因此在编程时,应该不惜一切代价避免这些所谓的“幻数”。硬编码数字在写的时侯是有意义的,但是它们很快就会失去所有含义 ,特别是当其他人试图维护你的代码时。其中一种解决方法是留下数字的注释,但更好的选择是将幻数转换为常量变量(用于计算)或枚举(用于if语句和switch语句)通过给幻数起一个名字,代码可读性一目了然,同时也不太容易出现错误。


6.避免深度嵌套

深度嵌套的代码并不总是很糟糕,但可能会产生问题,因为它很难理解,特别是变量没有被很好地命名的情况下,甚至更加难以修改。如果你发现自己正在编写一个双重,三重甚至四重for循环,那么代码将可能试图在超出自身的范围外查找数据。那么你应该提供一种方法,使之可以通过包含该数据的对象或模块函数调用来请求数据。另一方面,深层嵌套的if语句通常表明你试图在单个函数或类中处理过多的逻辑代码块。事实上,深层嵌套和长函数往往是同时出现的。如果你的代码有大量的switch语句或嵌套的if-then-else语句,你可能需要实现一个状态机或策略模式


7.简洁的代码

你在程序多个无关部分执行相同的逻辑代码块,然后发现需要修改该逻辑代码块,但是却不记得所有执行该代码块的地方,假设最终你只修改了5个位置,而实际上有8个位置的代码块需要进行更改,这就会导致结果出现错误。一般情况下转化为函数是比较好的习惯,这样如果你需要修改此逻辑代码块,就只需要修改该方法,再将其应用于所有调用该方法的地方就可以了


8.代码注释

代码在任何地方都没有注释。没有函数的功能注释,没有类的使用概述,没有对算法的解释等等。有人可能会说,写得好的代码不需要注释,但事实上,即使是写的最好的代码也不如注释更容易被理解。在写注释的时候,要记住你的目的是为解释代码块为什么存在,而不是解释代码块在做什么。注释能帮助你更好的理解自己和他人的代码,减少工作量,所以不要忽视他们。

https://www.zhihu.com/question/23110763/answer/740693484

良好的编程习惯有哪些?相关推荐

  1. 10条PHP编程习惯助你找工作

    过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐 趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人, ...

  2. 良好编程习惯的重要性

    良好编程习惯的重要性 1.拷贝字符串使用memcpy.虽然memcpy可以拷贝字符串,但是不严谨.当项目中有新手加入时,由于新手水平有限,在模仿前辈写代码时,使用memcpy不恰当,造成程序莫名错误或 ...

  3. php5.5参数配置优化,5个PHP性能优化的编程习惯

    在网上搜索了一下编程优化我们都会看到大量的文章,但都是一样的内容,下面我来给各位整理了我觉得最有用的5个PHP性能优化的编程习惯分享给各位,希望文章能给各位带来帮助哦. 1. 不要随便就复制变量 有时 ...

  4. php编程习惯,经验分享:PHP编程的5个良好习惯(二)

    学习良好的编程习惯能够提高代码质量和效率.像其他语言一样,开发人员可以用 PHP编写出各种质量级别的代码.根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效 ...

  5. python编程基础(四):编程习惯、代码规范、易混淆之处

    目录 编程习惯 代码规范 python中self的作用 易混淆之处 编程习惯 1. 添加主函数if __name__ == 'main': 2. 使用project_path = os.getcwd( ...

  6. php编程习惯,PHP 编程的 5个良好习惯

    根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯.不良的编程习惯将会影响到效率.本文通过展示一些良好的编程习 ...

  7. 好的Java编程习惯

    养成良好的java编程习惯 1.        应该在每个程序的开始都加上注释,解释该程序的目的.作者以及程序最后一次被修改的日期和时间. 2.        使用空行和空格来增强程序的可读性. 3. ...

  8. 程序员偷偷深爱的 9 个不良编程习惯

    我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙.同样的,我们都违背过一些编程的基本规则,并且都会坚定地表示这种行为是不可取的.但我们就是偷偷爱着这些不良的编程习惯. ...

  9. 程序员偷偷深爱的9个不良编程习惯

    新媒体管家 下面这9个编码习惯,虽然在编程规则中是被驳斥的,但我们很多人就是会不由自主地使用它们. 我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙.同样的,我们都违背 ...

  10. 敲代码括号技巧_理解代码块概念,养成良好编程习惯 | 亲子课堂 第 3 课

    亲子课堂 关卡解析 / 英语教学 / 编程讲解 做亲子编程教育的好帮手! 每周二.四定期更新 地牢 面向真正0编程基础的孩子们,关卡被设计成迷宫的形式,引导孩子们使用编程思维解决问题. 以循序渐进的方 ...

最新文章

  1. 一、如何实现python导入另一个文件中的模块(方法)?
  2. 【硬件基础】有源蜂鸣器与无源蜂鸣器
  3. 周鸿祎重做路由器,到底在做什么?
  4. s5pv210——I2C的代码实践
  5. Spring官方阅读笔记-@Controller官方解析与实例(5.0.12)
  6. Python 3.7 已上架 Microsoft Store,让你在 Windows 轻松使用 Python
  7. 如何解决cellIndex在IE下兼容性问题
  8. Codecov后门事件验证分析
  9. Centos7重装系统保留数据
  10. android adb 刷机工具,ADB 工具 ADB 工具刷机-完美教程资讯
  11. 详细的组态王软件与200 Smart PLC网口通信教程
  12. CSP赛前集训 【DD头子张京华】
  13. 二等水准测量记录数据_2等水准测量原始记录表
  14. 将用户需求转化为产品需求-质量屋
  15. iView级联选择器Cascader回显慢的问题
  16. 解决Thinkpad E450 外接显示器后没有声音的问题
  17. 大数据分析编程语言有哪些?
  18. android之学习的网站
  19. 【PHP】保留两位小数并向上取整
  20. 京东API开发系列:京东按关键字搜索商品 API / item_search - 按关键字搜索商品 API返回值说明

热门文章

  1. Linux内核 eBPF基础:perf(2):perf性能管理单元PMU的注册
  2. 岁月温柔-5 感冒引发再次住院 记录
  3. [MetalKit]32-Shadows-in-Metal-part-2阴影2
  4. 【MongoDB】继续在简单操作的边缘试探D2
  5. matlab归一程序,Matlab三种归一化方法
  6. 如何使用思维导图做计划的6种模板类型
  7. python运行环境搭建以及常见问题解决
  8. 移动端的兼容问题(ios和安卓)
  9. 学校的友宝自动售货机出故障 不知什么系统呵
  10. Linux dd 命令 限制文件夹大小