Задать вопрос

Функции по «Чистому коду» — нужно ли это?

Читаю "Чистый код" Роберта Мартина.
Меня смущает то что он призывает создавать функцию на любой чих.
Понятно, что маленькие функции легче читать, чем большие.
Но упаковывать каждую операцию в отдельную функцию?.. Зачем, когда можно написать несколько (понятных) строк кода, не прибегая к созданию новых функций? Так ли это нужно?
У меня не было опыта работы разработчиком, и мне трудно судить, поэтому спрашиваю мнение тех, кто успел набить шишки.
  • Вопрос задан
  • 1030 просмотров
Подписаться 4 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 7
sarapinit
@sarapinit
Точу водой камень
Зависит от ситуации.
А вот людей занимающих фанатичные-категоричные позиции лучше в свою голову не пускать.
Возьмите лучше Макконелла Совершенный Код. Там больше про реальность и меньше холивара.
Ответ написан
Комментировать
sabone
@sabone
beginner developer
Посоветую вам одну "рецензию" на эту книгу, сам читал
Ответ написан
Комментировать
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Это какой-то карго-культ получается. Корткие фнукции понятны - поэтому все функции должны быть короткими. Нет, они, а вернее, весь код должны быть понятными.

Если несколько тривиальных строчек кода понятнее трех однострочных функций, то не надо их переписывать, только потому что введен этот принцип.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Читайте дальше. В книге доходчиво описывается, что все парадигмы и практики в программировании направлены на управление сложностью изменений. Вы не можете знать, как ваш код должен будет измениться завтра, но точно то, что маленькие функции будет легче перекомпоновать. Естественно, всё это имеет смысл, если у вас что-то сложнее hello world'а.
Ответ написан
Zifix
@Zifix
Barbatum
Только ситхи возводят всё в абсолют. Если вы считаете, что какой-то совет даже в распиаренной книге противоречит здравому смыслу, то не обязательно слепо ему следовать. Развивайте критическое мышление.
Ответ написан
@Vitsliputsli
Не совсем так, имеется ввиду создавать функции на все бизнесовых конструкции. К примеру, вам нужно взять хеш от чего-нибудь, вы можете это сделать одной языковой конструкцией, но когда в будущем понадобится поменять механизм хеширования, нужно будет править во многих местах. Поэтому оборачиваете это функцией и все обращения в коде только к ней. И вопрос не только правок, вы лучше контролируете код, зная что вот это, делает только конкретная функция, а не абы как и как кому захотелось.
Ответ написан
xez
@xez
TL Junior Roo
Нужно, но это в идеале. Идеал не всегда достижим.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы