Применимы ли в реальном мире фронтенда порождающие паттерны программирования?
Начал подтягивать теорию по программированию. Почитал про порождающие паттерны - фабрика,абстрактная фабрика. Возникло ощущение что это не совсем про js. Максимум что я почерпнул из этих паттернов - необходимость правильного наследования классов. Применимы ли эти паттерны в реальном производственном процессе веб-разработки?
Дополнительно:
Создание объекта фабрикой - наилучший способ для JS. Без всякого мусора, вроде "class", "Object.create" и прочего.
Да, наверняка знание/понимание паттернов может пригодиться для конструирования новых фреймворков/технологий, до чего рядовым разработчикам ооооочень далеко.
Это навскидку про пользу паттернов))
никто не пишет на нативном JS, пишут на фреймворках,
React и Vue, скорее, библиотеки. И даже использование фреймворков не заменяет необходимость писать по-человечески.
В общем и целом, паттерны помогают в дальнейшей поддержке проекта, чтобы сложность, а соответственно, и время внедрения новых фич не росли в арифметической прогрессии.
-фабрика
-абстрактная фабрика
-строитель
-прототип
-одиночка(синглтон).
Как я прокачаю себя при их изучении (учитывая что в данный момент интересуюсь веб-разработкой). Фабрика - допустим, в комменте выше пример реального использования. А остальные? Ну еще принцип синглона может быть полезным. Можно также задаться вопросом и с поведенческими паттернами.
Я понимаю что код должен быть структурирован и подчиняться определенным правилам. И все это можно часто почерпнуть из доков используемого инструмента. Но вот эти основополагающие паттерны звучат как теоретическая теория.
Я попробую перефразировать - Вы их используете на практике? Осознанно, так чтобы ткнуть и сказать - вот это я сделал потому что (название паттерна)?
Мне в данный момент это напоминает урок географии, на котором нужно выучить столицы стран "просто потому что". Потому что на условном собеседовании могут задать вопрос.
P.S. - Ответ действительно крайне интересует. Не первый раз возвращаюсь к этому вопросу по ходу своего обучения.
-абстрактная фабрика
В целом имеет не так много применений и часто это оверинжиринг.
-строитель
По ощущениям в любом языке будет полезным, т.к. это удобный способ чтобы создавать объекты.
-прототип
По сути способ создания клона объекта, думаю многие реализовывали такой функционал много раз даже не зная что для этого есть отдельный паттерн.
Но вот эти основополагающие паттерны звучат как теоретическая теория.
Дело в том, что для разных языков применяют разные паттерны. Фабрику любят в яве, в го я чаще встречал билдер/декоратор. В js любят интерсепторы.
Осознанно, так чтобы ткнуть и сказать - вот это я сделал потому что (название паттерна)?
Ну например интерсептор, его можно использовать, чтобы выборочно/невыборочно вставлять дополнительные
данные в запросы. Это полезно в ситуации когда у тебя есть 20 запросов на бэк, и чтобы не определенную писать логику 20 раз, ты выносишь обобщенную логику в интерсептор - это довольно упрощенное описание (мб не совсем верное), но суть в том, что паттерн полезный.
По сути никто не заставляет использовать тебя паттерны и их не нужно учить, в какой-то момент ты скорее всего сам поймешь, что скорее всего для задачи есть паттерн или стандартное решение. Ну и если на твой взгляд паттерн не нужен в коде, то лучше не применяй его.
Мне в данный момент это напоминает урок географии, на котором нужно выучить столицы стран "просто потому что".Потому что на условном собеседовании могут задать вопрос.
Ну такая практика сложилась, что на собесах много странных вопросов и ты от них не уйдешь, ты можешь найти норм вакансию и без этого, но круг будет уже. Примерно тоже что и с литкодом, если хочешь попасть в метсные топ конторы, то тебе придется прорешать 20-100 задач
Если интересует тема паттернов, то я советовал бы для начала почитать GOF (книгу написали те кто разработал эти паттерны), т.к. в статьи часто тянут свои догадки и отходят от оригинала.
Выбирая самое на мой взгляд существенное из комментариев -
Применимы, но очень ограниченно, и смотря какой фреймворк используется у vue 3 и react кажется с 18 версии более удобно использовать хуки, превращать их в фабрики на мой взгляд бессмысленно лучше упороться в архитектуру разделенную на слои. Последний раз когда писал код подобными паттернами, была обертка над axios
Ознакомление на начальном этапе своего пути как разработчика нужно для расширения кругозора. Прямой-прямой взаимосвязи между общими описанными паттернами и веб-разработкой(в данном случае фронтом) скорее нет чем есть, если не брать во внимание частности.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Да, порождающие паттерны программирования применимы и в фронтенде. Порождающие паттерны помогают создавать объекты и компоненты приложения более гибко, эффективно и масштабируемо. Они помогают избежать жесткой зависимости между объектами, упрощая процесс создания новых объектов и обеспечивая гибкость в структуре приложения.
Некоторые из наиболее часто используемых порождающих паттернов в фронтенде:
1. Фабричный метод (Factory Method) - позволяет создавать объекты без указания конкретного класса объекта, делая процесс создания объектов более гибким и расширяемым.
2. Одиночка (Singleton) - гарантирует, что у класса есть только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру.
3. Строитель (Builder) - позволяет создавать сложные объекты пошагово, разделяя процесс создания объекта от его представления.
Таким образом, порождающие паттерны программирования могут быть очень полезными и эффективными инструментами при разработке фронтенд-приложений, помогая улучшить структуру, гибкость и масштабируемость кода.