+1
Planned

Достоинства есть. А недостатки?

Илья Ненашев 4 years ago updated 4 years ago 2

На страницах типа https://refactoring.guru/ru/extract-method есть перечни достоинств. Но неужели у предлагаемых решений нет недостатков? Как правило, практически любое решение - компромисс. И у любого решения есть риски перегнуть палку, и надо б о них тоже писать, предостерегать, показывать границы. Иначе до маразма доходит!

В частности, то же извлечение методов.

Риски:
Во-первых, можно увлечься и нарезать в лапшу то, что без нарезки было бы вполне читаемым и понятным. 
Во-вторых, методы могут оказаться взаимозависимы, и если при линейном изложении это будет очевидно, при нарезке - нет. Все особенности в именах методов не отразишь... 
В третьих, ...


Там непосредственно рядом есть https://refactoring.guru/ru/inline-method, но было б полезно сослаться на него из извлечения методов более явно: сказать что не злоупотребляйте, имейте ввиду и пользу встречного движения, вот почитайте критерии там.

Я вижу, что упоминания недостатков тоже встречаются, например в https://refactoring.guru/ru/design-patterns/state. Но как-то маловато, ИМХО, и маловато подробностей о том, как их избегать.

DIR2.0
+1
Planned

Спасибо за хорошее замечание. Учту это в работе над второй редакцией курса.

Читая дальше, я и в рефакторингах увидел упоминания недостатков, но всё ж про них маловато. А с перегибами на местах бороться очень тяжело, когда в умных книгах лишь про плюсы.