Как шаблоны добавляют ценность и почему мы их выбираем

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

Это смелое заявление, но мы живем в соответствии с ним.

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

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

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

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

1 - Уменьшение времени разработки

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

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

2 - Постоянно обновляемые разработчики

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

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

3 - Общие источники знаний

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

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

4 - Кодирование идентичности

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

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

Слабые доводы против шаблонов

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

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

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

Стоит отметить, что шаблоны полезны и ценны, когда компания стремится создать определенный тип проекта. В этих случаях часто используется определенный технологический стек. Например, в Loop мы являемся экспертами в создании монолитных архитектур, состоящих из Rails API и интерфейса React. Несмотря на то, что каждый проект разрабатывается в зависимости от конкретных требований к продукту, эту комбинацию мы рекомендуем чаще всего. Вот почему для нас имеет смысл иметь готовые шаблоны этих технологий.

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

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

Вы можете найти их здесь: