Перейти к содержимому

Что такое Evolution Design?

Evolution Design (Дальше ED) - это набор архитектурных Best practices, хорошо себя показавших в разработке современных Front-end приложений. Их использование позволяет получить поддерживаемую кодовую базу, не имея глубоких знаний о архитектуре программного обеспечения.

Какие проблемы решает Evolution Design?


  1. Достаточно качественная архитектура:

    ED предоставляет набор паттернов, которые для среднего разработчика в среднем проекте позволяют увеличить:

    • Понятность кода
    • Надёжность
    • Переиспользуемость

    Сам факт внедрения паттернов ED увеличивает шансы вашего проекта не загнуться от неконтролируемого роста сложности.

  2. Стандартизация:

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

  3. Увеличение экспертизы:

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

    ED - это не конечный этап, это отправная точка для создания лучшей кастомной архитектуры.

Ценности Evolution Design


В процессе работы над Evolution Design мы придерживаемся следующих принципов:

Прагматизм

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

В Evolution Design каждый паттерн имеет обоснование эффективности, границы применимости и связи с другими паттернами.

Таким образом, вы можете подобрать набор паттернов, необходимых именно вашему проекту. Не больше, не меньше!

Постепенность

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

Evolution Design разработан так, чтобы архитектура вашего проекта развивалась вместе с потребностями вашего проекта!

Подходит как начинающим, так и продвинутым

У каждого разработчика свой уровень понимания архитектуры ПО. Мы это понимаем, поэтому ED можно использовать в двух вариантах:

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

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

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

Не противоречивая система

Нам надоели противоречия в теме разработки ПО. Главная цель ED - совместить все принципы разработки в единую непротиворечивую систему. В ней будут логично уживаться DRY, YAGNI, OOP, FP, SOLID, GRASP, Чистая архитектура, DDD.

Но как можно совместить несовместимое? Мы для этого будем использовать главный принцип архитектуры “Everything is a Trade-off”.

Куда дальше?


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

В первую очередь следует ознакомиться с разделом “Руководство”, после которого вы сможете сразу получать преимущества от использования ED.