Если вы читали какие-либо другие мои сообщения, то знаете, что я ОГРОМНЫЙ поклонник Angular. Я написал немало статей о том, почему я считаю Angular великолепным. Однако я пишу это, чтобы бросить вызов самому себе и посмотреть, когда Angular подведет вас. Что я имею в виду, когда использую слово «провал»? Для меня неудача будет означать, что что-то в самой структуре будет препятствовать разработке моего продукта или будет мешать больше, чем помогать.

Angular по своей природе - это не просто инструмент; Angular больше похож на целый набор инструментов, полный различных инструментов, которые могут понадобиться для любой работы. Это похоже на то, что если вы работаете над автомобилем, вы можете купить ящик для инструментов, в котором уже есть набор инструментов. Другой вариант - купить пустой набор инструментов, и каждый раз, когда вам нужен инструмент, вы покупаете его и медленно начинаете заполнять свой набор инструментов. Этот набор инструментов с предварительно выбранными инструментами дает много преимуществ, но сегодня мы поговорим о недостатках.

Все инструменты

Такой фреймворк, как Angular, дает вам все инструменты, необходимые для создания всего, что вы хотите. Иметь все необходимые инструменты - это обычно здорово, потому что вам не понадобится масса сторонних инструментов; однако это также может быть проклятие.

Если вы создаете что-то маленькое и простое, вам не нужны все доступные инструменты. Для небольших и простых приложений было бы более эффективно выбирать конкретные инструменты, которые вам нужны, поскольку вам, скорее всего, не понадобится много. Так что же такого особенного в том, что вам доступны все инструменты? Что ж, это действительно то, что все это доступно вам, и вам нужно знать, как они работают и как они взаимодействуют друг с другом. Вам может потребоваться создать файлы маршрутизации, службы, модули и компоненты, чтобы создать что-то простое. Это может довольно быстро превратиться в излишество.

Существует также проблема сортировки всех различных инструментов в вашем ящике. Я упомянул некоторые вещи, которые есть в наборе инструментов Angular. Вы должны знать, что делают все инструменты, чтобы использовать их наилучшим образом. Затем вам нужно решить, какие из них использовать. Поскольку у вас есть все инструменты из коробки, это как бы заставляет вас знать, что они делают и как их использовать. Это может быть не только излишним для простого приложения, но также может стать препятствием для входа новых разработчиков. Многие начинающие разработчики выбирают такие вещи, как React, потому что это просто начать.

Кривая обучения

Прежде чем перейти к этому разделу, я хочу быстро кое-что сказать. Разработчику не следует бояться кривой обучения. Любой достойный разработчик должен быть в состоянии узнать что-то новое. Если вам не нравится узнавать что-то новое (и я говорю здесь не только об Angular), возможно, вы выбрали неправильную профессию. С учетом сказанного, давайте перейдем к этому.

Кривая обучения - это тот недостаток, на который многие люди указывают, почему они не используют Angular. Ранее я упомянул одну кривую обучения, зная, как использовать все инструменты из набора инструментов Angular. Есть еще один инструмент, на который люди всегда указывают, - RxJS. RxJS или Reactive JS - это способ обработки асинхронных действий. RxJS использует Observables, которые похожи на поток, управляемый событиями. Наблюдаемые, хотя и невероятно полезные и очень крутые, поначалу могут быть трудными для понимания. Требуется время, чтобы приспособиться к тому, как вы думаете о написании кода, управляемого событиями. Если вы привыкли писать код с обещаниями, Observables может вас раздражать. Это определенно препятствие для входа новых разработчиков.

Мнительный

Angular - это фреймворк, и как фреймворк вы должны работать в его рамках. Angular самоуверен, и есть правильный и неправильный способ делать что-то в рамках. Это также влияет на аспект кривой обучения, потому что вы должны знать, как работает фреймворк. Это также означает, что вы не можете просто делать то, что хотите. Angular как фреймворк гораздо менее гибок, чем такие библиотеки, как Svelte или React. Многие разработчики чувствуют себя ограниченными рамками Angular.

По этой причине Angular отвергает многих более опытных разработчиков. Они привыкли делать что-то определенным образом, и когда Angular не играет с шаблонами, к которым они привыкли, работать с ними может быть сложно. С Angular становится проще работать, когда вы знаете, как все работает и как все это связано. Однако, чтобы достичь этого, вы должны преодолеть препятствия, о которых я упоминал в этом посте.

Подведение итогов

Хотя мне нравится Angular, я понимаю, что он несовершенен и имеет свои недостатки. Хотя есть веские причины, по которым у Angular есть эти препятствия, я думаю, что его популярности препятствуют крутая кривая обучения и упрямый характер. Это одни из самых больших проблем с фреймворком. Как поклоннику Angular, написать это было непросто, но, тем не менее, мне понравилось. Если вы, как и я, являетесь поклонником Angular, я надеюсь, что это немного открыло вам глаза на недостатки Angular и заставит вас больше задуматься о самом фреймворке.