documentation icon indicating copy to clipboard operation
documentation copied to clipboard

docs(guides): add electron tech guide

Open GeorgKrom opened this issue 6 months ago • 3 comments

Background

Добавлен подход по использованию FSD с Electron.

UPD

Если есть какие-либо рекомендации или замечания, буду рад выслушать

GeorgKrom avatar May 23 '25 14:05 GeorgKrom

@illright, привет, благодарю за обратную связь, обновил гайд с учётом твоих замечаний.

  1. На практике нужен какой-то слой, объединяющий несколько features в main процессе, можно его назвать widgets, чтобы не было расхождений со стандартом FSD;
  2. Спасибо за совет, в процессе разработки на Electron в голову такая идея самому не приходила;
  3. Здесь согласен полностью.

Думаю лучше будет реализовать пример отдельно в репозитории и добавить его в список примеров в документации

GeorgKrom avatar May 25 '25 11:05 GeorgKrom

Спасибо за пример, так намного понятнее. Я согласен, хорошо бы накидать какой-то пример проекта, который прямо можно потыкать. Может быть, ты мог бы добавить примерчик в https://github.com/feature-sliced/examples, а потом мы его прилинковали бы на этой странице?

Название widgets, кажется, не очень подходит для main процесса, widgets как бы намекает на какие-то блоки интерфейса, нежели группы фич. А в каких сценариях может понадобиться объединение фич?

Еще хотелось бы привести пример чуть больше в соответствие FSD 2.1 — например, не создавать виджет, который используется только на одной странице. Может быть, это также решит и проблему объединения фич в процессе main?

illright avatar Jun 01 '25 17:06 illright

Привет ещё раз, прошу прощения за задержку с обновлением. Объединение нескольких фич может понадобиться в сценариях, когда мы имеем какую-то многосоставную логику с вызовом системных команд и специфической работой с файловой системой. В качестве примера, на текущем проекте, фичей выступает запись/удаление данных в Credential Manager ОС Windows, фича дальше используется в нескольких слайсах вышестоящего слоя

GeorgKrom avatar Jun 08 '25 19:06 GeorgKrom

@illright, привет ещё раз, понимаю, что свободного времени у тебя немного, но решил напомнить о себе :)

GeorgKrom avatar Jun 27 '25 16:06 GeorgKrom

Привет, извини, как-то вылетело из головы. Спасибо, что напоминаешь. Посмотрел последние изменения, вот что я думаю:

  1. Хотелось бы разделить добавление новой страницы доки и добавление нового примера в секцию примеров на разные ПРы. Я, собственно, недавно принял решение больше не добавлять примеров в ту секцию, куда ты добавил свое приложение, из-за множественных проблем с этой секцией. Мог бы ты, пожалуйста, вместо добавления примера туда добавить его в репозиторий https://github.com/feature-sliced/examples?

  2. В контексте FSD 2.1 создание новых слоев пока что не рекомендуется, хоть и есть идеи пересмотреть это ограничение в следующих версиях. Поэтому мне кажется немного сомнительной идея рекомендовать создание слоя Services в main процессе. Мне больше нравилась идея со слоями Features и Entities в src/main. Кстати, насчет этого…

  3. …в твоем комментарии выше ты приводишь пример фичи "запись/удаление данных в Credential Manager". Для меня это звучит больше как инфраструктурный сервис, т.е. что-то техническое, что-то, что, условно, стейкхолдерам бизнеса знать не обязательно. Слой Features предназначается не для таких сервисов, а для бизнесовых фич, т.е. тех элементов функционала, которые обсуждаются между стейкхолдерами и разработчиками, например "импорт MS Word-документов". С такой точки зрения эти фичи уже, на мой взгляд, не требуют композиции на слое выше, потому что они сами собой представляют ценную для бизнеса единицу. Инфраструктурные сервисы, как например, сохранение кредов, на мой взгляд лучше ложатся в shared c независимым от реализации интерфейсом, чтоб в процессе разработки была возможность абстрагироваться от деталей ОС и рассматривать хранилище кредов как абстрактный секьюрный стор

  4. Хотелось бы добавить папки features и entities в это файловое дерево в начале гайда, в качестве просто нераскрытых папок. Иначе создается впечатление, что создание этих слоев не рекомендуется в этих местах

illright avatar Jun 28 '25 10:06 illright

@illright, привет, внёс соответствующие правки. Не знаю, нужно ли было добавлять в файловое древо все стандартные слои, но по итогу добавил :D

GeorgKrom avatar Jun 28 '25 11:06 GeorgKrom

Спасибо! Если будет желание добавить перевод на английский (можно через переводчик, если что, подредактируем вместе), буду очень признателен :)

illright avatar Jun 28 '25 13:06 illright

Принято, перевод сделаю)

GeorgKrom avatar Jun 29 '25 08:06 GeorgKrom