Skip to content

Commit 9a10d2f

Browse files
author
Serhii Shramko
committed
feat: add breakintcomponents.ukrainian.md
1 parent 265ba3a commit 9a10d2f

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

README.ukrainian.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,15 +218,15 @@ Read in a different language: [![CN](./assets/flags/CN.png)**CN**](./README.chin
218218

219219
<br/><br/>
220220

221-
# `1. Project Structure Practices`
221+
# `1. Практики структури проекту`
222222

223-
## ![] 1.1 Structure your solution by components
223+
## ![] 1.1 Структуруйте своє рішення за компонентами
224224

225-
**TL;DR:** The worst large applications pitfall is maintaining a huge code base with hundreds of dependencies - such a monolith slows down developers as they try to incorporate new features. Instead, partition your code into components, each gets its folder or a dedicated codebase, and ensure that each unit is kept small and simple. Visit 'Read More' below to see examples of correct project structure
225+
**TL;DR:** Найстрашнішою підводним каменем великих програм є підтримка величезної кодової бази із сотнями залежностей — такий моноліт уповільнює розробників, коли вони намагаються включити нові функції. Замість цього розділіть свій код на компоненти, кожен отримає свою папку або спеціальну кодову базу, і переконайтеся, що кожен блок залишається невеликим і простим. Відвідайте розділ «Детальніше» нижче, щоб побачити приклади правильної структури проекту
226226

227-
**Otherwise:** When developers who code new features struggle to realize the impact of their change and fear to break other dependent components - deployments become slower and riskier. It's also considered harder to scale-out when all the business units are not separated
227+
**Інакше:** Коли розробники, які кодують нові функції, намагаються усвідомити вплив своїх змін і бояться зламати інші залежні компоненти, розгортання стає повільнішим і ризикованішим. Також вважається, що масштабування складніше, коли всі бізнес-одиниці не розділені
228228

229-
🔗 [**Read More: structure by components**](./sections/projectstructre/breakintcomponents.md)
229+
🔗 [**Детальніше: структура за компонентами**](./sections/projectstructre/breakintcomponents.ukrainian.md)
230230

231231
<br/><br/>
232232

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Структуруйте своє рішення за компонентами
2+
3+
<br/><br/>
4+
5+
### Пояснення одного абзацу
6+
7+
Для додатків середнього розміру і вище моноліти справді погані – мати одне велике програмне забезпечення з багатьма залежностями буде складно розуміти, і це часто призводить до спагетті-коду. Навіть розумні архітектори — ті, хто достатньо вправні, щоб приборкати звіра та «модулювати» його — витрачають величезні розумові зусилля на проектування, і кожна зміна вимагає ретельної оцінки впливу на інші залежні об’єкти. Найкращим рішенням є розробка невеликого програмного забезпечення: розділіть весь стек на самодостатні компоненти, які не надають спільний доступ до файлів іншим, кожен з яких складається з небагатьох файлів (наприклад, API, сервіс, доступ до даних, тест тощо), щоб його було легко зрозуміти. Деякі можуть назвати цю архітектуру «мікросервісів» — важливо розуміти, що мікросервіси — це не специфікація, якої ви повинні дотримуватися, а радше набір принципів. Ви можете прийняти багато принципів у повноцінну архітектуру мікросервісів або прийняти лише деякі. Обидва хороші, якщо ви зберігаєте низьку складність програмного забезпечення. Щонайменше, що вам слід зробити, це створити базові межі між компонентами, призначити папку в корені вашого проекту для кожного бізнес-компонента та зробити його самостійним — іншим компонентам дозволено використовувати його функціональні можливості лише через публічний інтерфейс або API. Це основа для збереження простоти ваших компонентів, уникнення пекла залежностей і прокладання шляху до повномасштабних мікросервісів у майбутньому, коли ваша програма розшириться.
8+
9+
<br/><br/>
10+
11+
### Цитата з блогу: «Масштабування вимагає масштабування всієї програми»
12+
13+
З блогу [MartinFowler.com](https://martinfowler.com/articles/microservices.html)
14+
15+
> Монолітні програми можуть бути успішними, але все більше людей відчувають розчарування в них, особливо тому, що все більше програм розгортається в хмарі. Цикли змін пов’язані разом – зміна, внесена до невеликої частини програми, вимагає перебудови та розгортання всього моноліту. З часом часто стає важко підтримувати хорошу модульну структуру, що ускладнює збереження змін, які мають впливати лише на один модуль у цьому модулі. Масштабування вимагає масштабування всієї програми, а не її частин, які потребують більших ресурсів.
16+
17+
<br/><br/>
18+
19+
### Цитата з блогу: «То що кричить архітектура вашої програми?»
20+
21+
З блогу [uncle-bob](https://8thlight.com/blog/uncle-bob/2011/09/30/Screaming-Architecture.html)
22+
23+
> ...якби ви дивилися на архітектуру бібліотеки, ви б, швидше за все, побачили парадний вхід, зону для реєстраторів, зони для читання, невеликі конференц-зали та галерею за галереєю, здатні вмістити книжкові полиці для всіх книги в бібліотеці. Ця архітектура кричала б: бібліотека.<br/>
24+
25+
Отже, про що кричить архітектура вашої програми? Коли ви дивитесь на структуру каталогів верхнього рівня та вихідні файли в пакеті найвищого рівня; вони кричать: система охорони здоров’я, чи система бухгалтерського обліку, чи система управління запасами? Або вони кричать: Rails, Spring/Hibernate або ASP?.
26+
27+
<br/><br/>
28+
29+
### Добре: Структуруйте своє рішення за допомогою автономних компонентів
30+
31+
![Структурування за компонентами](../../assets/images/structurebycomponents.PNG "Структурування за компонентами")
32+
33+
<br/><br/>
34+
35+
### Погано: Згрупуйте файли за технічною роллю
36+
37+
![Структурування за технічними ролями](../../assets/images/structurebyroles.PNG "Структурування за технічними ролями")

0 commit comments

Comments
 (0)