diff --git a/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx b/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx index 6323490ad0..435cfdc531 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx @@ -1,19 +1,31 @@ --- # sidebar_position: 3 -unlisted: true --- # Decomposition cheatsheet Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow. -## Choosing a layer +## Decomposition by necessity {#decomposition-by-necessity} +It is a common mistake to assign separate slides to the part of the code that is not reused anywhere. +This mistake creates several problems at once: +- The codebase becomes more disjointed, making the code harder to navigate. +- A person reading your code, seeing that a slice is not part of the page, may begin to question whether they are breaking part of the display by changing that slice. +- This is a violation of basic principles such as [KISS](https://en.wikipedia.org/wiki/KISS_principle) and [Occam's Razor](https://en.wikipedia.org/wiki/Occam%27s_razor). + +It can be avoided by following a simple rule: **"Parts of code that are not reused anywhere should be where they are used"**. + +For example, we have a component that contains a block of information about a user. This component is only used on the profile page, so it should stay on the profile page. + +If you are sure that your slice will be used in more than one place, you can use the note below. + +## Choosing a layer {#choosing-a-layer} [Download PDF](/files/choosing-a-layer-en.pdf) ![Definitions of all layers and self-check questions](/img/choosing-a-layer-en.jpg) -## Examples +## Examples {#examples} ### Tweet @@ -32,3 +44,4 @@ Use this as a quick reference when you're deciding how to decompose your UI. PDF - [(Thread) About the difference between features and entities](https://t.me/feature_sliced/3776) - [(Thread) About the difference between things and entities (2)](https://t.me/feature_sliced/3248) - [(Thread) About the application of criteria for decomposition](https://t.me/feature_sliced/3833) +- [(Thread) About decomposition by necessity](https://t.me/feature_sliced/1/106360) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx index 73f21947b1..76bd797b4a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx +++ b/i18n/ru/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx @@ -1,12 +1,24 @@ --- # sidebar_position: 3 -unlisted: true --- # Памятка по декомпозиции Используйте её как быстрый справочник, когда вы решаете, как разбить ваш интерфейс по слоям. Ниже также доступна PDF-версия, чтобы вы могли распечатать её и держать под подушкой. +## Декомпозиция по необходимости {#decomposition-as-required} +Частая ошибка - выделять отдельные слайсы под ту часть кода, которая нигде не пере используется. +Данная ошибка создает сразу несколько проблем: +- Кодовая база становится более разрозненной, что усложняет навигацию по коду. +- Человек, который будет читать ваш код, увидев что какой-то слайс не является частью страницы, может начать сомневаться о том, что он сломает часть отображения, изменив этот слайс. +- Это нарушение таких фундаментальных принципов как [KISS](https://ru.wikipedia.org/wiki/KISS_(принцип)) и [Бритва Оккама](https://ru.wikipedia.org/wiki/Бритва_Оккама). + +Этого можно избежать, если следовать одному простому правилу: **"Части кода, которые нигде не пере используются, должны лежать в том месте, где они используются"**. + +Например, у нас есть компонент, в котором содержится блок информации о пользователе. Этот компонент не используется нигде кроме страницы профиля, поэтому его следует оставить именно в странице профиля. + +Если же вы уверены, что ваш слайс используется не только в одном месте, можете воспользоваться памяткой приведённой ниже. + ## Выбор слоя {#choosing-a-layer} [Скачать PDF](/files/choosing-a-layer-ru.pdf) @@ -32,3 +44,4 @@ unlisted: true - [(Тред) Про разницу между фичами и сущностями](https://t.me/feature_sliced/3776) - [(Тред) Про разницу между фичами и сущностями (2)](https://t.me/feature_sliced/3248) - [(Тред) Про применение критериев при декомпозиции](https://t.me/feature_sliced/3833) +- [(Тред) Про декомпозицию при необходимости](https://t.me/feature_sliced/1/106360)