Po przerwie zawodowego pisania uleciała mi ta umiejętność, w konsekwencji czego moje funkcje są długie i czyta je się koszmarnie
No to połowa sukcesu, jeśli zdajesz sobie z tego sprawę. Po prostu pisz krótsze funkcje i będziesz mieć 90% sukcesu. W czym problem?
Jaka funkcja jest za długa to już kwestia subiektywna. Ja staram się stosować do następujących zasad, które mogą Ci się przydać:
- funkcja powinna robić jedną rzecz i mieć dobrze określoną odpowiedzialność
- aby sprawdzić, czy rzeczywiście robi jedną rzecz - piszę jej dokumentację - jeśli da się opisać jednym krótkim zdaniem, to zapewne funkcja jest ok
- staram się nie przekraczać 10 linii kodu na funkcję (ale to jest miękki limit, nie płaczę jak wyjdzie 12)
- im więcej zagnieżdżeń, tym funkcja powinna być krótsza; np. jeśli funkcja ma 2 zagnieżdżone pętle, to już nie ma w niej miejsca na inne rzeczy; ale jeśli jest płaska, to zwykle nie przeszkadza jeśli jest długa
- nie mieszam różnych poziomów abstrakcji w jednej funkcji - np.
jeśli funkcja dodaje użytkowników do bazy, to nie zajmuje się wyszukiwaniem stringów w pętli
- staram się ograniczać liczbę parametrów, może nie do jednego jak chce wujek Bob, ale jak mam więcej niż 3 to już się źle na to patrzy i musi być naprawdę dobre uzasadnienie