-
Notifications
You must be signed in to change notification settings - Fork 201
docs(guides): add electron tech guide #824
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
base: master
Are you sure you want to change the base?
Conversation
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.
Привет, спасибо, что поделился опытом!
У меня есть несколько замечаний по совместимости с текущими бест-практиками FSD:
- Слой
processes
сейчас считается устаревшим и не рекомендуется к использованию. Наш линтер Steiger будет на него ругаться. Я не очень понял из этого гайда, для чего предлагается использоватьmain/processes
, можно ли вsrc/main
просто использовать Shared, Entities и Features? - Отдельные слои
app
вmain
иrenderer
немного вводят меня в заблуждение, потому что кажется, что в кодовой базе два приложения, хотя по факту это одно приложение с определенным разбиением ответственностей на процессы. Можем ли мы вынести слой app в отдельное место, например, на уровеньsrc
? - Называть сегменты в
shared
types
иconstants
считается плохой практикой, Steiger зарепортит это как ошибку. Причиной тому является то, что эти сегменты группируют код по принципу "что это", а не "для чего это". Второй принцип намного полезнее для дальнейшего поиска кода в проекте. Может, назвать этот сегментshared/ipc
, и сложить туда и константы, и типы?
В остальном гайд хороший, только мне немного не хватило примеров. Пример взаимодействия ниже по странице хорош, чтоб продемонстрировать, кто что может импортировать, но по этому примеру у меня не очень складывается картинка, как разложить типичное электроновское приложение по FSD. Может быть, у них в туториале есть какой-то маленький пример приложения, который мы можем в этом гайде показать в формате FSD?
@illright, привет, благодарю за обратную связь, обновил гайд с учётом твоих замечаний.
Думаю лучше будет реализовать пример отдельно в репозитории и добавить его в список примеров в документации |
Спасибо за пример, так намного понятнее. Я согласен, хорошо бы накидать какой-то пример проекта, который прямо можно потыкать. Может быть, ты мог бы добавить примерчик в https://github.com/feature-sliced/examples, а потом мы его прилинковали бы на этой странице? Название Еще хотелось бы привести пример чуть больше в соответствие FSD 2.1 — например, не создавать виджет, который используется только на одной странице. Может быть, это также решит и проблему объединения фич в процессе main? |
Привет ещё раз, прошу прощения за задержку с обновлением. Объединение нескольких фич может понадобиться в сценариях, когда мы имеем какую-то многосоставную логику с вызовом системных команд и специфической работой с файловой системой. В качестве примера, на текущем проекте, фичей выступает запись/удаление данных в Credential Manager ОС Windows, фича дальше используется в нескольких слайсах вышестоящего слоя |
Background
Добавлен подход по использованию FSD с Electron.
UPD
Если есть какие-либо рекомендации или замечания, буду рад выслушать