-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Labels
Description
最早结识DSL, 还是因为看了Martin Flower的一篇文章叫FluentInterface, 它真正让我明白原来代码也可以这样美的.
TimeInterval meetingTime = fiveOClock.until(sixOClock);
注意, 本文中提到的DSL被狭义的等同于了Internal DSL. 言外之意, 它还有External的部分. 关于DSL更全面的内容, 还请参阅Martin Flower的专著.
以至于后来我爱上写单元测试, 很大程度要归功于mockito在DSL应用上的如火纯青.
在自己尝试着用Java写DSL的时候, 那永远摆脱不掉的.和(), 总让我纠结不已, 当然, 这只是个人洁癖而已.
Scala在实现DSL是很有优势的, 这在combinator.Parsers中已表明了这点, 而且在Programming Scala一书中, 作者专门用一个章节来讨论.
值得强调的是, 阻碍我们设计实现DSL的是我们自己的想象力, 而不应该是一门语言的表现力.
在此引出本文的目的: 大家来聊聊你用Scala写过的哪些DSL?