Namaste Frontend System Design
Курс "Namaste Frontend System Design" охватывает темы, такие как сетевые технологии, протоколы связи, безопасность, тестирование, оптимизация производительности, базы данных и кэширование, доступность и многое другое. Он предназначен для разработчиков с разным уровнем опыта и фокусируется на практическом обучении с реальными примерами.
Мои рекомендации
Если у вас ещё не было опыта работы с проектами с плохой архитектурой (например, хаотичное разделение на components, hooks, store, utils), я бы рекомендовал попробовать разобраться с такими проектами на практике. Это поможет лучше понять, зачем нужен данный курс, и осознать его ценность.
Мой опыт работы с подобным проектом
Один из проектов, в котором я участвовал, начинался с нуля. Архитектура изначально выглядела упрощённо: всё было разделено на components, hooks, store, utils. По мере роста проекта начались проблемы:
• Компоненты начали ломаться.
• Количество багов росло.
• Внесение изменений в одном месте ломало приложение в других частях.
Эти проблемы негативно сказывались на работе команды: новые фичи регулярно “рушили” приложение, что, естественно, не нравилось бизнесу. В какой-то момент нашу команду хотели расформировать из-за проблем с поддержкой и развитием приложения.
Если ваш опыт похож на описанный выше, этот курс может быть полезен. Если вы не понимаете, о чём речь, лучше не тратьте время на курс — скорее всего, вы его бросите, не освоив.
Как лучше подготовиться к курсу
1. Самостоятельно изучите FSD. Попробуйте разобраться в подходе: почитайте статьи, посмотрите видео, попытайтесь применить его в небольшом проекте.
2. Посмотрите курс от UlbyTV. Который есть на этой платформе, он один, в нем около 150 уроков. В этом курсе научитесь создавать приложение с FSD. Если останутся вопросы после этого курса переходите к 3 пункту.
3. Только после этого переходите к текущему курсу.
Почему не стоит смотреть этот курс сразу
Первые уроки довольно интересные: автор рассказывает, какие задачи решает FSD и какие паттерны используются. Но чтобы усвоить эти уроки, важно заранее хотя бы немного разобраться в теме, иначе многое покажется непонятным.
Основные проблемы курса:
1. Подача материала.
Автор объясняет уже написанный код, “прыгая” по файлам, что затрудняет понимание. Часто не хватает схем или дополнительных примеров. Было бы намного понятнее, если бы он писал код с нуля, параллельно объясняя свои решения.
2. Сложность объяснений.
Много технической терминологии, которая может быть трудна для понимания, особенно если вы не читали книги по программированию или не знакомы с паттернами.
3. Рефакторинг в каждом уроке.
Автор часто переносит файлы и меняет структуру проекта прямо в процессе. Это сбивает с толку и создаёт ощущение хаоса, хотя я понимаю, что окончательного “правильного” подхода в FSD нет.
4. Решение проблемы связности.
В курсе предлагается минимизировать связность в FSD, делая фичи “жирными”. Но пока это решение не показало ощутимых преимуществ. Классический подход (разбиение на use-cases с объединением на уровне страниц или виджетов) тоже имеет свои проблемы, например, увеличение количества файлов в большом приложении. Автор объясняет, что его решение помогает избежать проблем с производительностью сборщика в крупных проектах, но я не успел проверить это на практике.
Для кого подойдёт этот курс
Курс подойдёт опытным разработчикам, которые уже хорошо разбираются в терминологии, архитектурных подходах и паттернах. Если вы джун или миддл, вам может быть сложно: из-за подачи материала и обилия новых терминов курс может показаться перегруженным.
Итоговая оценка: 6/10
Курс имеет потенциал, но из-за упомянутых недостатков он не покрыл мои ожидания. Тем не менее, для опытных разработчиков он может быть полезен.