怎样才能写出规范的好代码?

本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看

(一)前言

最近发现一件事情,自己写的代码和公司里工作5到10年的前辈写的代码虽然功能一样,但是他们的代码更规范,更优雅。比如有时候我会给一个需求写一个方法,但是有些人就可以好几个需求通过同一个方法实现。因此有了今天这个疑问,怎样才能写出规范的好代码?

(二)什么样的代码是好的代码

我们在写程序的过程中,除了要实现功能之外,还需要考虑:

1.代码重用性(相同功能的代码,不用多次编写)

2.可读性(便于其他程序员阅读与理解)

3.可扩展性(需要新增功能时可以很方便的维护)

4.可靠性(新功能的加入不会对已有的功能造成影响)

5.高内聚低耦合

而为了实现上面这些目的,我们需要遵循一些原则,因此,设计模式出现了。

(三)设计模式的原则

设计模式的原则,就是指在编写程序时应该遵守的原则,设计模式的原则也是各种设计模式设计的依据。

设计模式常用的原则有以下七种:

1.单一职责原则

2.接口隔离原则

3.依赖倒转原则

4.里式替换原则

5.开闭原则

6.迪米特法则

7.合成复用原则

接下来我将对以上七种设计模式进行介绍。

(四)单一职责原则

单一职责原则顾名思义就是每个类只负责一项原则,很好理解,如果一个类中负责了两个甚至更多的职责,当其中一个职责的需求发生变更而要改变时,可能造成其他职责的执行错误。

单一职责原则的注意事项和原则:

  1. 降低类的复杂度,一个类只负责一项职责

  2. 提高类的可读性,可维护性

  3. 降低变更引起的风险

  4. 通常情况下,我们都应该遵守单一职责原则,除非该类的逻辑足够简单,才可以在代码中违反单一职责原则。

(五)接口隔离原则

接口隔离原则的意思是表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口(指一个接口中有大量不会使用的方法的接口)中的方法分组,然后用多个接口替代它,每个接口服务于一个子模块。简单地说,就是使用多个专门的接口比使用单个接口要好很多。

(六)依赖倒转原则

依赖倒转原则的含义有下面三点:

1、高层模块不应该依赖低层模块,两者都应该依赖其抽象

2、抽象不应该依赖细节

3、细节应该依赖抽象

光看三点含义会很难理解,但是从设计理念层面就会好理解很多,依赖倒转原则的设计理念是:以接口和抽象为基础的系统会比以细节为基础的系统稳定很多。因此我们设计一个系统时,应该先设计接口和抽象类,然后通过具体的实现类去实现细节功能

因此依赖倒转原则的核心是面向接口编程

(七)里式替换原则

里式替换原则主要为了解决继承会导致的一些问题。

继承作为面向对象的三个基本特性之一,在给程序带来便利的同时也增加了一些潜在的风险。比如子类B和子类C同时继承父类A,如果父类A需要修改,必须要考虑所有的子类,否则就可能导致子类的方法出现故障。

里式替换原则的定义为:继承必须确保超类所拥有的性质在子类中仍然成立。

通俗来讲,就是子类可以扩展父类的功能,但不能改变父类原有的功能。

在实际编程中,我们遵循里式原则的方式就是子类尽量不要去重写父类的方法,通过依赖、聚合、组合等关系代替。

(八)开闭原则

开闭原则的核心是一个应用,应该对扩展开放,对修改关闭。

简单来讲,如果一个需求变更了,尽量通过扩展的方式去实现,而不是去修改原来的代码。而在代码中具体实现的话就是合理利用接口和抽象类,扩展时只需要继承抽象类或实现接口而不用去修改原来的代码。

开闭原则是编程中最基础和重要的原则。

(九)迪米特法则

迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好

通过迪米特法则,可以实现代码之间的低耦合。我们在写代码时,尽量减少每个类不必要的依赖,陌生的类不要作为成员变量出现在类里(这里陌生的类是值没有在方法参数或者请求参数中出现的类)。

但是迪米特法则并非要求类之间完全没有依赖!

(十)合成复用原则

合成复用原则的核心是尽量使用合成(聚合)的方法,而不是使用继承。

举个例子:如果A类想要用B类的某个方法,通过继承是肯定可以实现的。但是继承的话就会导致A和B的耦合性增强,这个时候就可以通过合成的方式,在A类中引用B类,来降低耦合性。

(十一)总结

即使将上面的七种原则全部理解清楚,想要真的在编码时完全按照原则来还是很难,这是一个长期的过程,而我们能做的是尽量在赶工的同时留意代码质量,逐步将设计模式等准则应用在代码中。

我是鱼仔,我们下期再见!(最近太忙了,更新可能会有点慢)

### 回答1: 如何培养良好的代码规范? 1. 首先,了解不同的代码规范,并选择一个合适的代码规范并遵循它。 2. 在代码之前,先制定一个规划,明确你的代码要完成什么以及如何实现。 3. 通过阅读其他人的代码来学习良好的代码风格和规范。 4. 在编代码时,注重可读性,使用有意义的变量名和函数名,并使用注释来解释代码的目的。 5. 使用版本控制系统(例如Git)来管理你的代码,并定期提交更新。 6. 通过代码审查来帮助改进你的代码质量。 ### 回答2: 要培养良好的代码规范,需要以下几个方面的努力。 首先,学习和理解常用的代码规范标准。如Google开源项目规范、Python PEP 8、Java Code Conventions等。通过阅读这些规范,了解和掌握其中的要点和建议,对代码风格、命名规则等有清晰的认识。 其次,要在实际编码过程中坚持使用规范标准。编代码时要注意缩进、空格、注释等细节,保持代码的可读性和易维护性。遵循良好的命名规范,使用有意义的命名,增加代码的可理解性。 第三,要培养自我审视和批评的习惯。编代码后,及时进行自我审查,检查代码是否符合规范标准。可以通过使用代码静态分析工具,如Lint工具,帮助检查代码潜在的问题和不规范之处。 此外,要加强团队内部的协作和沟通。团队成员之间应该统一对代码规范的理解和遵守,可以通过开展培训、讨论及定期代码审查等方式来达到一致的标准。相互之间要共同遵守规范,互相监督和帮助,提高整体代码质量。 最后,持续学习和关注新的规范标准和最佳实践。代码规范是动态的,会随着技术的进步和发展而不断更新和完善。要保持对新规范的学习和关注,及时调整和改进自己的编码习惯。 总之,良好的代码规范不是一蹴而就的,需要不断地努力和实践。只有持之以恒地坚持规范,才能培养出高质量的代码和良好的编码习惯。 ### 回答3: 培养良好的代码规范对于一个程序员的成长和团队的有效协作至关重要。以下是一些培养良好代码规范的方法: 1. 学习和理解开发团队的代码规范:首先要了解和学习所在团队的代码规范,并了解背后的原因和目的。可以通过阅读公司或团队的代码规范文档、与更有经验的开发者交流等方式来深入了解。 2. 遵循代码规范的最佳实践:在编代码时,要始终遵循代码规范的最佳实践,包括使用统一的命名约定、注释规范、块和缩进的一致性等。这样可以增加代码的可读性和可维护性。 3. 使用自动化工具进行代码检查:使用代码检查工具,如Lint工具,可以自动检查和纠正代码规范问题。这些工具可以帮助发现和修复一些潜在的代码规范问题,提高代码质量。 4. 开展代码审查和团队交流:定期开展代码审查是培养良好代码规范的重要环节。通过代码审查,可以共同发现和解决潜在的代码规范问题,并分享经验和最佳实践。同时,要保持良好的团队交流和协作,共同讨论和制定更好的代码规范。 5. 持续学习和更新:技术发展迅速,代码规范也需要不断更新和演进。因此,程序员需要持续学习和跟进最新的技术和行业趋势,及时更新和改善自己的代码规范。 总之,良好的代码规范是一个程序员必备的素质,通过学习、遵循规范、使用工具和与团队协作,可以不断提高自己的代码质量和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java鱼仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值