Можно сказать, что это был брак по расчету. Мой партнер по проекту в старшей школе, который был намного умнее остальных из нас, предложил нам создать веб-сайт Centerville PTO на Angular и Node. Изучив за год до этого основы HTML, CSS и JavaScript, имело смысл использовать фреймворк JS. Я и не подозревал, что это будет выбор, который поведет меня по пути, о котором я и не подозревал.

Мой первый вкус Angular

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

Любой, кто использовал или использует Angular.js (первую итерацию Angular), может сказать вам, что код выглядит некрасиво. Меня, любителя аккуратности, это немного оттолкнуло, но я был полон решимости учиться. Шло время, и я все больше и больше разочаровывался в необходимом шаблонном коде, подверженном ошибкам.

После этого проекта я не прикасался к Angular до нескольких лет спустя на работе.

Искупление

Я выгорала на работе. Я был тестировщиком/QA в проекте в течение последних 6 месяцев после того, как был исключен из проекта Java, в котором я был изначально. Поэтому, когда мой руководитель подошел ко мне и спросил, не хочу ли я присоединиться к небольшому проекту в качестве разработчика, я чуть не подпрыгнул со стула.

Мы сели и поговорили о стеке проекта:

Java Spring — Java был моим основным языком, проверьте

База данных MySQL — Изучено при создании моих побочных проектов, проверьте

Наконец, он добрался до передней части, которая, как я предполагал, будет передней частью Springs — Thymeleaf.

Угловой

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

Мы прошлись по коду Java и перешли к Angular. Я не понимал, но версия была Angular 5, совершенно отличной от той, что я видел в прошлом.

Новый интерфейс командной строки, структура компонентов, централизованное объявление службы/компонента, TypeScript — все это привело меня в восторг. Под опекой Дуга я работал с новым Angular.

Итак, почему угловой?

Разбивая это, есть 3 основные причины, по которым я предпочитаю Angular React и Vue, другим крупным фронтенд-фреймворкам:

  • Структура
  • Внедрение зависимости
  • Служба поддержки

Структура проекта

С введением Angular CLI запуск проекта с нуля стал невероятно простым. Хотя для нового разработчика просмотр чужого кода может быть пугающим, важно ознакомиться со структурой, установленной командой разработчиков.

Угловые компоненты обычно состоят из 2–3 частей:

- HTML

- Файл TypeScript, мозг компонента

- И, возможно, файл CSS

Эта структура используется во всем приложении, что позволяет сделать ваш код более организованным и удобным для чтения.

Внедрение зависимости

Внедрение зависимостей — довольно крутая концепция, когда дело доходит до кодирования. Подводя итог концепции, можно сказать, что зависимости объекта могут быть объявлены в конструкторе или сеттерах. Это позволяет объектам быть связанными архитектурой проекта, а не напрямую.

Angular отлично с этим справляется. Просто определите свой сервис с помощью декоратора @Injectable, объявите его в файле app.module.ts, а затем добавьте его в конструктор компонента.

Служба поддержки

Angular — это проект Google. Лично мне нравится Google: как они изменили Интернет и постоянно раздвигают границы технологий. Однако не все чувствуют то же самое; заявляя о нарушениях конфиденциальности и отсутствии разнообразия в качестве причин для скептицизма. Несмотря на это, такая крупная организация, как Google, обеспечивает первоклассную поддержку Angular.

Одна проблема, которая, кажется, есть у многих, - это почти ежегодные выпуски. Лично я не считаю это хлопотным. Вам не нужно обновлять свою версию, а если вы это сделаете, есть отличная документация по этому процессу.

При всем при этом я, вероятно, перейду к изучению и сосредоточению внимания на Vue.js.

Почему? Vue.js берет то, что хорошо с Angular, и добавляет то, что хорошо с React.

Например, Vue.js использует те же шаблоны, что и Angular. Vue.js использует HTML-страницы в качестве шаблонов, в отличие от React, использующего JSX. Vue.js также использует аналогичную двустороннюю привязку данных.

Но он также исправляет проблемы с Angular, особенно с тем, как Angular отображает страницы. Vue.js использует виртуальный DOM для рендеринга вместо грязной проверки Angular.

Поддержка Vue.js также растет. Звезды github для Vue.js превзошли React! Хотя это мало что говорит, это иллюстрирует скорость, с которой расширяется Vue.js. Конечно, сейчас может быть не так много рабочих мест Vue.js, это обязательно изменится по мере развития фреймворка.

Короче

У Angular, React и Vue есть свои плюсы и минусы, я просто предпочитаю плюсы и минусы Angular. Пока неизвестно, превзойдет ли Vue две другие основные библиотеки, поскольку она все еще находится в зачаточном состоянии.