Как стать автором
Обновить

Комментарии 3

Вот честно говоря, прочитал статью и так и не понял о чем идет речь.
Сначала:

Я к тому, что каждый понимает под чистым кодом что-то своё: для кого-то достаточно правильного именования и грамотной декомпозиции, а кто-то не видит чистого кода без полиморфизма и высокого уровня абстракции.

И получаеться что у нас нет предмета обсуждения, так как каждый под эти понимает свое. Но далее встречаеться:

Вопрос состоит в том, стоит ли выполнять абсолютно все правила в любом контексте.

Какие правила, если выше описано что каждый понимает свое?

Собственно, вопрос мой в том, насколько уместно соблюдать все сложные архитектурные правила чистого кода в каком-нибудь TODO приложении..

Мысль, которую я хочу донести, состоит в том, что не все задачи требуют соблюдения всех правил чистого кода.

Вроде бы говорили про философию а перешли к каким то уже конкретным правилам.

Всегда ли стоит добиваться максимальной абстракции? Обязательно ли функции должны быть короткими и выполнять одну задачу? Мой ответ: нет, не всегда. Однако замечу, что и выдавливать максимальную производительность из кода необходимо не всегда.

И вот здесь начинаешь подозревать что уже произошла подмена понятий. Вместо абстрактного философского понятия "чистый код", уже имеется в виду конкретно заветы Мартина, SOLID, паттерны и т.д.

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

Так "шашечки" или "ехать"?

Покрыть весь код тестами — вполне себе вызов, потому что для некоторых участков кода это может быть невозможно, например, модули, использующие псевдослучайные числа. Мы просто не сможем предугадать результат их выполнения.

С чего это?

Просто прячете генерацию псевдослучайных чисел за простеньким адаптером, который мокаете в тестах, и - ву а ля! - покрываете тестами модули, использующие псевдослучайные числа.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий