Рассказываем про формирование общего архитектурного подхода на фронтенде в СМ Лаб.
00:01:00 Проблемы архитектуры фронтенда
• Проблемы архитектуры фронтенда
• Вопросы идеальной архитектуры фронтенда
00:02:24 Особенности фронтенда
• Фронтенд имеет свои особенности, отличающиеся от серверной архитектуры.
• Исторически фронтенд считался несерьезным
• Вопросы взаимодействия микрофронтендов
00:03:29 Эпохи развития фронтенда
• Проводим аналогию с историей искусства, деля этапы развития фронтенда на эпохи.
• Первая эпоха - “мрачное средневековье“, когда фронтенд развивался без четких законов и систем.
• Вторая эпоха - “ренессанс“, с появлением библиотек для SPA и фреймворков
00:06:04 Современное состояние фронтенда
• Современный фронтенд характеризуется высокой сложностью и множеством подходов и фреймворков.
00:07:23 Принципы программирования
• Принципы программирования, такие как “не повторяйся“ и “будь проще“
00:10:50 Применение паттернов к фронтенду
• Использование роутеров, вью, шаблонов и стилей.
• Традиционный MVC паттерн: контроллер управляет всем, представление не влияет на модель.
• MVP паттерн: создание абстракции представления, использование интерфейсов и методов.
00:13:41 MVVM и LAX подходы
• Современные тенденции: принципы чистой архитектуры Роберта Мартина.
00:15:38 Принципы чистой архитектуры
KISS, SOLID, DRY.
00:16:47 Доменный слой и контракты
00:20:04 Фиче слайс дизайн
• Фиче слайс дизайн: передовой подход к разработке фронтенда.
00:21:03 Слои приложения
00:22:02 Домены и слайсы
Реализация фичеслайст подхода
00:24:09 Структура папок
Пример использования
00:30:40 Улучшение подхода
00:35:14 Бизнес-логика и абстракции
• Бизнес-логика в слоях API и компоузаблов.
00:37:11 Тестирование и компоненты
00:39:01 Вопросы и ответы
• Обсуждение вопросов и замечаний по докладу.
• Проблемы с навигацией по папкам в больших приложениях.
• Важность четкой структуры и иерархии в приложении.
00:44:43Сервисы и абстракции
• Обсуждение сервисов и их роли в архитектуре.
• Различие между сервисами и компоузаблами.
• Реализация сервисов в слоях API и компоузаблов.
00:49:27 Внедрение нового подхода
• Вопрос о плавном переходе на новый подход к коду.
• Рекомендуется поэтапно внедрять изменения, начиная с описания сущностей.
• Сущности должны быть абстрагированы и ограничены в зоне ответственности.
00:50:46 Реализация фич и сервисов
• Сущности могут существовать параллельно с текущим кодом.
• Логика сущностей должна быть инкапсулирована.
• Реализация фич и сервисов должна быть согласована с командой и бизнесом.
00:52:42 Нейминг компонентов
• Вопрос о важности правильного именования компонентов.
• Пример с кнопкой, которая реализует сложную логику авторизации.
• Логика компонента должна быть четко обозначена и понятна.
Подходы к реализации фич
• Традиционный подход к реализации фич с использованием компонентов.
• Второй подход, где бизнес-логика отделена от представления.
• Логика компонента не должна быть равна бизнес-логике.
Критерии оценки архитектуры
• Вопрос о критериях оценки архитектуры, удовлетворяющей требования бизнеса.
• Временные трудозатраты и покрытие тест-кейсами как возможные критерии.
• Важно убедиться, что принятые решения помогают в достижении целей проекта.
Критерии оценки архитектуры
• Скорость разработки фич и страниц.
• Надежность работы приложения при внесении изменений.
• Метрики и количество багов как индикаторы правильности решений.
Реакция разработчиков на изменения
• Половина разработчиков поддерживает изменения, другая половина нет.
• У тех, кто не поддерживает, скорость разработки падает.
• Время на разработку может не меняться или даже увеличиваться.
Проблемы плохой архитектуры
• Внесение изменений в существующее приложение вызывает проблемы.
• Высокая взаимосвязанность изменений приводит к неожиданным багам.
• Это повод для смены архитектуры и стандартизации подходов.
Важность коммуникации в команде
• Важно договориться о едином подходе внутри команды.
• Даже если кто-то не согласен, нужно найти плюсы в выбранном паттерне.
• Плохая коммуникация в команде – отдельная проблема, требующая обсуждения.
Заключение
• Для успешной разработки продукта важна коммуникация и договоренность об архитектуре.
• Все аспекты разработки взаимосвязаны и требуют качественного подхода.
#smlab #смлаб #ecommerce #фронтенд #архитектура #it
40 views
1890
650
4 hours ago 00:02:11 1
💾 Основы программирования на java ✔ Программист обучение
1 day ago 00:02:11 1
🕹 HTML КУРС 💿
1 day ago 00:02:11 1
💻 Курсы программиста гродно
1 day ago 00:02:11 1
📟 Интернет обучение программированию 💣 Веб 2 еду образование
1 day ago 00:02:11 1
📟 ВЕБ РАЗРАБОТЧИК КУРС 🔴 КУРСЫ ПО C СКАЧАТЬ
2 days ago 00:02:11 2
💽 ГДЕ НАУЧИТЬСЯ СОЗДАВАТЬ САЙТЫ С НУЛЯ
2 days ago 00:02:11 1
HTML КУРС ✔ IT СПЕЦИАЛИСТ ОБУЧЕНИЕ ОНЛАЙН 🔵
2 days ago 00:02:11 13
Программирование на си с нуля 💡 Обучение программированию спб
2 days ago 00:02:11 1
ОБУЧЕНИЕ ПРОГРАММИРОВАНИЮ C
2 days ago 00:02:11 4
Курсы по javascript бесплатно 📀
2 days ago 00:02:11 1
💽 Бесплатные курсы python с нуля ⚡ Веб разработка чем занимаются
2 days ago 00:02:11 1
🖲 Бесплатные онлайн тренинги 💡 Курсы программирования москва
3 days ago 00:02:11 1
🚀 Курсы программирования москва
3 days ago 00:02:11 1
📱 Программирование самоучитель 🚀
3 days ago 00:02:11 1
📟 Онлайн курсы программирования для начинающих бесплатно 📲
4 days ago 00:02:11 4
💡 Школа по программированию ⭐ Бесплатное обучение html и css ❕
4 days ago 00:02:11 1
Курсы по программированию c
4 days ago 00:02:11 1
Основы html css и веб дизайна 💣 It курсы для детей
5 days ago 00:02:11 1
🖲 БЭКЭНД РАЗРАБОТЧИК С ЧЕГО НАЧАТЬ 🕹
5 days ago 00:02:11 1
Js обучение ⚡ Курсы python итмо
6 days ago 00:02:11 1
🤓 Репетитор по программированию в спб 🔥 Онлайн курсы python бесплатно ⛔
7 days ago 00:02:11 1
Создание и разработка сайтов для бизнеса и управления
7 days ago 00:02:11 1
ЯНДЕКС ПРАКТИКУМ УРОКИ JAVASCRIPT 🔔 ОБУЧЕНИЕ АЙТИ СПЕЦИАЛИСТОВ С НУЛЯ
1 week ago 00:02:11 1
🚀 It специалист обучение онлайн 🔵 Создание сайтов обучение с нуля бесплатно