培养面向函数式的思维
ThoughtWorks架构师这篇PDF提倡培养自己以面向函数式方式思考,使用面向函数式工具可能太繁琐,有些代价,为什么不让我们的思维更加functional呢?
他也认为:软件世界存在名词和动词两个基本划分(见banq的OOD vs. SOA),如果说OOP使得我们我们注重导致状态变化的行为,使得我们处理状态更容易些;那么FP可以进一步消除状态的影响。
OO使得通过封装变化的部分能让人理解(将变化和不变分离),而FP通过最小化细分可变部分,使得代码更加易懂。
PDF以一个数字计算为案例,原先需要在类中设计一个字段来表示内部状态,但是使用FP重新思考后,就无需内部状态,消灭了状态,这是不同角度考虑问题的魔力。