Какой была бы ваша стратегия?

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

Программист, разработчик, кодировщик или ботаник внутри вас думают: «Да, я собираюсь раскачать это! Я собираюсь поразить всех своим супер-умным решением ".

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

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

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

Создайте надежную архитектуру

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

Вы, вероятно, узнаете великолепную архитектуру, которую придумали вы и ваша команда, и вы все были в восторге от нее.

Может быть, вы были в огне и уверены, что собираетесь это раскачать. Несомненно, что-то между этим и есть.

А потом приходит ваш менеджер, и у вас есть шесть месяцев.

Ой, вот и план!

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

Вы и ваша команда начинаете строить изо дня в день.

Многоразовый или нет

Проходят недели, а вы создаете множество компонентов.

Он получает данные из API и показывает все данные.

Вы создаете сервис для преобразования всех моделей данных в формы. Это супер круто!

Таким образом, вы создаете сервис, который можно использовать везде.

Но что происходит при изменении модели данных? Это все еще будет работать или у вас и вашей команды будут большие проблемы, потому что все подключено к этой услуге?

Этот крайний срок все ближе и ближе!

Итак, что лучше: заставить все компоненты использовать эту службу или создать ее специально?

Худой или нет

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

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

После этого у вас есть данные для его улучшения.

Может поток хороший, а вот производительности не хватает. Тогда вы сможете это улучшить!

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

Это лучшее решение или лучше проработать полную архитектуру?

Гибкость, читаемость и масштабируемость

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

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

Кроме того, вы хотите сделать приложение масштабируемым несколькими способами. Но как это сделать, если вы хотите сохранить читаемость?

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

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

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

Конкретный или общий

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

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

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

Это может помочь создать приложение, которое повысит гибкость и масштабируемость. Но какой ценой?

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

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

В тот момент что было лучше написать более конкретно или обобщенно?

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

Заключение

Очень много открытых вопросов!

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

Если вы переходите к бережливому производству и начинаете очень конкретно, когда вы начнете улучшать и делать код более динамичным? Когда можно сделать код менее читабельным?

Может быть, лучше, чтобы некоторые части были конкретными, а некоторые - общими.

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

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

Если что-то не работает, меняйте это, пока не заработает.

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

Удачного кодирования! 🚀

Читай еще от меня ✌️

Я написал еще много историй, которые могут вам понравиться, надеюсь, вам понравится!