
Mungkin Anda mengerti bagaimana menulis kode yang baik, bagaimana mengikuti desain yang baik. Tapi pengetahuan ini tidak bisa terstruktur. Buku John Ousterhout, Filosofi desain perangkat lunak, dapat membantu memperbaikinya.
Ini memungkinkan saya untuk menyusun pengetahuan yang telah saya kumpulkan selama 3 tahun sebagai pengembang dan untuk memperbaiki banyak kesalahan dalam memahami desain kode yang baik. Dia membantu menjelaskan untuk dirinya sendiri dengan lebih jelas apa itu.
, , .
, . , . , .
2 :
- . , , .
- . β .
ββ. , , API .. .
, , .
:
- .
- . , , .
- , , .
:
- :
- ( )
, . , . , , .
2 , :
, . , , , .
, β , , . , .
β , . :
- β .
- β , .
, . . , .
. , . , , .
, .

20% , , .
, .
, , β .
, , . .
, , . , , .
:
- β , , ..
- β , .
β , . 2 :
- β
- β , .
, , .
, , , . , , , .
.
, , . :
- back-door. , , , . .
, β , 1 ?β. .
Μ
, . , , 3 : , . , , .
, . . , .
, - .
, .
, , .
, :
- ?
- ? , .
- ?
,
, .
:
- β , . :
public function foo() {
return this->bar();
}
, , . , .
β , .
, . .
- β . :
public function foo(SomeClass variable) {
$this->bar(variable);
}
, . , , , , .
β DI . , , . , (immutable).
. . ( β , , ).
, . , , . , .
. , .
, , , . , , :
- .
- . .
- .
- .
- .
. , , . , , β .
β , .
, , , β , . , .
, , , .
exception . , . - , .
:
- ,
β . , .
, .
:
- . .
- , .
- , .
- , .
. .
. . .
. , . , . , .
:
, , .
, 1-2 . , .
, :
- β . , :
- , , .
- , , .
- , , , - .
- .
- . , - .
- . . .
β , . , . . .
. , .
.
β .
, , .
, . .
β , ( ). . . , , .
, , http . , .
, . β . , .
:
- .
- . , , - .
- .
β .
:
:
- , count. , , - . . .
- , .. , .
β , , β . :
- ( MVC )
:
- , .
- . , , , .
, . :
- , , .
- , .
, , , . 2 :
- ?
- , ?
ββ, .
, . . , .
Agile
, Agile. . .
, agile , , .
Unit
, unit . QA .
Unit , , .
TDD
TDD , , .
. , , , .
, , .
, .
, , , . .
, . .
, . , , . .
, , , . - , .