Поддержка  •  Дневник  •  Без рекламы  •  О сайте  •  Реклама  •  Поставить баннер  •  Fleshlight  •  Прислать  •  Хроника  •  Translate Гости: 3    Участники: 0 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
Blackball iMag | интернет-журнал
Каталог


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

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


Остановись, мгновенье. Медленное программирование — тренд для уставших разработчиков
Добавлено: Пн 01.05.2023 • Sergeant
Автор: Александр Клименков
Источник: источник
Просмотров: 804
Комментарии: 0


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• • •

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



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



Комментарии

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


Комментарии: 0
Нет ни одного комментария.
RSS-лента
Поделиться ссылкой:
Обзор ASUS GeForce RTX 4090 ROG Strix — Флагман с большой буквы Обзор ASUS GeForce RTX 4090 ROG Strix — Флагман с большой буквы
Грог: рецепт в домашних условиях, правила приготовления Грог: рецепт в домашних условиях, правила приготовления
Удаление грудей
Коктейль виски со Швепсом – оригинальные и согревающие рецепты Коктейль виски со Швепсом – оригинальные и согревающие рецепты

Новое
вчера, 09:06
6 самых мощных немецких автомобилей с двигателем V8
Минусы профессии программиста, что не нравится в работе 3 дня назад, 09:01
Минусы профессии программиста, что не нравится в работе
15 потрясающих соусов для свиных рёбрышек Сб 20.04.2024
15 потрясающих соусов для свиных рёбрышек
5 ошибок при разработке высоконагруженных сервисов Ср 17.04.2024
5 ошибок при разработке высоконагруженных сервисов
Soft skills: 18 самых важных навыков, которыми должен владеть каждый работник Ср 17.04.2024
Soft skills: 18 самых важных навыков, которыми должен владеть каждый работник
300+ вопросов по JavaScript на собеседовании Пн 15.04.2024
300+ вопросов по JavaScript на собеседовании
30 вопросов на собеседовании фронтенд разработчика Пн 15.04.2024
30 вопросов на собеседовании фронтенд разработчика
Как работает спидометр в машине: вы всегда хотели это знать, но никто не мог объяснить на пальцах Вс 14.04.2024
Как работает спидометр в машине: вы всегда хотели это знать, но никто не мог объяснить на пальцах
15 соусов для креветок, которые ты захочешь приготовить Сб 13.04.2024
15 соусов для креветок, которые ты захочешь приготовить
10 простых рецептов рыбы в кляре Пт 12.04.2024
10 простых рецептов рыбы в кляре
Книги
Refactoring with C# 2 дня назад, 10:07
Refactoring with C#
Год: 2023
Building IoT Visualizations using Grafana Вт 09.04.2024
Building IoT Visualizations using Grafana
Год: 2022
Getting Started with Grafana Вт 02.04.2024
Getting Started with Grafana
Год: 2022
Prometheus: Up & Running Вт 26.03.2024
Prometheus: Up & Running
Год: 2018

Разработано на основе BlackNight CMS
Release v.2024-04-19
© 2000–2024 Blackball
Дизайн & программирование:
О сайтеРеклама
Visitors
Web-site performed by Sergey Drozdov
BlackballРекламаСтатистикаПоддержка | МузыкаПлейлистыКиноВидеоИгрыАудиоПрограммыСтатьиКартинкиЮморФорумДневник сайтаПрислать контент