Реклама в Telegram-каналах DzikPic и dev.by теперь дешевле. Узнать подробности 👨🏻‍💻
Support us

Принципы «ленивой разработки» от Питера Вайнера

Оставить комментарий
Принципы «ленивой разработки» от Питера Вайнера

В программировании нет прямой зависимости между упорной многочасовой работой и довольным пользователем — здесь всё работает по-другому. По крайней мере, так считают приверженцы «ленивой разработки».

Читать далее

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

С мыслью о таком подходе к труду редактор InfoWorld и автор 16 технических книг Питер Вайнер описал принципы ленивой разработки. Приводим первую порцию этих принципов.

1. Кэширование

Зачем повторяться? Любой код, который повторно решает одну и ту же проблему, можно ускорить, сохраняя копии решений. Эти решения не обязательно должны быть финальными — иногда нужно записывать промежуточные результаты, из которых «собирается» нужный ответ.

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

2. Ленивое выполнение

Кто-то умный давно заметил, что программы работают быстрее, если они выполняют только те расчёты, которые нужны в данный момент. Это называется «вызов по необходимости» или «ленивое выполнение» и уже является частью некоторых языков программирования, таких как Haskell, F# и Python.

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

3. Фреймворки: необходимое упрощение

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

Скачать готовый фреймворк и немного поработать над ним, чтобы результат отвечал задаче — и вот, проект выполнен, клиент доволен, время сэкономлено.

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

4. Автоматизация: лучше не бывает

В современных языках программирования много внимания уделяется автоматизации, и набор средств для неё хорош как никогда. Управление памятью, проверка типов, параллелизация процессов внедряются в фоновом режиме, заменяя «грязную» работу, которую раньше приходилось делать самостоятельно.

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

5. Девопс: лень во плоти

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

Да, большинство популярных команд в Unix состоят из двух символов, но это неправильный взгляд на проблему. Задача этой работы в том, чтобы всё работало быстро и, что особенно важно, беспрерывно. За обеспечением стабильности прячется реальная работа. Команда devops может выглядеть ленивой и не прикасаться к клавишам, ведь всё запускается по расписанию. Но именно в таком случае всё работает лучше.

В ПО становится меньше ошибок, когда из процесса «изымаются» люди.

6. Повторное использование кода

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

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

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

 

Новый рекламный формат в наших телеграм-каналах.

Купить 500 символов за $150

Читайте также
8 актуальных и интересных курсов по Rust (июнь 2023) + бонус от GitHub
8 актуальных и интересных курсов по Rust (июнь 2023) + бонус от GitHub
8 актуальных и интересных курсов по Rust (июнь 2023) + бонус от GitHub
Рассмотрели преимущества и особенности языка Rust, а также сделали подборку курсов по нему, которые будут интересны как новичкам, так и опытным программистам.
7 комментариев
Разработчик создал дверной звонок, который реагирует на мяуканье кота
Разработчик создал дверной звонок, который реагирует на мяуканье кота
Разработчик создал дверной звонок, который реагирует на мяуканье кота
Акция до конца дня: популярные курсы по разработке от Udemy с большой скидкой
Акция до конца дня: популярные курсы по разработке от Udemy с большой скидкой
Акция до конца дня: популярные курсы по разработке от Udemy с большой скидкой
В России восстанавливается спрос на мобильных разработчиков
В России восстанавливается спрос на мобильных разработчиков
В России восстанавливается спрос на мобильных разработчиков

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.