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 Qdependency inversion of control? design pattern
OCP , open close
LSP , liskov substitute
ISP , interface segregation
SRP , single responsibility
LKP, Lease knowledge principle
Construction
Behavior
Structure
Long method? algorithms
Diverse change
Repeated code
Talk to stranger
Pre optimize
nLongN
Divided and conqueror
Hierarchal
Pipes and filter
Micro kernel
Broker
Black Board
Interpreter
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
软g设计思想的发展逻辑Q大致是提高抽象E度 Qseparation of concern E度?br /> fn(design )= fn1(abstraction )+ fn2(separation of concern).十二. Reference
׃大规模数据处理时代的来Q下一代设计范式的重点Q?br /> 1. 是如何提高distributed(--concurrent) programing 的抽象程??separation of concern E度?br /> 2. dsl Q按照以上的公式Q也实是一个好的方向?br />
<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
use case 设计的经?BR>分层
核心的业务,要优先考虑?BR>分模?BR> x核心的概c?/P>
use case 设计的优?/P>
提供可选的Ҏ
有对比,才有优化?BR>用户接口能否再简?BR> U束住用P用户会感觉麻烦?BR> 不要Ҏ构增加太多的U束?/P>