-
Notifications
You must be signed in to change notification settings - Fork 213
docs(abstractions): add feature description #78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| Feature — изменение в продукте, которое несет ценность пользователю. | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Вынес бы в |
||
| Рассмотрим некоторые GitHub features: | ||
|
|
||
| - issues | ||
| - actions | ||
| - marketplace | ||
|
Comment on lines
+3
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Я бы вынес такое отдельным пунктом в И тогда можно не только про GitHub сказать, но и про YouTube, и да - тот же маркетплейс В принципе, если этот раздел будет до основного текста - вроде нормально по читаемости и смыслу будет There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Тип как "Примеры из жизни" |
||
|
|
||
| Features могут перекликаться с другими features. Например, marketplace позволяет найти готовый action, а не писать свой. | ||
|
|
||
| Feature может содержать другие features: при создании issue можно проставить labels, assignees, milestone. | ||
|
|
||
| Таким образом приходим к следующей структуре: | ||
|
|
||
| ``` | ||
| . | ||
| ├── issues/ | ||
| │ ├── assignees | ||
| │ ├── labels | ||
| │ └── milestone | ||
| ├── actions/ | ||
| ├── marketplace/ | ||
| │ ├── list | ||
| │ ├── search | ||
| │ └── filter | ||
| ``` | ||
|
|
||
|
Comment on lines
+9
to
+27
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. это же все как раз не фичи, а сущности над которыми и строятся фичи. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Вай нот? Возможность создать issue -- фича. Возможность повесить label на issue -- тоже фича. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. создать issue это фича, но issue сами по себе это не фича. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Готовые issue — результат создания. Возможность создания — фича. Тот же label несёт пользователю ценность, например, можно указать тип issue. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Вот именно что не сам label несет ценность, а именно возможность повесть лейбл на что-то несет ценность. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Лейбл в контексте issues. Будь ещё какой-то лейбл, то, да, его частя болталась бы в entities. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Тут больше с @ilyaagarkov соглашусь
Я с entities плотно не работал, тож обычно похожим образом на фичи разбивал (labels-list, issue-details и т.д.) Но похоже на правду - что при разбиении как предлагает @ilyaagarkov и другие ребята (entities + features) - архитектура будет более масштабируемой, читаемой и при этом - сведутся к минимумы необходимости кросс-импортов (а это главный бич сейчас у похожих подходов) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Ну если у тебя лейбл только для ишью (хотя обычно тот же лейбл и на пуллреквесты вешается), то можно его Чтобы более плоская структура получалась, и не нужно было вкладывать Хотя с другой стороны, это уже похоже на проблему There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @binjospookie @ilyaagarkov можем обсудить попозже в войсе |
||
| Как выглядит feature в реализации? | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. А вот здесь как раз можно выделить секцию для структуры ## Реализация
... |
||
|
|
||
| Зачастую, это логическая часть и способ взаимодействия с ней.<br /> | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. По-моему хватит просто переноса на след. строку ,без br |
||
| Логическая часть = feature `model`. Это место, где описаны правила, по которым существует feature. | ||
|
|
||
| Рассмотрим на примере формы аутентификации: | ||
|
|
||
| - хранилище значений полей формы (email, password) | ||
| - хранилище валидности формы (ошибки в полях) | ||
| - события обновления хранилищ | ||
| - эффект отправки формы | ||
|
|
||
| Этому слою feature не важно как с ним взаимодействует пользователь. Через браузер или через командную строку. | ||
|
|
||
| Посредником между пользователем и feature model выступает визульный слой: `UI` | ||
|
Comment on lines
+31
to
+42
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Вот я бы прям на верхнем уровне описал что-то вроде По реализации `feature` может иметь любые низкоуровневые абстракции (ui, lib, api, model), но чаще всего ограничивается двумя:
- `ui/` - логика отображения фичи
> Добавляем спойлер с более подробной инфой, который не должен глаза мазолить
- `model/` - бизнес-логика фичи
> И здесь снова спойлер - сюда бы как раз добавил пункт "Рассмотрим на примере формы аутентификации: ..." |
||
|
|
||
| На верхнем уровне feature выглядит вот так: | ||
| ``` | ||
| . | ||
| ├── feature/ | ||
| │ ├── model (logic) | ||
| │ └── ui (visual) | ||
| ``` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Посмотри как в README сделано примерно
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Не хватает в конце раздела что-то вроде Further Reading (опять же глянь примеры которые кидал выше)
## 📑 См. также
<!-- TODO: Возможно позже надо вынести в md-var -->
- [*Обсуждение* "Что есть 'feature'?"](https://github.com/feature-sliced/wiki/discussions/23)
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. От себя бы добавил еще следующие ссылки:
|
||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не хватает хедера с overview секцией
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь бы еще описания добавить, глянь как у @karina-drummer сделано)