鲍勃大叔:SOLID原则适合函数编程吗?


当然,函数式程序员需要分离职责和使用者,防止串扰,他们希望尽量减少受更改影响的模块数量。
他们希望建立并遵守可靠的接口合同。他们希望避免依赖于他们不需要的模块和资源。他们当然希望高层政策能够独立于低层细节。

众说纷纭:
1. 确实,特别是SRP和ISP,其最纯粹的形式导致单一方法接口。当这些函数是纯函数时,将依赖关系明确定义为参数(DIP导致这种情况)并使类成员变为不可变,我们就拥有了函数设计的基础。

2. 对。FP是实现SOLID的先决条件。不是相反。您可以将SOLID应用于OOP语言,但是您需要使用大量FP模式进行编程 ,与使用真正FP语言相比,它的工作量是3倍。SOLID 的OOP代码很少见。

3. SOLID非常非常通用,几乎可以应用于任何语言。甚至COBOL。

4. FP和OO是同一枚硬币的两面 - 它们只是表面上不同。我们为人们编写代码 - 所以我们必须以一种吸引我们理性的方式写作。抽象+动作或 动作+抽象。SOLID原则是这两者的基础。

5. 默认情况下,通过使用更纯粹的函数式语言,可以隐式获得很多SOLID优势。虽然通常使用OOP或命令式编程,但您需要明确地使用SOLID,否则代码会变得非常混乱。

6. SOLID不仅适用于OOP。难道它不能适用于TSQL / PLSQL?