Compare commits
5 Commits
v0.1.5
...
5553ece16d
| Author | SHA1 | Date | |
|---|---|---|---|
| 5553ece16d | |||
| db34c20981 | |||
| 6ed8fd09cd | |||
| 9eef2cc472 | |||
| dfc56f918a |
19
README_RU.md
19
README_RU.md
@@ -1,16 +1,23 @@
|
|||||||
|
<!-- rules-link -->
|
||||||
|
<br>
|
||||||
|
|
||||||
|
> 🤖 **Единый файл для AI-ассистентов**:
|
||||||
|
> [https://gromlab.ru/gromov/slm-design/raw/tag/v0.1.5/generated/ru/ARCHITECTURE.md](https://gromlab.ru/gromov/slm-design/raw/tag/v0.1.5/generated/ru/ARCHITECTURE.md)
|
||||||
|
<!-- /rules-link -->
|
||||||
|
|
||||||
# SLM Design
|
# SLM Design
|
||||||
Scoped Layered Module Design — модульная архитектура фронтенд-приложений. Код организован по слоям ответственности, а модуль содержит всё, что ему нужно: компоненты, хуки, сторы, типы, стили.
|
Scoped Layered Module Design — модульная архитектура фронтенд-приложений. Код организован по слоям ответственности, а модуль содержит всё, что ему нужно: компоненты, хуки, сторы, типы, стили.
|
||||||
|
|
||||||
<!-- rules-link -->
|
|
||||||
🤖 Для AI-ассистентов доступен единый файл правил:<br>[https://gromlab.ru/gromov/slm-design/raw/tag/v0.1.5/generated/ru/ARCHITECTURE.md](https://gromlab.ru/gromov/slm-design/raw/tag/v0.1.5/generated/ru/ARCHITECTURE.md)
|
|
||||||
<!-- /rules-link -->
|
|
||||||
|
|
||||||
## Преимущества
|
## Преимущества
|
||||||
|
|
||||||
### Вертикальная организация домена
|
### Вертикальная организация домена
|
||||||
|
|
||||||
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
||||||
|
|
||||||
|
### Dependency Injection без фреймворков
|
||||||
|
|
||||||
|
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
||||||
|
|
||||||
### Разделение ответственности без перегрузки слоёв
|
### Разделение ответственности без перегрузки слоёв
|
||||||
|
|
||||||
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
||||||
@@ -31,10 +38,6 @@ Scoped Layered Module Design — модульная архитектура фр
|
|||||||
|
|
||||||
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
||||||
|
|
||||||
### Dependency Injection без фреймворков
|
|
||||||
|
|
||||||
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
|
||||||
|
|
||||||
## Происхождение
|
## Происхождение
|
||||||
|
|
||||||
SLM Design вырос на основе:
|
SLM Design вырос на основе:
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ const version = `v${pkg.version}`;
|
|||||||
const replaceVersion = (content) =>
|
const replaceVersion = (content) =>
|
||||||
content.replace(/raw\/branch\/main/g, `raw/tag/${version}`);
|
content.replace(/raw\/branch\/main/g, `raw/tag/${version}`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Генерируем README из index.md
|
// Генерируем README из index.md
|
||||||
const buildReadme = (lang, outFile) => {
|
const buildReadme = (lang, outFile) => {
|
||||||
const indexPath = `./docs/${lang}/index.md`;
|
const indexPath = `./docs/${lang}/index.md`;
|
||||||
@@ -90,7 +92,12 @@ const buildReadme = (lang, outFile) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const content = replaceVersion(stripFrontmatter(fs.readFileSync(indexPath, "utf8")));
|
let content = replaceVersion(stripFrontmatter(fs.readFileSync(indexPath, "utf8")));
|
||||||
|
// В README <br> нужен вверху блока, а не внизу
|
||||||
|
content = content.replace(
|
||||||
|
/<!-- rules-link -->\n(> .+\n> .+)\n\n<br>\n<!-- \/rules-link -->/,
|
||||||
|
"<!-- rules-link -->\n<br>\n\n$1\n<!-- /rules-link -->"
|
||||||
|
);
|
||||||
fs.writeFileSync(outFile, content, "utf8");
|
fs.writeFileSync(outFile, content, "utf8");
|
||||||
console.log(`${outFile} создан из ${indexPath} (${version})`);
|
console.log(`${outFile} создан из ${indexPath} (${version})`);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,19 +2,26 @@
|
|||||||
title: SLM Design
|
title: SLM Design
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- rules-link -->
|
||||||
|
> 🤖 **Единый файл для AI-ассистентов**:
|
||||||
|
> [https://gromlab.ru/gromov/slm-design/raw/branch/main/generated/ru/ARCHITECTURE.md](https://gromlab.ru/gromov/slm-design/raw/branch/main/generated/ru/ARCHITECTURE.md)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<!-- /rules-link -->
|
||||||
|
|
||||||
# SLM Design
|
# SLM Design
|
||||||
Scoped Layered Module Design — модульная архитектура фронтенд-приложений. Код организован по слоям ответственности, а модуль содержит всё, что ему нужно: компоненты, хуки, сторы, типы, стили.
|
Scoped Layered Module Design — модульная архитектура фронтенд-приложений. Код организован по слоям ответственности, а модуль содержит всё, что ему нужно: компоненты, хуки, сторы, типы, стили.
|
||||||
|
|
||||||
<!-- rules-link -->
|
|
||||||
🤖 Для AI-ассистентов доступен единый файл правил:<br>[https://gromlab.ru/gromov/slm-design/raw/branch/main/generated/ru/ARCHITECTURE.md](https://gromlab.ru/gromov/slm-design/raw/branch/main/generated/ru/ARCHITECTURE.md)
|
|
||||||
<!-- /rules-link -->
|
|
||||||
|
|
||||||
## Преимущества
|
## Преимущества
|
||||||
|
|
||||||
### Вертикальная организация домена
|
### Вертикальная организация домена
|
||||||
|
|
||||||
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
||||||
|
|
||||||
|
### Dependency Injection без фреймворков
|
||||||
|
|
||||||
|
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
||||||
|
|
||||||
### Разделение ответственности без перегрузки слоёв
|
### Разделение ответственности без перегрузки слоёв
|
||||||
|
|
||||||
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
||||||
@@ -35,10 +42,6 @@ Scoped Layered Module Design — модульная архитектура фр
|
|||||||
|
|
||||||
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
||||||
|
|
||||||
### Dependency Injection без фреймворков
|
|
||||||
|
|
||||||
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
|
||||||
|
|
||||||
## Происхождение
|
## Происхождение
|
||||||
|
|
||||||
SLM Design вырос на основе:
|
SLM Design вырос на основе:
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ Scoped Layered Module Design — модульная архитектура фр
|
|||||||
|
|
||||||
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
Бизнес-домен не разбивается по техническим слоям — сценарии, сущности, типы и UI живут в одном модуле. Это сокращает время навигации и упрощает сопровождение: все изменения домена локализованы.
|
||||||
|
|
||||||
|
### Dependency Injection без фреймворков
|
||||||
|
|
||||||
|
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
||||||
|
|
||||||
### Разделение ответственности без перегрузки слоёв
|
### Разделение ответственности без перегрузки слоёв
|
||||||
|
|
||||||
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
Сервисы приложения (`infrastructure/`), UI-кит (`ui/`) и общие ресурсы (`shared/`) — три разных слоя с разной природой. Ни один слой не превращается в свалку разнородного кода.
|
||||||
@@ -28,10 +32,6 @@ Scoped Layered Module Design — модульная архитектура фр
|
|||||||
|
|
||||||
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
При росте проекта слои не теряют структуру — модули группируются по естественным признакам: бизнес-домены по субдоменам, страницы по разделам, UI-компоненты по уровню абстракции (примитивы и композиции).
|
||||||
|
|
||||||
### Dependency Injection без фреймворков
|
|
||||||
|
|
||||||
Cross-domain зависимости в бизнес-слое реализуются через фабрики — модуль декларирует что ему нужно, а точка использования предоставляет зависимости. Домены изолированы без DI-контейнеров, провайдеров и шин событий.
|
|
||||||
|
|
||||||
## Происхождение
|
## Происхождение
|
||||||
|
|
||||||
SLM Design вырос на основе:
|
SLM Design вырос на основе:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"docs": "node ./concat-md.js",
|
"docs": "node ./concat-md.js",
|
||||||
"dev": "vitepress dev .",
|
"dev": "vitepress dev .",
|
||||||
"build": "vitepress build .",
|
"build": "node ./concat-md.js && vitepress build .",
|
||||||
"serve": "vitepress serve ."
|
"serve": "vitepress serve ."
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
Reference in New Issue
Block a user