博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5种做法,将使您的代码更好
阅读量:6256 次
发布时间:2019-06-22

本文共 1499 字,大约阅读时间需要 4 分钟。

hot3.png

1. 防御式编程

防御式编程的主要目的是保证一段代码在不可预见的情况下工作,提高理解力和可预测性,并简化维护。
为了保护程序,确保每个方法(以及类,变量,属性适用):

• 有一个明确和单一的目的

• 有一个明确的意图(即匹配的实现)
• 没有任何意外的副作用(即它不应该执行的操作是不期望的)
• 是简短的
• 可测试
• 验证输入
• 异常处理
• 有明确的协议
• 具有合理的返回值
• 没有任何泄漏的抽象(内部细节和限制应保持内部)
• 使用注释(适度)解释为什么做(如果你觉得你需要解释,你应该考虑如何做来代替重构代码)

此外,确保你的代码遵循最佳实践指南,方法和编程技术,使其他程序员(和自己在一段时间后)很容易地掌握如何工作。

2. 单元测试

单元测试会减少错误的生产数量,使其风险较小的改变和重构代码,将防止任何回归重演。如果做得对,也可以让你写出更好的代码。当然,它可能是乏味的工作,需要时间来写,但它是完全值得的。

在这里阅读更多关于单元测试:

3. 坚持SOLIOD原则

S.O.L.I.D.是一个缩写,说明面向对象的编程和设计的五个基本原则。这些原则,当结合在一起,使一个程序员开发的软件,易于维护和扩展。他们也很容易让开发者重构代码,避免代码的气味。

S.O.L.I.D代表(很简单地说):

单一责任原则

每个类都应该有一个单独的责任,由软件提供的功能的一部分,而这个责任应该完全由这个类封装。如果一个类有一个以上的“理由改变”(即它试图解决许多问题),它应该被拆分。

开闭原则

应该有可能扩展一个类的功能(打开),但不修改类本身(关闭)。

这是一个,什么是“封闭”的例子:一个方法(makejuice)是以对象作为参数,实现特定的接口(ifruit”)。如果做的好,我们应该能够创造新的水果种类和运行它,但无需改变实施的方法makejuice,这意味着它是“封闭”。

Liskov替换原则

在程序中的对象应该是可替换的,而不改变程序的正确性的实例。

接口隔离原则

分离接口,这是从大变为更小,更具体的接口,因此,任何实施只需要知道对他们感兴趣的方法。

依赖倒置原则

如果一个类X依赖于另一个类Y,确保依赖于通过一个接口来完成。这意味着,你可以用另一个实现替换Y,而不必更改X。

4. 依赖注入/反转控制

控制的反转(IoC)是一种模式,你让一个框架提供了类的依赖实例。依赖注入是IoC的一个子类型,其中的依赖关系是通过构造函数来输入的。

DI / IoC有几个好处:

  1. • 它分离代码,这反过来又增加了可重用性,使得它更容易测试,让你在更高层次上管理实例化对象
    • 它是专门侧重于任务模块
    • 更换一个模块时,它可以防止副作用
    • 它使代码可测试
    • 它促进良好的面向对象设计

在这阅读更多关于DI / IoC:

5. 使您的对象尽可能不改变

最后一次练习是从函数式编程中借用的东西—你永远都不能改变物体的思想。如果一个对象需要改变,它应该被重建。

它们有几个好处:

  1. • 对象是线程安全的
    • 它可以防止无效状态的对象
    • 让外部代码改变你的对象的状态使代码难以阅读和掌握
    • 不变性是使得它更容易去写,和使用代码的原因
    • 不变性使得它更容易并行程序,同时对象之间没有冲突
    • 对不可变对象的引用可以被缓存,因为它们不会改变

这是一个原则,可能很难生存,但你可以用以下的作为一个经验法则:除非类应该有一个很好的理由让他们变…如果一个类不能一成不变,尽可能限制它的易变性。

转载于:https://my.oschina.net/chenshuang/blog/1475721

你可能感兴趣的文章
网络工程师笔试题总结
查看>>
C# DataTable的詳細用法
查看>>
关于CISCO asa5510防火墙端口映射配置
查看>>
monkey详细介绍之二
查看>>
Java 读取 .properties 配置文件
查看>>
取消文件默认打开方式
查看>>
echarts使用笔记四:双Y轴
查看>>
二分法查找
查看>>
不用加减乘除实现加法运算
查看>>
django 快速搭建blog
查看>>
矩阵快速幂总结
查看>>
Python 3.5 安装geohash库后import geohash失败
查看>>
基于V4L2的视频驱动开发(1)
查看>>
zoj 1008
查看>>
VC++ CArchive及简单的文件操作方法
查看>>
android中ListView数据混乱问题
查看>>
如何从零安装Mysql
查看>>
Appium简介及工作原理
查看>>
更换笔记本内存:自己动手修电脑(一)
查看>>
区分扫描枪输入和键盘输入的实现
查看>>