Skip to content

Commit 80bf7d5

Browse files
authored
fix: typography of public-api article (#871)
1 parent 48aefba commit 80bf7d5

File tree

1 file changed

+4
-4
lines changed
  • i18n/ru/docusaurus-plugin-content-docs/current/reference

1 file changed

+4
-4
lines changed

i18n/ru/docusaurus-plugin-content-docs/current/reference/public-api.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ export * from "./ui/Comment"; // 👎 не пытайтесь повторит
3131
export * from "./model/comments"; // 💩 это плохая практика
3232
```
3333

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

3636
## Публичный API для кросс-импортов {#public-api-for-cross-imports}
3737

38-
Кросс-импорты — это ситуация, когда один слайс импортирует из другого слайса на том же слое. Обычно это запрещено [правилом импорта для слоёв][import-rule-on-layers], но часто есть реальные причины, чтоб сделать кросс-импорт. Например, в реальном мире бизнес-сущности часто ссылаются друг на друга, и лучше отразить эти отношения в коде, а не пытаться избавиться от них.
38+
Кросс-импорты — это ситуация, когда один слайс импортирует из другого слайса на том же слое. Обычно это запрещено [правилом импорта для слоёв][import-rule-on-layers], но часто есть реальные причины, чтобы сделать кросс-импорт. Например, в реальном мире бизнес-сущности часто ссылаются друг на друга, и лучше отразить эти отношения в коде, а не пытаться избавиться от них.
3939

4040
Для этой цели существует особый вид публичного API, также известный как `@x`-нотация. Если у вас есть сущности A и B, и сущность B должна импортировать из сущности A, то сущность A может объявить отдельный публичный API только для сущности B.
4141

@@ -141,11 +141,11 @@ import { TextField } from '@/shared/ui/text-field';
141141

142142
Есть несколько вещей, которые вы можете сделать, чтобы справиться с этой проблемой:
143143

144-
1. То же самое, что и в разделе "Большие бандлы и неработающий tree-shaking в Shared" — создайте отдельные индексные файлы для каждого компонента/библиотеки в shared/ui и shared/lib вместо одного большого
144+
1. То же самое, что и в разделе "Большие бандлы и неработающий tree-shaking в Shared" — создайте отдельные индексные файлы для каждого компонента/библиотеки в `shared/ui` и `shared/lib` вместо одного большого
145145
2. Избегайте наличия индексных файлов в сегментах на слоях, которые имеют слайсы.
146146
Например, если у вас есть индекс для фичи "comments", `📄 features/comments/index.js`, нет смысла иметь еще один индекс для `ui` сегмента этой фичи, `📄 features/comments/ui/index.js`.
147147
3. Если у вас очень большой проект, есть большая вероятность, что ваше приложение можно разделить на несколько больших кусков.
148-
Например, у Google Docs очень разные обязанности для редактора документов и для файлового браузера. Вы можете создать монорепозиторий, где каждый пакет является отдельным корнем FSD со своим набором слоев. Некоторые пакеты могут иметь только слои Shared и Entities, другие могут иметь только Pages и App, а некоторые могут включать свой небольшой Shared, но при этом использовать большой Shared из другого пакета.
148+
Например, в Google Docs задачи, которые решают редактор документов и файловый браузер, сильно отличаются. Вы можете создать монорепозиторий, где каждый пакет является отдельным корнем FSD со своим набором слоев. Некоторые пакеты могут иметь только слои Shared и Entities, другие могут иметь только Pages и App, а некоторые могут включать свой небольшой Shared, но при этом использовать большой Shared из другого пакета.
149149

150150
<!-- TODO: add a link to a page that explains this in more detail (when one will exist) -->
151151

0 commit comments

Comments
 (0)