Сообщение администратору
Имя:
Email:
Ziņojums:
Вход на сайт
Lietotājs:
Parole:

Ziedojums  •  Dienasgrāmata  •  Par projektu  •  Reklāma  •  Ievietojiet reklāmu  •  Sūtīt saturu  •  Laika skala  •  Translate  •  Рекомендованное  •  Написать администратору Viesi: 25    Dalibnieki: 0 Авторизация Sign In   Sign Up 
Scientific Poke Method
RULVEN
Meklēšana  
Blackball iMag | интернет-журнал
RSS-лента
Share link:
Katalogs


Sākums » Software development » Остановись, мгновенье. Медленное программирование — тренд для уставших разработчиков

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


Остановись, мгновенье. Медленное программирование — тренд для уставших разработчиков
Added: Пн 01.05.2023 • Sergeant
Author: Александр Клименков
Source: source
Skatījumi: 842
Komentāri: 0


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

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

Медленная жизнь

Медленное программирование — это часть большого «медленного движения» (Slow Movement). Это культурный тренд, к которому осознанно обращаются всё больше людей. Медленное движение имеет множество течений и направлений, которые объединены одной общей идеей: люди устали от сумасшедшего ритма жизни, хотят замедлиться и снова получать удовольствие от работы, образования, чтения, питания и других повседневных занятий.

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

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

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

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

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

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

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

Медленное программирование

Концепция медленного программирования подразумевает:

  • продуманное и вдумчивое проектирование;
  • большое внимание к деталям;
  • тщательное тестирование;
  • стремление к совершенству.

Попробуем разобраться, что это означает на практике.

1. Тщательное проектирование

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

  • как следует проанализировать пользовательский опыт;
  • провести поиск оптимальных решений;
  • обдумать и проверить различные варианты реализации.

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

2. Программирование без компьютера

Помните мемы о «ленивых» программистах, которые вместо того, чтобы усердно стучать по клавиатуре, занимаются неизвестно чем? С точки зрения эффективного менеджера стороннего наблюдателя они просто плюют в потолок и зря получают зарплату.

Сложно бывает объяснить, что:

  • почти любой фрагмент кода требует обдумывания и нескольких внутренних итераций его улучшения;
  • программист не должен начинать разработку сразу после получения ТЗ;
  • обдумывание алгоритмов вдали от клавиатуры — важная часть его работы.

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

3. Стремление к совершенству

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

  • тщательное проектирование дизайна и оформления приложения;
  • кропотливый поиск наиболее эффективных решений;
  • проведения НИР — поиск наилучшего решения путём экспериментов.

Один из способов улучшения качества кода — это парное программирование. Для менеджеров это кошмар: двойное увеличение ресурсов на решение поставленной задачи.

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

4. Качество и отказ от долгов

Ревизия и рефакторинг старого кода не менее важны, чем разработка нового. Естественно, рефакторинг нужно делать осторожно — медленно и вдумчиво. И обязательно сопровождать тестированием — регрессионным и автоматическим.

Термин «технический долг» лучше всего вообще исключить из лексикона:

  • всё, что требуется для проекта, делается сразу, а не откладывается на потом;
  • никаких временных компромиссов, «костылей» и «велосипедов» в угоду срокам.

5. Получение удовольствия от процесса

Этот пункт — самый «эгоистичный», но, пожалуй, самый важный. Медленное программирование — это способ снова превратить разработку кода в искусство. Это путь к тому, чтобы вернуть программисту:

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

Быстрее — не значит лучше

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

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

Снимаем розовые очки

Теперь попробуем рассмотреть другую сторону проблемы. Перестанем мечтать об идеальном мире с бирюзовыми единорогами бездонными бочками трудозатрат. В современной корпоративной реальности медленное программирование — это утопия:

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

Существует также опасность уйти в штопор перфекционизма — любой проект можно совершенствовать до бесконечности. Здесь важно уметь вовремя остановиться.

Вдобавок на горизонте замаячило нечто — как нас стращают в СМИ, ChatGPT скоро сможет заменить разработчиков. Достаточно будет лишь правильно поставить задание, и решение — раз и готово! Безо всяких сроков и затрат — полная противоположность медленному программированию. Дело за малым: знать бы только, как это задание корректно сформулировать.

Однако есть всё же оазисы, где медленное программирование не будет белой вороной:

  • пет-проекты, где медленный программист — сам себе хозяин;
  • НИР в рамках больших коммерческих проектов — выделенная песочница для неторопливых поисков истины.

• • •

Сергей Павлович Королёв однажды сказал: «Можно сделать быстро, но плохо, а можно — медленно, но хорошо. Через некоторое время все забудут, что было быстро, но будут помнить, что было плохо. И наоборот». Концепция медленного программирования — это одна из попыток неравнодушных профессионалов вернуть качество, надёжность и красоту в наш мир недолговечных пластмассовых решений.



Мне нравится 0   Мне не нравится 0



Comments

Чтобы добавить видео с YouTube, нужно написать [@youtube=xxxxx] , где xxxxx – ID видео.


Комментарии: 0
Нет ни одного комментария.

Новое
Почему W-образные моторы уходят в прошлое, если они были лучше V-образных вчера, 09:02
Почему W-образные моторы уходят в прошлое, если они были лучше V-образных
20 простых и очень вкусных салатов с кальмарами 3 дня назад, 09:08
20 простых и очень вкусных салатов с кальмарами
Вирусы на Android: подробное руководство по обеспечению безопасности Пн 25.11.2024
Вирусы на Android: подробное руководство по обеспечению безопасности
15 интересных салатов со свежими огурцами Сб 23.11.2024
15 интересных салатов со свежими огурцами
Зал короля Артура оказался неолитическим загоном для скота Пн 18.11.2024
Зал короля Артура оказался неолитическим загоном для скота
15 действительно вкусных салатов с крабовыми палочками Сб 16.11.2024
15 действительно вкусных салатов с крабовыми палочками
Когда устал от алгоритмов: Ревью кода на собеседовании Вт 12.11.2024
Когда устал от алгоритмов: Ревью кода на собеседовании
Пн 11.11.2024
10 не самых очевидных причин, чтобы уволиться
Искусственный мозг против квантового компьютера: кто возьмет верх? Вс 10.11.2024
Искусственный мозг против квантового компьютера: кто возьмет верх?
10 лучших салатов с кукурузой Сб 09.11.2024
10 лучших салатов с кукурузой
Grāmatas
Blazor in Action Вт 04.06.2024
Blazor in Action
Год: 2022
Security for Containers and Kubernetes Вт 28.05.2024
Security for Containers and Kubernetes
Год: 2023
Designing Data-Intensive Applications Вт 14.05.2024
Designing Data-Intensive Applications
Год: 2017
Fundamentals of Software Architecture Вт 07.05.2024
Fundamentals of Software Architecture
Год: 2020
Разработано на основе BlackNight CMS
Release v.2024-11-16
© 2000–2024 Blackball
Design & programming:
AboutReklāma
Visitors
Web-site performed by Sergey Drozdov
BlackballReklāmaStatistikaПоддержка
MusicPlaylistsCinemaVideoGamesAudioDownloadsMagazinePicturesHumorForumWebsite journalSend contentРекомендованное