Skip to content

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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

GeorgKrom
Copy link

Background

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

UPD

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

Copy link
Member

@illright illright left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет, спасибо, что поделился опытом!

У меня есть несколько замечаний по совместимости с текущими бест-практиками FSD:

  1. Слой processes сейчас считается устаревшим и не рекомендуется к использованию. Наш линтер Steiger будет на него ругаться. Я не очень понял из этого гайда, для чего предлагается использовать main/processes, можно ли в src/main просто использовать Shared, Entities и Features?
  2. Отдельные слои app в main и renderer немного вводят меня в заблуждение, потому что кажется, что в кодовой базе два приложения, хотя по факту это одно приложение с определенным разбиением ответственностей на процессы. Можем ли мы вынести слой app в отдельное место, например, на уровень src?
  3. Называть сегменты в shared types и constants считается плохой практикой, Steiger зарепортит это как ошибку. Причиной тому является то, что эти сегменты группируют код по принципу "что это", а не "для чего это". Второй принцип намного полезнее для дальнейшего поиска кода в проекте. Может, назвать этот сегментshared/ipc, и сложить туда и константы, и типы?

В остальном гайд хороший, только мне немного не хватило примеров. Пример взаимодействия ниже по странице хорош, чтоб продемонстрировать, кто что может импортировать, но по этому примеру у меня не очень складывается картинка, как разложить типичное электроновское приложение по FSD. Может быть, у них в туториале есть какой-то маленький пример приложения, который мы можем в этом гайде показать в формате FSD?

@GeorgKrom
Copy link
Author

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

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

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

@GeorgKrom GeorgKrom requested a review from illright May 29, 2025 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants