- global cokoliv je zakázané
- static cokoliv je zakázané
- public atributy jsou zakázané
- settery (krome potreby Dependency Injection) jsou zakázané
- primitivní proměnné jsou po přiřazení immutable
- komentáře používejte pouze tehdy, kdy nejde danou věc říct kódem
- prevádějte errory na výjimky
- vertikální odřádkování v metodě znamená, že má být kód převeden
do samostatné metody
- maximální úroveň zanoření zdrojáku je 3 (1. třída, 2. metoda, 3.
kontrolní blok jako je if, while, do). Pokud použijete try{ }, můžete
zvýšit úroveň na 4
- omezení pro třídu je 150 řádek. 80 % třid vašeho projektu nesmí mít
víc, než 75 řádek
Našel jsem zajímavý autoloader pro PHP. Podtržítka v namespace
nechává, ale v názvu třídy je mění na oddělovač adresářů. Po
"nezbytných úpravách" vypadá takto:
Porušení Démeteřina zákona v OOP je stejné, jako kdybyste v obchodě
prodavači podali peněženku, aby si z ní požadovaný obnos sám vybral. Je
to pohodlné, ale nebezpečné.
Antipattern Anemic domain model is the use of a software
domain model where the domain objects contain little or no business logic
(validations, calculations, business rules etc).
The fundamental horror of this anti-pattern is that it's so contrary to
the basic idea of object-oriented design; which is to combine data and process
together. The anemic domain model is really just a procedural style design,
exactly the kind of thing that object bigots like me ... have been fighting
since our early days in Smalltalk. What's worse, many people think that anemic
objects are real objects, and thus completely miss the point of what
object-oriented design is all about.
-- Martin Fowler --