函数响应式领域建模

[美] 德巴斯什·戈施(Debasish Ghosh)
推荐序 开发人员正淹没在各种错综复杂的问题中,需要借助多核处理器以及分布式基础架构的优势,来应对产生数据越来越多的高要求用户规模的迅猛增长,以确保更低的延迟以及更高的吞吐率。所以开发人员不得不在消费者日益苛刻的紧张截止时间前按时交付。 开发人员的工作从来没有轻松过。为了能保持多产的同时又能享受工作,需要采用合适的工具集——这些工具可以通过优化资源的使用来管理日益增长的复杂性以及需求。通常,并不是简单地追逐最新、最炫的东西——尽管这很诱人。所以必须要回顾总结,从过去艰难获胜的经验中学习,看是否可以将其应用到今天的场景以及挑战中。我认为开发人员开发的那些非常有用的工具中所包含的领域驱动设计(domain-driven design,DDD)、函数式编程(FP)以及响应式原则,都可以帮助我们管理复杂事务的某个方面。 ● 领域复杂性:领域驱动设计帮助我们挖掘并理解领域的不同特性与语义。通过跟利益相关方用他们的语言进行沟通,DDD可以更容易地创建可扩展的领域模型来映射真实世界,同时允许持续的变化。 ● 解决方案复杂性:函数式编程可以帮助我们保持合理性及可组合性。通过可重用的纯函数并使用稳定(不可变)值,函数式编程提供了一个伟大的工具集,通过不会“撒谎”的代码来得出运行时间、并发性以及抽象过程。 ● 系统复杂性:正如在The Reactive Manifesto(http://www.reactivemanifesto.org)中所定义的,响应式原则能帮助我们管理日益复杂的世界,包括多核处理器、云计算、移动设备以及物联网。在这里,所有新系统本质上都是分布式系统。要运作这个世界是非常困难而且很有挑战的,但同样,也拥有很多有趣的新的机会。这种变化迫使我们的行业去反思过去一些围绕系统架构以及设计方面的最佳实践。 我非常喜欢阅读这本书,它完全体现了我在过去十几年的自身经历。我从OO实习生开始…