5. 引子:关于简单& 复杂的3 条语录
• 代码像首诗
– Code is like a poem
• 设计是一场与复杂性的战斗
– We believe designing systems is a fight against complexity.
– Most of the time the best way to fight complexity is by not creating it.
• Coding 是件“艰苦”的事,唯一的办
法是享受它;如果Coding 已不能带来
快乐,就考虑“停止”它。
71. Declarative to DSL 任重而道远!
• Declarative Samples
– Attribute
– Linq + Lambda
– Fluent Interface (jQuery) + Functional Programming (F#)
• DSL Samples
– SQL, XSLT, CSS, ABAP, MATLAB, etc.
– LINQ to SQL Designer, Entity Framework Designer, etc.
– Class Designer, Workflow Designer, etc.
– VS UML Diagram Designer
– CodeSmith, T4, etc.
– XXX Model Designer, YYY Domain Language, etc.
72. 关于应用软件开发的大胆推测(not YY)
• 应用开发4 个演进阶段
– Data-Driven
– Domain-Driven
– Declarative-Driven
– DSL-Driven + Factory-Composing
• 高效开发4 个努力方向
– Single DSL Microsoft Axum (Demo #1), Microsoft Oslo, etc.
– Simple RAD Dynamic Data (Demo #2), LightSwtich (Demo #3), etc.
– DSL + RAD Microsoft Business Framework, Sculpture, etc.
– Software Factory
74. 回到开发效率:如何实现【术业有专攻】?
n-Layer Design
n-Layer Development
n-Layer Developer Role Model
UI Dev + Biz Dev + Data Dev + etc.
Interface-Oriented Design/Dev/Testing!