Suffering-oriented programming
http://nathanmarz.com/blog/suffering-oriented-programming.html
名字取得非常贴切,根据自己的需要(或者是自己长期忍受的问题)来进行编程,这样才能够最大程度地避免复杂性,简化设计以及减少risk(所以作者认为storm开发过程只能够说是challenging而不是risky)
在具体操作的时候分为三个部分进行
- First make it possible. 解决现有的问题不管是否dirty,主要是尽快地碰到问题域收集use cases。
- Then make it beautiful. 在现有的use cases上面进行提取(distill),并且进行抽象(abstraction)进行设计。
- Then make it fast. 做小层面的optimization而不要修改整个architecture。
然后这三个过程不断地进行迭代。