对开发人员有用的定律、理论、原则和模式

43课时
411学过
10分

阿姆达尔定律 (Amdahl's Law)

破窗效应 (The Broken Windows Theory)

布鲁克斯法则 (Brooks's Law)

康威定律 (Conway's Law)

坎宁汉姆定律 (Cunningham's Law)

邓巴数字 (Dunbar's Number)

盖尔定律 (Gall's Law)

古德哈特定律 (Goodhart's Law)

汉隆的剃刀 (Hanlon's Razor)

侯世达定律 (Hofstadter's Law)

哈伯特定律 (Hutber's Law)

技术成熟度曲线 (The Hype Cycle or Amara's Law)

隐式接口定律 (Hyrum's Law or The Law of Implicit Interfaces)

柯林汉定律 (Kernighan's Law)

梅特卡夫定律 (Metcalfe's Law)

摩尔定律 (Moore's Law)

墨菲定律 (Murphy's Law / Sod's Law)

奥卡姆剃刀 (Occam's Razor)

帕金森定理 (Parkinson's Law)

过早优化效应 (Premature Optimization Effect)

普特定律 (Putt's Law)

里德定律 (Reed's Law)

复杂性守恒定律 (The Law of Conservation of Complexity or Tesler's Law)

抽象泄漏定律 (The Law of Leaky Abstractions)

帕金森琐碎定理 (The Law of Triviality)

Unix 哲学 (The Unix Philosophy)

Spotify 模型 (The Spotify Model)

沃德勒定律 (Wadler's Law)

惠顿定律 (Wheaton's Law)

呆伯特法则 (The Dilbert Principle)

帕累托法则 (The Pareto Principle or The 80/20 Rule)

彼得原理 (The Peter Principle)

鲁棒性原则 (The Robustness Principle or Postel's Law)

SOLID

单一功能原则 (The Single Responsibility Principle)

开闭原则 (The Open/Closed Principle)

里氏替换原则 (The Liskov Substitution Principle)

接口隔离原则 (The Interface Segregation Principle)

依赖反转原则 (The Dependency Inversion Principle)

不要重复你自己原则 (The DRY Principle)

KISS 原则 (The KISS Principle)

你不需要它原则 (YAGNI)

分布式计算的谬论 (The Fallacies of Distributed Computing)

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
15分钟

依赖反转原则 (The Dependency Inversion Principle)

高级模块不应该依赖于低级实现。

SOLID 的第五个原则。该原则指出,更高级别的协调组件不应该知道其依赖项的详细信息。

举个例子,假设我们有一个从网站读取元数据的程序。我们假设主要组件必须知道下载网页内容的组件,以及可以读取元数据的组件。如果我们考虑依赖反转,主要组件将仅依赖于可以获取字节数据的抽象组件,然后是一个能够从字节流中读取元数据的抽象组件,主要组件不需要了解 TCP、IP、HTTP、HTML 等。

这个原则很复杂,因为它似乎可以反转系统的预期依赖性(因此得名)。实践中,这也意味着,单独的编排组件必须确保抽象类型的正确实现被使用(例如在前面的例子中,必须提供元数据读取器组件、HTTP 文件下载功能和 HTML 元标签读取器)。然后,这涉及诸如 Inversion of Control 和 Dependency Injection 之类的模式。

参见: