dr.Brain

doctor Brain

мир глазами веб-разработчика

Простой код

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

dr.Brain

время чтения 3 мин.

Photo by Tim Mossholder on Unsplash

Don’t Repeat Yourself (DRY, “не повторяйся”) - один из основных принципов программирования, особенно объектно-ориентированного. Основная идея этого принципа заключается в том, что Вы должны постоянно заботиться о повторном использовании объектов, функций и других сущностей абсолютно везде. И, если Вы обнаружите, что копируете фрагмент кода из одного участка программы в другой, это будет означать, что где-то допущена ошибка.

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

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

Простой код всегда лучше сложного

Доверяйте принципу Keep it Simple Stupid (KISS, “делай это проще”). Весь смысл KISS заключается в обеспечении простоты обслуживания любых процессов. Впервые эта идея возникла у инженеров, проектировавших самые совершенные самолеты своего времени (“SR-71” и “U-2”). Благодаря принципу KISS они обеспечивали возможность ремонта столь сложных машин на любых военных базах и в любых ангарах при наличии подходящих инструментов.

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

Ниже приведены принципы, которые помогают сделать код действительно простым.

Repeat Yourself

По крайней мере в начале. Не беспокойтесь о том, что “будущий объект A и будущая функция B” будут нуждаться в повторном использовании Вашего кода. Вы не умеете предсказывать будущее - зачем пытаться делать это со своим кодом?

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

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

Как только Вы поймете это, Вы сможете корректно провести рефакторинг кода, нуждающегося в повторном использовании. Я уверен, что Вам придется перерабатывать свой код, но лучше это делать, полагаясь на данные тестов и практического использования программного продукта, а не на гипотезы.

Проводите код-ревью

Вы думаете, что Ваш код прост? Лучше спросите товарища!

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

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

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

Читайте простой код

Чтобы знать как выглядит простой код, Вам нужно читать много действительно простого кода. Чтение кода, должно быть простым, как чтение книги.

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

Именно поэтому разработка программного обеспечения не только наука, но и искусство. Мы писатели! Мы рассказываем истории! Ни один хороший писатель не написал бестселлер, просто переписывая одно и то же. Великие писатели читают великие произведения снова и снова и снова. Таким образом, они узнают, что такое хорошее произведение. То же самое верно и в отношении программирования.


Спасибо за внимание.


Перевод статьи Dan Goslen “Why Simple Code is Better Than Reusable Code”

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.