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

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

Стандартизация

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

Angular помогает корпоративным командам справляться с этими проблемами и сложностями с помощью встроенных механизмов стандартизации, а именно Angular CLI. CLI, или интерфейс командной строки, создает и формирует ваше приложение и строительные блоки ваших приложений, такие как ваши компоненты. Вы можете запустить новый проект Angular с помощью одной команды и сразу приступить к работе. С помощью другой команды вы можете создать новый модуль, компонент, службу и т. Д. Поскольку Angular CLI обрабатывает создание и формирование этих новых частей вашего приложения, он позволяет вам сосредоточиться на создании приложения, а не пытаться все связать. Интерфейс командной строки может сделать то, на что в противном случае вам потребовалось бы несколько минут, за несколько секунд.

Есть и другое, менее очевидное преимущество такой стандартизации. Angular по сути дает вам набор инструментов, полный всех инструментов, которые вам понадобятся для создания всего, что вы хотите. Когда у вас есть стандартный набор подобных инструментов в каждом проекте, вы получаете 2 основных преимущества:

  1. Каждый разработчик знает набор инструментов для каждого проекта на предприятии.
  2. В вашем проекте не будет столько сторонних зависимостей

Когда каждый разработчик в каждом проекте использует одни и те же стандарты и инструменты, становится легко обучать команды. Также становится легко перемещать ресурсы. Если у вас один проект нагревается, а другой остывает, вы можете переместить ресурсы в горячий проект, и они сразу же начнут подключаться. Я часто говорил, что если вы изучите 1 проект Angular, вы выучите все проекты Angular. Чего нельзя сказать о других интерфейсных технологиях. Например, с React каждый проект полностью отличается от другого. В каждом проекте React используются разные инструменты и разные шаблоны с небольшим перекрытием. Хотя это нормально для небольших проектов или компаний с одним предложением, это может стать большим бременем для предприятия или других компаний, выпускающих больше продуктов. Становится сложнее обучать разработчиков этим проектам, и увеличивается количество инструментов и шаблонов, с которыми каждый разработчик должен быть знаком, если вам нужно их перемещать.

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

Тестирование

Мы говорили о том, как Angular будет создавать и внедрять новые компоненты в ваше приложение, но это идет еще дальше. Он также автоматически сгенерирует файл начальных спецификаций для тестирования вашего нового компонента. Он будет содержать простой тест «выполняет ли рендеринг», и после этого вы можете начать добавлять другие тесты. Angular также идет еще дальше, давая вам возможность точно сказать, какая часть вашего кода покрывается вашими тестами. Angular использует для этого Karma и проверяет, сколько строк кода покрывает ваш тест, сколько ветвей (подумайте, если операторы if / else) покрываются тестами и т. Д. Имейте в виду; это приходит прямо из коробки. Никаких других зависимостей устанавливать не нужно. Вам не нужно ничего, кроме вашего первоначального автоматически сгенерированного приложения Angular, и все это сразу работает.

Модульность

Развитие Angular привело к тому, что он был написан чрезвычайно модульным способом. Например, подумайте о строительных блоках вашего приложения, о компонентах. Angular в основном разбит на модули. Когда у вас будет новое приложение Angular, вы увидите файл модуля приложения. Это основной модуль, в который будет входить все остальное. У ваших компонентов также могут быть свои собственные модули. Вы можете думать о модулях как о фактических блоках, которые содержат компоненты. Если вам нужен определенный компонент или группа компонентов в определенной части вашего приложения, вы импортируете модуль. Следуя этому шаблону, вы заметите, что создавать приложение станет намного проще. Это будет похоже на работу с реальными строительными блоками. Легче вводить новые модули, убирать модули или менять модули друг с другом.

Этот шаблон делает архитектуру вашего приложения более плоской. Использование этого шаблона означает, что у вас никогда не будет глубоко вложенных компонентов, как в React. Большим преимуществом плоской архитектуры приложения является то, что она более гибкая и ее легче изменять. Во многих приложениях React, над которыми я работал, простые изменения могут стать настоящим кошмаром, когда вам нужно следовать дереву глубоко вложенных компонентов и детализированных свойств.

Обновления

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

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

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

Я рассмотрел множество различных аспектов того, почему я считаю Angular лучшей интерфейсной технологией для предприятия. Я сосредоточился на аспектах Angular, которые делают его подходящим для предприятий. Он чрезвычайно стандартизирован, интерфейс командной строки избавляет вас от большого количества стандартной работы, которую вам необходимо выполнять, а интерфейс командной строки обеспечивает большую безопасность при создании компонентов или обновлении зависимостей. Хотя в Angular есть некоторые меры безопасности, это не означает, что вы, как разработчик, не должны знать, что делаете. Вам по-прежнему нужно хорошо разбираться в технологиях и понимать, как работает фреймворк Angular. Наличие фреймворка, который абстрагирует от вас много работы, не повод для ленивого изучения того, как он работает. То же самое можно сказать о любой технологии, которую вы собираетесь внедрить. Если вы работаете в компании, у которой есть много различных программных продуктов, подумайте об использовании Angular для стандартизации и оптимизации ваших усилий по разработке интерфейса.