И ещё немного про "божественные компоненты" и в чём их основная проблема.😭
God component- антипаттерн, при котором один компонент берет на себя слишком много ответственности: управление состоянием, рендеринг, бизнес-логику, сайд-эффекты и стилизацию.❓
Карточки для простоты и понятности (на опоссумах)🌱
В итоге:
Логику сложно (или невозможно) переиспользовать в другом месте😭
Сложнее процесс отладки и тестирования🌧
Проблемы производительности, лишние ререндеры и утечки памяти😩
Трудности рефакторинга и миграций❌
Когнитивная сложность и увеличение времени на онбординг❔
Замедление и сложность разработки, конфликты при мержах🐸
Проблемы с доступностью😵💫
Разрастание компонента💻
При этом как MVP, точка входа или компонент со сложной логикой он вполне может существовать😎
Статья, где рассматривается, почему god component это антипаттерн
https://dev.to/graemegeorge/composability-in-component-architecture-lessons-from-react-radix-ui-and-beyond-4g8b#comments#1
И как понять, что у нас получается god component
https://dev.to/priya_khanna_44234bba65fb/taming-the-god-component-a-framework-agnostic-guide-to-the-component-responsibility-score-crs-4d2o#comments#1
Если хочется потренироваться в рефакторинге подобных компонентов, есть отличные примеры (первые три на вью, дальше реакт, ссылки из предыдущего поста):📝
https://github.com/ruxailab/RUXAILAB/issues/1064#1
https://github.com/it-at-m/eappointment/issues/1342#1
https://apnahive.com/the-vue-component-i-regret-writing-every-single-time-and-what-to-write-instead/
https://github.com/EmmanuelKerhoz/Vibe/issues/91#1
https://github.com/elevanaltd/ingest-assistant/issues/102#1
https://github.com/venturecrane/dc-console/issues/138
https://github.com/HyperGenius/msbs-next/issues/150#1
Post #1296
232






- 👍 4
- ❤ 3
- 🔥 3