关于“软件开发哲学”一书的注释



也许您了解如何编写良好的代码,如何坚持良好的设计。但是,这种知识无法被构造。John Ousterhout的书《软件设计哲学》可以帮助解决此问题。



它使我能够整理自己作为开发人员三年来积累的知识,并纠正在理解良好的代码设计方面的许多错误。她帮助自己更清楚地说明了它是什么。



, , .





, . , . , .



2 :



  1. . , , .
  2. . — .


“”. , , API .. .





, , .

:



  1. .
  2. . , , .
  3. , , .


:



  1. :

    • ( )


, . , . , , .



2 , :





, . , , , .



, — , , . , .



— , . :



  1. — .
  2. — , .


, . . , .

. , . , , .



, .





20% , , .





, .

, , — .

, , . .



, , . , , .



:



  1. — , , ..
  2. — , .


— , . 2 :



  1. — , .


, , .



, , , . , , , .





.

, , . :



  • back-door. , , , . .

    , “ , 1 ?”. .


́



, . , , 3 : , . , , .

, . . , .





, - .



, .



, , .



, :



  1. ?
  2. ? , .
  3. ?


,



, .



:



  • — , . :


public function foo() {
  return this->bar();
}


, , . , .

— , .

, . .



  • — . :


public function foo(SomeClass variable) {
  $this->bar(variable);
}


, . , , , , .

— DI . , , . , (immutable).





. . ( — , , ).

, . , , . , .

. , .





, , , . , , :



  1. .
  2. . .
  3. .
  4. .
  5. .


. , , . , , — .



— , .



, , , — , . , .



, , , .





exception . , . - , .



:



  • ,


— . , .



, .



:



  1. . .
  2. , .
  3. , .
  4. , .


. .





. . .



. , . , . , .



:





, , .



, 1-2 . , .





, :



  1. — . , :

    • , , .
    • , , .
    • , , , - .
    • .
  2. . , - .
  3. . . .


— , . , . . .





. , .



.



— .



, , .



, . .



— , ( ). . . , , .

, , http . , .



, . — . , .





:



  1. .
  2. . , , - .
  3. .




— .

:





:



  • , count. , , - . . .
  • , .. , .




— , , — . :



  • ( MVC )


:



  • , .
  • . , , , .


, . :



  • , , .
  • , .


, , , . 2 :



  1. ?
  2. , ?


“”, .







, . . , .



Agile



, Agile. . .

, agile , , .



Unit



, unit . QA .

Unit , , .



TDD



TDD , , .

. , , , .





, , .

, .





, , , . .





, . .

, . , , . .



, , , . - , .




All Articles