Два месяца назад я запустил свое первое общедоступное веб-приложение и первое полноценное веб-приложение, над которым я работал с 2011 года. Чтобы поразмыслить над этим достижением, я решил начать с рассмотрения Angular в 2019 году и почему, несмотря на то, что он, возможно, немного потерял популярность. , вам все равно следует рассмотреть возможность его использования (особенно если вы являетесь бэкенд-разработчиком).

Фреймворки имеют (почти) все, что вам нужно, в одном месте

Два года назад я был в основном разработчиком серверных/настольных приложений, у меня были знания в области серверной веб-разработки, а также знания HTML, CSS и немного JavaScript, но в то время, когда я не занимался веб-разработкой, весь переход к более сложным интерфейсы и одностраничные приложения (SPA) полностью обошли меня стороной. В этом случае самоуверенный фреймворк со всем, что вам нужно для создания интерфейсных приложений, может спасти вам жизнь.

Не следует недооценивать наличие всего в одном месте, возможность легко использовать большое количество готовых компонентов с библиотекой материалов Angular (https://material.angular.io/) также является огромным преимуществом. Мне также понравилось, что был встроенный метод для запуска теста, а тестовый файл создавался по умолчанию для новых компонентов!

Хотя я понимаю, что такие библиотеки, как React и Vue, имеют дополнительные библиотеки, которые могут добавлять все функции, предоставляемые «из коробки» в Angular, но когда вы только начинаете, трудно увидеть общую картину. С Angular у меня было скелетное приложение с некоторыми хорошими компонентами Material, работающими довольно быстро. Пытаясь освежить имеющиеся у меня знания о веб-приложениях и изучить современные методы веб-разработки, мне было очень сложно понять, как достичь того же уровня с другими инструментами.

Прочная вязка из коробки

TypeScript изменил правила игры для меня при изучении фронтенд-разработки, хотя я понимаю привлекательность динамических языков, мне гораздо удобнее работать на языке со строгой типизацией. Самое важное для меня — это возможность выявлять большинство глупых опечаток, которые я неизбежно сделаю, и иметь форму IntelliSense в моей IDE, позволяющую мне открывать функциональные возможности, которые я могу использовать, не читая документацию.

Хотя с тех пор я возвращался и укреплял свое понимание современного JavaScript, TypeScript позволил мне взяться за дело.

Использование шаблонов разработки программного обеспечения

Angular широко использует шаблоны разработки программного обеспечения, наиболее распространенными из которых, вероятно, являются Singleton и Dependency Injection. Эти концепции, вероятно, будут хорошо знакомы бэкенд-разработчикам (по крайней мере, из мира C#). Использование знакомых шаблонов помогло мне быстро понять структуру Angular и понять, как реализовывать модульные тесты.

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

Изучение Angular поможет вам освоить другие веб-инструменты/библиотеки.

Хотя Angular может облегчить веб-разработку для бэкенд-разработчиков, это все же веб-разработка. Вам все равно придется убедиться, что вы хорошо знаете HTML, CSS и JavaScript. Angular — отличное место для практики этих навыков, и многие используемые концепции значительно ускорят изучение других веб-инструментов/фреймворков.

Теперь я снова начинаю больше экспериментировать с React, и мне кажется, что это намного проще, чем раньше. Теперь я вижу, как вещи сочетаются друг с другом в веб-приложении и как концепции могут быть использованы для создания полного приложения, где раньше я не мог.

Создан для будущего

Angular по-прежнему активно поддерживается Google, выпуская две основные версии в год. Есть много больших изменений, которые (должны) произойти в следующем году, самым большим из которых, вероятно, будет компилятор Ivy. Новый компилятор обещает обеспечить эффективное разделение деревьев, что может значительно сократить размер приложений, разработанных в Angular. Одна только эта функция будет довольно большим событием для сообщества Angular, в сочетании с возможностью разработки пользовательских элементов (https://angular.io/guide/elements), которые можно использовать в сочетании с другими инструментами/библиотеками. очень светлое будущее для фреймворка.

Это каким-то образом устраняет то, что, вероятно, является самой большой слабостью Angular на данный момент, он действительно подходит только для разработки приложений. Если вам нужно создать один компонент или добавить функциональность, подобную SPA, на небольшом количестве страниц, лучшими вариантами в настоящее время являются Vue или React.

Вывод

Кажется, что в наши дни Angular привлекает меньше внимания, по крайней мере, в таких местах, как Reddit, я уверен, что это оттолкнет многих людей от его изучения и изучения. Надеюсь, я предоставил вам несколько причин, по которым вам стоит это проверить, особенно если вы являетесь бэкенд-разработчиком. Я чувствую, что многие варианты дизайна в Angular часто подвергаются критике, но на самом деле могут быть очень положительными, в зависимости от вашего опыта.