Porto - архітектурний патерн
Porto - це сучасний архітектурний патерн програмного забезпечення, який масштабується разом з вашим бізнесом!
Переклад
- 🇺🇦 Репозиторій:
Вступ
Porto - це сучасний архітектурний патерн програмного забезпечення, що складається з настанов, принципів і шаблонів, які допомагають розробникам організовувати свій код у спосіб, який легко підтримувати й використовувати повторно.
Porto є чудовим варіантом для середніх та великих вебпроєктів, оскільки вони, як правило, мають тенденцію до зростання складності з часом.
За допомогою Porto розробники можуть створювати супермасштабовані монолітні системи, які можна легко розділити на декілька мікросервісів за потреби. Уможливлюючи багаторазове використання бізнес-логіки (Application Features) в різних проєктах.
Porto успадковує концепції від DDD (Domain Driven Design), Modular, Micro Kernel, MVC (Model View Controller), Layered і ADR (Action Domain Responder) архітектур.
І він дотримується переліку зручних принципів дизайну, таких як SOLID, OOP, LIFT, DRY, CoC, GRASP, Generalization, High Cohesion and Low Coupling.
Вона починалася як експериментальна архітектура, спрямована на розв'язання загальних проблем, з якими стикаються веброзробники при створенні великих проєктів.
Відгуки та внески вітаються.
"Простота є передумовою надійності". - Едсгер Дейкстра
Починаємо
Огляд шарів
За своєю суттю Porto складається з 2 шарів-"папок": "Контейнери" та "Корабель".
- Шар "Контейнери" містить весь код бізнес-логіки вашого додатка.
- Шар "Корабель" містить код інфраструктури (ваш спільний код між усіма контейнерами).
Ці шари можуть бути створені будь-де всередині будь-якого фреймворку на ваш вибір.
(Приклад: у Laravel або Rails вони можуть бути створені у каталозі app/
або у новому каталозі src/
у кореневому каталозі проєкту.)
Перш ніж зануритися глибше, розберімось з різними рівнями коду, які ми матимемо у вашій кодовій базі:
Рівні коду
- Низькорівневий код: код фреймворку (реалізує базові операції, такі як читання файлів з диска або взаємодія з базою даних). Зазвичай знаходиться в каталозі Vendor.
- Код середнього рівня: загальний код програми (реалізує функціональність, яка обслуговує код високого рівня.
І покладається на низькорівневий код для функціонування). Має бути в шарі
Корабель
. - Високорівневий код: код бізнес-логіки (інкапсулює складну логіку і покладається на код середнього рівня
для функціонування). Має бути в шарі
Контейнери
.
Діаграма шарів
Шар Containers (вантажні контейнери) >> покладається >>
на шар Ship (вантажний корабель) >> покладається >>
на Framework (море).