摘要:
长期以来我都在实践OOP,进而通过OOP来实现DDD,特别是如何通过面向对象的技巧来建立一个领域模型。OO的一些特性在建立领域模型时显得恰如其分,能否掌握OO的技巧,对创建领域模型有着至关重要的作用。 这篇文章为大家介绍一种常见的函数式架构,特别是如何通过函数式语言来实现DDD,进而利用函数式组合的 阅读全文
摘要:
使用函数式语言来建立领域模型--类型组合 理解函数式编程语言中的组合--前言(一) 理解函数式编程中的函数组合--Monoids(二) 继上篇文章引出《范畴论》之后,我准备通过几篇文章,来介绍函数式编程语言中的若干"行话",例如Functor, Applicative, Monad。如果给这些名字一 阅读全文
摘要:
理解函数式编程语言中的组合--前言(一) 函数式编程思想可以用一句话总结,即:可组合的类型+可组合的函数,我在《使用函数式语言做领域建模》一文描述了如何使用可组合的类型进行领域建模。这篇文章就是用来说明后半部分,即--理解可组合的函数。我假设读者已经对“Higher order function”, 阅读全文
摘要:
再谈领域驱动设计 作为一个领域驱动设计的实践者,我切实感受到了领域驱动为软件开发带来的好处,同时在实践领域驱动的过程中也感受到了困难,这种困难体现在工程实践的方方面面,例如什么是领域驱动的最佳设计?如何把书本上的设计灵活的应用在自己的项目上?如何跟团队成员就设计达成一致? 本文尝试从领域驱动设计的目 阅读全文
摘要:
使用Domain-Driven创建Hypermedia API 在现实世界中我们会遇到各种各样的复杂场景,没有一种API设计方式可以应对所有的场景。区别于”Consumer-Driven Contract”,本文将描述另外一种设计API的方式:Domain-Driven API。这不是API设计的标 阅读全文
摘要:
使用函数式语言来建立领域模型 领域模型=代码=文档 如果说敏捷软件开发主张面对面沟通,通过快速迭代的手段,让有价值的软件尽早面向市场,从而适应快速变化的需求。 那么DDD则为敏捷开发过程中的沟通形式作出了进一步的补充,DDD让领域模型和代码以及文档之间画上了等号,主张让代码成为团队之间沟通和交流的途 阅读全文
摘要:
Shell带来的好处是毋庸置疑的,当然也需要大量的时间去练习。PowerShell作为后起之秀,同时试图打造一款更加人性化,更加易用的Shell。随着PowerShell开源跨平台的战略以及在Windows下的的崛起,PowerShell有望成为下一个更加流行的Shell。 当然,PowerShel 阅读全文
摘要:
一、DIP原则 高层模块不应该依赖于底层模块,二者都应该依赖于抽象。 抽象不应该依赖于细节,细节应该依赖于抽象。 该原则理解起来稍微有点抽象,我们可以将该原则通俗的理解为: "依赖于抽象” 。 该规则告诉我们,程序中所有的依赖关系都应该终止于 ,从而达到松耦合的目的。因为我们在应用程序中编写的大多数 阅读全文
摘要:
Masstransit作为.Net平台下的一款优秀的开源产品却没有得到应有的关注,这段时间有机会阅读了Masstransit的源码,我觉得我有必要普及一下这个框架的使用。 值得一提的是Masstransit的源码写的非常优秀,值得每个想提高自己编程能力的.Net选手阅读,整个代码看起来赏心悦目。反之,每次打开自己公司项目的时候心情都异常沉重。所以不是.Net不行,还是咱们水平不行。 学会了Mass... 阅读全文
摘要:
微软给我们提供了一种非常好用的数据库迁移方案,但是我发现周围的同学用的并不多,所以我还是想把这个方案整理一下。.NET选手看过来,特别是还在通过手工执行脚本来迁移数据库的同学们,当然你也可以选择EF的Migration方案和FluentMigrator,但是下面我介绍的这种方案符合我对团队协作的所有 阅读全文