Perhaps you understand how to write good code, how to adhere to good design. But this knowledge cannot be structured. John Ousterhout's book, A philosophy of software design, can help fix this.
It allowed me to structure the knowledge I have accumulated over 3 years of work as a developer and to fix many mistakes in understanding good code design. She helped to clarify for herself more clearly what it is.
, , .
, . , . , .
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 , , .
. , , , .
, , .
, .
, , , . .
, . .
, . , , . .
, , , . - , .