MISC · 06 октября 2016, 17:32 · Отдел информации dev.by
Принципы «ленивой разработки» от Питера Вайнера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Источник: dev.by
Новые комментарии

Обсуждение

Missing

Каждый из этих приемов годится и не годится в зависимости от контекста. Автор опозорился.

701ccbac6a142099216f87d5780dd31a?1401052484
+10

Бьюсь об заклад был 7й пункт, просто автор поленился его написать :D

6178553c3088be31671f8146ba91fd4b?1401052672
+2

>> кеширование

Существует только две действительно сложные вещи: устройство вселенной и инвалидация кэша. Впрочем, насчет вселенной я не уверен. (с) откуда-то из глубин сети

Missing-male
+4

Будьте умными и ленивыми. Вместо чтения этой статьи проведите время в комнате для отдыха.

Missing

Или вместо того, чтобы сделать что-нибудь для проекта или позвонить семье, напишите статью или комментарий на dev.by.

Missing
+5

> Питера Вайнера

Я было думал это Павел Вейник переименовался


Авторизуйтесь, чтобы оставлять комментарии

Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
datahata — хостинг в Беларуси