Главная

Почему простой код лучше многократно используемого.

Достичь простоты сложного по функционалу кода – это искусство

Поделиться:
 

10+

DRY (don’t repeat yourself) — это одно из основополагающих правил в программировании, особенно в объектно-ориентированном. Суть данного правила состоит в повторном использовании уже созданных объектов, функций и т.п. Если вы замечали за собой, что постоянно копируете какие-то участки кода, то данного правила вы не придерживаетесь
Да, подход DRY действительно хорош, но иногда он ведет к нежелательным последствиям. Например, переменные с неявными или неясными именами могут повлечь за собой необратимые последствия в случае использования повторного кода или ситуации, когда есть три или четыре уровня глубокого наследования и вы не понимаете, как оно работает … или меняете какую-то переменную, чтобы упростить один участок кода, но затем меняете его везде, потому что он используется повторно.
В целом, я считаю, что разработчики, особенно молодые, тратят слишком много времени, пытаясь думать о будущем и о том, как будет развиваться их код. Вместо этого им просто следует писать простой и поддерживаемый код.

Не усложняйте, двигайтесь в сторону простоты!

Доверьтесь правилам Keep it Simple Stupid (KISS). Смысл KISS состоит в чрезвычайной простоте, даже если ради этого нужно немного сэкономить на эффективности работы.
Оригинальная идея KISS принадлежит проектировщикам самолетов. Они хотели, чтобы даже сложные самолеты можно было починить и обслужить на любой военной базе или в ангаре с помощью обычных инструментов.
Подумайте только, как здорово было бы, если бы мы писали код таким образом, чтобы ЛЮБОЙ программист мог прочитать его, понять и чувствовать себя уверенно при внесении изменений.
Ниже приведены несколько способов, с помощью которых вы можете сделать свой код проще.

Повторяйтесь!

По крайней мере, в начале. Не беспокойтесь о том, как functionA или functionB будут повторно использоваться в коде. Вы не можете предсказать будущее — зачем пытаться делать это с помощью своего кода?
Если вы повторяетесь несколько раз (например, имеете похожий компаратор или предикат в нескольких местах), подумайте, станет ли ваш код более простым, если вы попытаетесь сделать его повторно используемым ? Если то, что у вас есть, действительно легко читать, понимать и изменять, оставьте это. Вместо того, чтобы сделать простое сложным только ради повторного использования, лучше оставьте это простым ради здравомыслия.
По мере увеличения вашего кода вы будете лучше понимать проблемные места в коде. Вы хорошо изучите код и будете знать, где есть место абстракциям, а где им места нет.
Как только вы поймете это, вы сможете реорганизовать и консолидировать код. Конечно, вам придется делать дополнительную работу в виде рефакторинга, но я уверен, что ваша реализация абстракции будет лучше после того, как вы досконально изучите код.

Делайте code review

Откуда вы узнаете, что у вас действительно простой код? Спросите товарища по команде!
Товарищи по команде — это именно те люди, которые больше всего нуждаются в понимании вашего кода. Они будут поддерживать и вносить правки в ваш код. А если они не смогут в нем разобраться, то каким образом они должны его поддерживать и изменять?
Не бойтесь попросить своих коллег дать вам отзыв. Не бойтесь показывать им места, где вы повторяетесь. Если нужно, попросите их помочь вам с рефакторингом.
Помните, код не говорит компьютеру, что делать: он говорит другому разработчику, что он приказывает компьютеру делать.

Больше простого кода!

Чтобы понять, что такое действительно простой код и как он выглядит, вам нужно больше читать простого кода. Чтение кода должно быть таким же простым и неутомительным, как чтение книги.
Даже самые сложные алгоритмы можно реализовать простым способом. Смотрите код из учебников по нейронным сетям или код вашего любимого open-source проекта. Скорее всего, то, что вы увидите, будет невероятно простым и легко понимаемым.
Вот поэтому программирование называют искусством. Мы писатели! Мы рассказываем истории. Хорошие писатели становятся таковыми благодаря чтению чужих творений. Они также учатся у других и пишут простыми и понятными словами. Все эти принципы верны и в написании кода.

Если вы все еще не уверены в надежности простого кода, вот статья Кента C. Доддса, который говорит об этом и предлагает новое правило: Избегайте поспешных абстракций (AHA).

Спасибо!

10+