架构师必须掌握的 10 条设计原则

整理于网络

1、遵循单一职责原则

函数是程序员的工具中最重要的抽象形式。它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠。较小的函数遵循单一职责原则更有可能被重复使用。

2、尽量减少共享状态

你应该尽量减少函数之间的隐式共享状态,无论它是文件作用域的变量还是对象的成员字段,这有利于明确要求把值作为参数。当能明确地显示函数需要什么才可以产生所需的结果时,代码会变得更容易理解和重用。

对此的一个推论是,在一个对象中,相对于成员变量,你更应该优先选择静态的无状态变量 (static stateless variables)。

3、将副作用局部化

理想的副作用(例如:打印到控制台、日志记录、更改全局状态、文件系统操作等)应该被放置到单独的模块中,而不是散布在整个代码里面。函数中的一些“副作用”功能往往违反了单一职责原则。

4、优先使用不变的对象

如果一个对象的状态在其构造函数中仅被设置一次,并且从不再次更改,则调试会变得更加容易,因为只要构造正确就能保持有效。这也是降低软件项目复杂性的最简单方法之一。

5、接口高于类

接收接口的函数(或 C 中的模板参数和概念)比在类上运行的函数更具可重用性。点击这里查看 6 大设计原则。

6、对模块应用良好的原则

寻找机会将软件项目分解成更小的模块(例如库和应用程序),以促进模块级别的重用。对于模块,应该遵循的一些关键原则是:

1.尽可能减少依赖

2.每个项目应该有一个明确的职责

3.不要重复自身

你应该努力使你的项目保持小巧和明确。

7、避免继承

在面向对象编程中,继承 —— 特别是和虚拟函数结合使用时,在可重用性方面往往是一条死胡同。我很少有成功的使用或编写重载类的库的经历。

8、将测试作为设计和开发的一部分

我不是测试驱动开发的坚定分子,但开始编码时先编写测试代码会使得代码十分自然地遵循许多指导原则。这也有助于尽早发现错误。不过要注意避免编写无用的测试,良好的编码实践意味着更高级别的测试(例如单元测试中的集成测试或特征测试)在揭示缺陷方面更有效。

9、优先使用标准的库

我经常看到更好版本的 std::vector或 std::string ,但这几乎总是浪费时间和精力。一个明显的事实是 —— 你正在为一个新的地方引入 bug,其他开发者也不太可能重用你的代码,因为没有被广泛理解、支持和测试。

10、避免编写新的代码

这是每个程序员都应遵循的最重要的教诲:最好的代码就是还没写的代码。你写的代码越多,你将遇到的问题就越多,查找和修复错误就越困难。

在写一行代码之前先问一问自己,有没有一个工具、函数或者库已经实现了你所需要的功能?你真的需要自己实现这个功能,而不是调用一个已经存在的功能吗?

你还知道别的设计原则吗?欢迎留言!

(0)

相关推荐

  • 设计模式——六大设计原则

    文章目录 一.单一职责原则 二.里式替换原则 三.依赖倒置原则 四.接口隔离原则 五.迪米特法则 六.开闭原则 一.单一职责原则 单一职责原则简称 SRP,他想表达的就是字面意思,一个类只承担一个职责 ...

  • 重温设计模式系列(三)面向对象设计原则

    背景 面向对象基础知识,只是给了我们一个概念,如何更好的设计出良好的面向对象代码,需要有设计原则作为支持.设计原则是核心指导思想,在这些原则的基础上,经过不断的实践,抽象,提炼逐步产生了针对特定问题的 ...

  • 掌握设计原则,你就是光(25个问题,你会几个)

    25个问题,你会几个 如何理解单一职责原则? 如何判断职责是否足够单一? 职责是否设计得越单一越好? 什么是开闭原则? 修改代码就一定意味着违反开闭原则吗? 怎样的代码改动才被定义为扩展或者说是修改? ...

  • 干货 | 优秀架构师必须了解的6大方面30条设计原则

    Java进阶架构师2019-11-29 06:16:49 架构的话题,之前就讲过许多,比如: 对呀,我就是认定架构师都是不干活,只会画PPT的! 好文 | 架构师更多的是和人打交道,说说我见到和听说到 ...

  • 差评师不讲武德:“10条差评,2000块,不给钱每天都有”!

    餐饮新纪元,让你的餐厅经营更容易!餐饮实战第一自媒体. 导读 做餐饮最怕什么?有人会说最怕没生意,有人会说最怕监管找麻烦,有人会说最怕隔壁竞争对手来阴的. 黄健的看法不一样,他认为最怕的就是餐饮职业差 ...

  • 架构师 | 数据仓库建设灵魂10问

    前 作者:allenzuo,曾主导设计过PG的数仓和美团点评的数仓,有超过10年的数据建模经验(数据中台,用户画像和用户增长等领域),喜欢研究算法和大数据技术,对用户增长和用户运营有较强的实践经验. ...

  • 10个设计原则,让小卫生间装出豪宅的大气感!

    我们都梦想有一个宽敞的卫浴间,最好是独立的浴缸和淋浴,两个水槽,甚至还有一个舒适的躺椅可以在浸泡的时候休息...... 那么,为了我们共同的梦想,给你10个设计原则,可以部分或全部使用这些技巧让你的卫 ...

  • “斩男女神”萧亚轩总结的10条恋爱原则,靠谱有效,你值得参考

    1979年出生的萧亚轩,算算年龄也已近40岁,但她却活出了18岁少女的精彩.她每天都在恋爱中,所交往的男友,全部都可以用"高颜值"."好身材"."气质 ...

  • 多图干货!优秀Web设计的69条设计原则

    好的设计能够帮助企业提升数据,同时还可以提供用户一个良好的使用体验.GoodUI总结了一个长达69条设计原则的清单(不断增加中),列举了他们认为非常重要的设计要点. 与以往的一些文章不一样的是这里提到 ...

  • 办公室的10条风水原则

    文/龙吟师傅 一.背后有靠,升官有靠 从风水的角度来讲,在办公室安置办公桌时,最重要的是后方要有靠.假如后方是走道,办公会比较不安稳,心神不宁.办公桌后方可是墙壁,或配置桌子.矮柜都可以. 二.前面开 ...

  • 名家披露做好这10条基础原则,一定可以写得一手好字!

    基本功 一.要基本功扎实,要临池磨练.持之以恒. 不要追求捷径,书法艺术是没有捷径可走的,一份辛劳一份收获. 二.要会琢磨,会辨别得出古代哪些书法是真正的好作品. 哪些是不适合自己去练习的.不要人为听 ...