Maximální délka metod
Ve škole nám vtloukali do hlavy, že funkce (nebo metoda, chcete-li) by neměla být delší než 50 řádek kódu. Mnoho lidí však pro posuzování maximální přípustné délky funkce používá jiná měřítka. Při procházení knihy Practical Common Lisp od Petera Seibela jsem narazil na hezkou praktiku, která mě opravdu rozesmála.
A friend of mine was once interviewing an engineer for a programming job and asked him a typical interview question: how do you know when a function or method is too big? Well, said the candidate, I don’t like any method to be bigger than my head. You mean you can’t keep all the details in your head? No, I mean I put my head up against my monitor, and the code shouldn’t be bigger than my head.
Viděl jsem zdrojáky, kde se nacházely oba extrémy: funkce dlouhé stovky řádek i třídy obsahující desítky dvou až tří řádkových metod. Nejsem si jist tím, který z těchto extrémů je horší – snaha o pochopení pětiset řádkové funkce nebo neustálé skákání mezi haldou kraťoučkých metod, které napsal člověk posedlý dekompozicí.
Osobně se snažím psát funkce dlouhé maximálně tak, abych nemusel ani v jednom směru scrollovat obrazovku. Co vy?
Komentáře
Komentář od Pavel
Datum: 2. 3. 2008, 20:47
Funkce má řešit jednu konkrétní věc. Když se kód příliš natahuje rozepisováním nějaké podrobnosti, vyčlením část do další samostatné funkce. Tím jestli se ceá funkce vleze na obrazovku nebo ne jsem se zatím neřídil, ale něco na tom bude – vidím co funkce dělá na jediný pohled.


Komentář od bady
Datum: 17. 1. 2008, 11:33
„Osobně se snažím psát funkce dlouhé maximálně tak, abych nemusel ani v jednom směru scrollovat obrazovku. Co vy?“
Přesně. Pokud se metoda nevejde na obrazovku, tak je něco špatně. Pokud to teda není stavový automat, nebo něco podobného.