一. Perspective and Metaphor
五. anti-pattern、bad smell
七. architecture
八. Distributed & concurrent
十一. architectures' future
西津渡
Platform二. Philosophy and discipline
Kernel
Framework
Be aware of context三. Principle
Extreme maintenance
Be pragmatic
Extreme abstract: Program to an interface (abstraction), not an implementation
Extreme separation of concerns
Extreme readability
Testability
No side effect
Do not repeat yourself
DIP ,dependency inversion of control四. design pattern
OCP , open close
LSP , liskov substitute
ISP , interface segregation
SRP , single responsibility
LKP, Lease knowledge principle
Construction
Behavior
Structure
五. anti-pattern、bad smell
Long method六. algorithms
Diverse change
Repeated code
Talk to stranger
Pre optimize
nLongN
Divided and conqueror
七. architecture
Hierarchal
Pipes and filter
Micro kernel
Broker
Black Board
Interpreter
八. Distributed & concurrent
What to concurrent九. languages
Scalability
Stretch key dimensions to see what breaks
Ruby十. Performance
Erlang
assemble
C
C++
Java
Python
Scala
Be ware of different program paradigms.
Minimize remote calls and other I/O
Speed-up data conversion
release resource as soon as possible
十一. architectures' future
軟件設計思想的發展邏輯,大致是提高抽象程度 ,separation of concern 程度。十二. Reference
fn(design )= fn1(abstraction )+ fn2(separation of concern).
由于大規模數據處理時代的來臨,下一代設計范式的重點:
1. 將是如何提高distributed(--concurrent) programing 的抽象程度 和 separation of concern 程度。
2. dsl ,按照以上的公式,也確實是一個好的方向。
<art agile software development>
<prerefactor>
<design patterns>
<beautiful architecture>
<refactor>
<pattern oriented software architecture>
<extreme software development>
<beautiful code>
<patterns for parallel programming>
<java concurrent programming in practice>
<java performance tuning>
<the definite guide to hadoop>
<greenplum>
<DryadLINQ>
<software architecture in practice>
<97 things architecture should known>
http://en.wikipedia.org/wiki/Programming_paradigm
西津渡