Найти в Дзене
Войти в IT

Перестань программировать! Лучший программный код - это код, который не написан. Лучшая кнопка - это кнопка, которой нет.

Оглавление

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

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

Конструктивная схема ложки. Изучаем программирование на жизненных примерах!
Конструктивная схема ложки. Изучаем программирование на жизненных примерах!

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

Как мне это видится, тружеников в любой области можно разделить на два больших лагеря. Первая часть (меньшая) - это те, кто познали Дзен, и идут по пути упрощения окружающей реальности. И вторая часть (большая) - те, кто ещё находится на пути познания, и по различным причинам усложняют окружающую их реальность.

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

Искусство упрощать, египетские пирамиды и эпоха возрождения 👨‍🎨

Идея упрощения не является чем-то новаторским, и совсем не относится к философским достижениям современной эпохи. Концепция экономии ресурсов, и поиска простейших решений, пришли к нам из глубокой древности.

Жил да был такой известный скульптор и художник, как Микеланджело. В наследство он оставил нам множество величественных росписей, картин и скульптур. К примеру, "Сотворение Адама" или скульптура "Давид" или Базилика Святого Петра. Так вот, Микеланджело известен ещё и своими философскими мыслями, одна из которых звучит следующим образом. В ответ на вопрос "Как Вы делаете свои скульптуры" он ответил: "Я беру камень и отсекаю всё лишнее".

Сотворение Адама - известная роспись руки Микеланджело.
Сотворение Адама - известная роспись руки Микеланджело.

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

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

Египетские пирамиды - прекрасный пример упрощения сложного капитального строительства.
Египетские пирамиды - прекрасный пример упрощения сложного капитального строительства.

В линейку простейших решений, найденных человечеством, следует отнести конечно же колесо. Колесо - простейшая конструкция для качения, которое позволило сэкономить огромное количество энергии и ресурсов на транспортировке чего либо. Если что, колесо изобрели в Месопотамии примерно 4000 лет до нашей эры (6000 лет назад к настоящему моменту). К слову сказать, Христианство берёт свое начало 2000 лет назад, Римская империя возникла в 27 году до нашей эры, а дольмены (загадочные строения, которые можно найти на юге России и в других частях мира - порядка 3000 лет до н.э).

Колесо - отличный пример концепции упрощения.
Колесо - отличный пример концепции упрощения.

Программирование как прикладная наука упрощения жизни 🌏

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

К созданию любой программы следует подходить с изрядным настроем на упрощение. Сюда же хорошо ложится концепция MVP - минимально валидных продуктов. Моя практика показывает, что хорошие продукты получаются в тех случаях, когда они быстро делаются - во первых на изначальном энтузиазме коллектива, а во-вторых без обременений бесконечными допилами и переделками, корректировками дизайна и согласованиями. Ну и конечно, про концепцию быстрых MVP пишут в таких умных книгах как "Lean Startup" или "От нуля к единице".

Типичная ситуация при создании стартапов. Проверено лично. Не усложняй то, что ты делаешь.
Типичная ситуация при создании стартапов. Проверено лично. Не усложняй то, что ты делаешь.

Из личного опыта опять же, большинство выживших продуктов к которым я имел отношение, было сделано не более чем за месяц. А вот продукты которые создавались 4, 5 или более месяцев - либо долго буксовали, либо оказывались вовсе неуспешны. Почему так? Мне кажется здесь тоже есть две причины. Во-первых, упорно запиливая продукт на протяжении многих месяцев или лет, программист сильно отрывается от реальности. Обратная связь от живых пользователей очень важна, и чем быстрее её получаешь - тем более "честным" по отношению к покупателю является продукт. И второе - если продукт невозможно сделать за месяц или два, то скорее всего он очень сложен. А сложность - это то что никому не нравится. // Может поэтому все так не любят читать инструкции?

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

Загадочные любители всё усложнять 🧐

Ну, не буду здесь сильно философствовать. Думаю, каждый узнает в картинке ниже знакомые ему лица. Чем руководствуются люди, выбирающие путь усложнения? Откуда берётся эта фантастическая любовь к страданиям? Ответы на эти вопросы ещё предстоит найти.

Типичная ситуация в разработке любых программных продуктов.
Типичная ситуация в разработке любых программных продуктов.

Приведет ли упрощение к деградации? 🤤

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

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

Современное общество, поколение за поколением, всё глубже подсаживается на современные технологии, и делегирует решение прикладных задач бездушным механизмам. Людям больше не требуются бумажные энциклопедии - есть Wikipedia. Не нужны проводные телефоны, не нужны бумажные письма - потому что есть беспроводная связь. А в скором времени, ненужными окажутся и сами люди - потому что вместо таксиста есть автопилот, вместо складского служащего - робот, а вместо юриста - ChatGPT.

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

Мудрец, познавший вселенскую мудрость упрощения.
Мудрец, познавший вселенскую мудрость упрощения.

🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥

-8

🚀 P.S. Для тех, кто хочет не просто читать о программировании, а начать свой путь джедая прямо сейчас, приглашаю на Boosty! Там эксклюзивный обучающий материал по программированию для любого уровня подготовки. А ещё там можно посмотреть, как автор выглядит в жизни. Жми сюда и полетели!🚀

P.S.2 Ещё у меня есть Telegram-канал. Там посты чуть проще и веселее. Ссылка