Как подключить WhatsApp Business API к своему сайту
Cloud API против ссылки click to chat, шаблоны сообщений, согласие, 24-часовое окно и передача человеку, для бизнеса из ОАЭ, встраивающего WhatsApp в свой сайт.
Читать статьюВеб-услуги
Поддержка AngularJS закончилась в январе 2022 года. Что это означает на практике для бизнеса в Дубае, что обычно ломается при миграции с AngularJS, как переходить поэтапно, а не одним рывком, и как протестировать результат.

Поддержка AngularJS закончилась в январе 2022 года, согласно собственной документации AngularJS, а значит бизнес, всё ещё работающий на приложении на AngularJS, не имеет официального источника патчей безопасности для самого фреймворка. Практичный ответ, это спланированная, обычно поэтапная миграция с AngularJS на современный Angular для бизнеса в Дубае, а не игнорирование риска и не обязательство переписать всё с нуля до того, как выйдет что-то новое. То, что на самом деле ломается, это обычно двусторонняя привязка данных, собственные директивы и связывание внедрения зависимостей, а не простой синтаксис.
Это руководство рассказывает, что на самом деле означает окончание поддержки AngularJS, что обычно ломается при миграции на современный Angular для бизнеса в Дубае, как переходить поэтапно вместо одного большого переписывания, и как правильно протестировать результат до того, как он дойдёт до пользователей.
Ключевые моменты
Собственная страница статуса поддержки версий AngularJS прямо указывает, что поддержка AngularJS закончилась в январе 2022 года, закрыв продлённое окно поддержки, которое команда Angular ранее держала открытым для крупных пользователей. Прекращённая поддержка означает отсутствие дальнейших исправлений ошибок, дальнейших патчей безопасности и постоянного сопровождения от собственной команды фреймворка, для программного обеспечения, которое находится прямо в приложении, обращённом к браузеру и обрабатывающем любые данные, с которыми это приложение работает.
Это отличается от простого устаревания фреймворка. Неподдерживаемый фреймворк не перестаёт работать в день окончания поддержки, и именно поэтому риск легко недооценить. Код на AngularJS продолжает работать в точности как раньше, пока в самом AngularJS или в одной из его теперь неподдерживаемых сторонних зависимостей не будет найдена уязвимость, и в этот момент официального патча не будет, а бизнесу останется либо принять эту незащищённость, либо исправлять её самостоятельно.
Эта статья описывает собственную опубликованную позицию поддержки AngularJS в общих чертах. Это не юридическая консультация и не консультация по соответствию требованиям. Если ваше приложение на AngularJS обрабатывает регулируемые персональные данные, взвесьте риски безопасности от отсутствия поддержки с учётом своих конкретных обязательств вместе с квалифицированным консультантом.
Название действительно вводит в заблуждение. AngularJS, также называемый Angular 1, это фреймворк на JavaScript, построенный вокруг двусторонней привязки данных и собственной системы внедрения зависимостей. Angular, версии 2 и выше, это полное переписывание: другая архитектура, TypeScript по умолчанию вместо обычного JavaScript, и компонентная модель, которая не отображается один в один на контроллеры и директивы AngularJS. Автоматического пути обновления от одного к другому не существует, поэтому переход между ними правильно называть миграцией, а не обновлением.
Это важно для планирования, потому что исключает простой ответ в виде повышения номера версии. Миграция с AngularJS по объёму ближе к переносу приложения на новый фреймворк, чем к обычному обновлению зависимости, и с самого начала её стоит оценивать и закладывать в бюджет именно так.
AngularJS и Angular разделяют название и почти ничего больше. Планируйте переход как миграцию, а не как обновление.
Три области стабильно требуют больше всего реальной работы. Двусторонняя привязка данных, паттерн, вокруг которого AngularJS построил всю свою модель, должна быть заново выражена с помощью собственного синтаксиса привязки и обнаружения изменений Angular, а это настоящее переписывание этой логики, а не поиск и замена. Собственные директивы AngularJS, особенно со сложными функциями связывания или интенсивной работой с DOM, обычно нужно превращать в компоненты или директивы Angular, написанные с нуля под другой API. Связывание внедрения зависимостей меняется между двумя фреймворками достаточно сильно, поэтому сервисы, зарегистрированные одним способом в AngularJS, нужно перерегистрировать, и часто перестраивать, под инжектор Angular.
Четвёртая область, которую легко упустить, это сторонние библиотеки AngularJS без поддерживаемого аналога для Angular. Проверка на раннем этапе, от каких внешних библиотек зависит приложение и есть ли у каждой из них поддерживаемая замена для Angular, помогает не обнаружить блокирующую проблему на середине миграции, а не на этапе первоначальной оценки.
Полное переписывание, с заморозкой новых функций до тех пор, пока всё приложение не будет перестроено на Angular, редко подходит для чего-либо крупнее небольшого приложения, потому что оно останавливает выпуск всего остального бизнесом на весь срок проекта и концентрирует весь риск миграции в одном релизе. Собственные инструменты Angular поддерживают гибридный подход, при котором компоненты AngularJS и Angular работают внутри одного приложения одновременно, общаясь через слой совместимости, поэтому разделы приложения можно переносить по одному.
Практичный порядок, это сначала перенести самостоятельные экраны с низким риском, чтобы проверить подход на практике, а затем двигаться к областям с самой тяжёлой логикой, специфичной для AngularJS, например к сложным директивам и общим сервисам, когда у команды уже есть рабочий ритм. Общие сервисы и маршрутизацию обычно стоит переносить рано, даже если они более рискованны, потому что если оставить их на AngularJS дольше всего, каждый вновь перенесённый экран всё равно будет обращаться к старому, неподдерживаемому коду под собой.
Составьте список каждой собственной директивы, сервиса и сторонней зависимости и отметьте те, у которых нет поддерживаемого аналога для Angular, прежде чем фиксировать сроки.
Запустите AngularJS и Angular бок о бок в одной сборке, чтобы перенесённые и ещё не перенесённые разделы приложения могли сосуществовать во время проекта.
Сначала перенесите более простые самостоятельные экраны, чтобы проверить подход, а затем проработайте общие сервисы и самые тяжёлые собственные директивы.
Убедитесь, что ни один маршрут, сервис или компонент больше не обращается к AngularJS, прежде чем полностью удалить его из сборки, окончательно закрыв незащищённость неподдерживаемого кода.
Перенесённый экран может выглядеть идентично оригиналу и при этом вести себя иначе под капотом, потому что модель обнаружения изменений и привязки данных изменилась, даже там, где разметка осталась прежней. Автоматические тесты, написанные под существующее поведение AngularJS и запущенные заново на перенесённой версии того же экрана на Angular, ловят такие регрессии гораздо надёжнее, чем ручное прохождение по интерфейсу, особенно для валидации форм, условной логики отображения и всего, что зависит от прав пользователя.
Там, где у существующего приложения на AngularJS мало автоматических тестов или их нет вовсе, написать тесты под его текущее поведение перед миграцией раздела стоит дополнительного времени, потому что это превращает вопрос «работает ли это по-прежнему» в вопрос с чётким ответом, а не в субъективное суждение под давлением сроков.
Первая ошибка, это считать миграцию необязательным обслуживанием, которое может подождать более спокойного квартала. Поскольку неподдерживаемое приложение на AngularJS не отказывает заметно в день окончания поддержки, бизнесу в Дубае легко откладывать эту работу снова и снова, пока проблема безопасности не вынудит принять решение в гораздо худших условиях, чем при плановой миграции.
Вторая, это обязательство на полное переписывание без предварительного аудита директив, сервисов и сторонних зависимостей существующего приложения, что обычно даёт сроки, построенные на догадках, а не на реальном объёме работы. Короткий аудит перед началом любой работы по миграции, это небольшая цена против бюджета, который в итоге окажется ошибочным на значительную величину.
Третья, это пропуск тестов исходя из того, что перенесённые экраны выглядят так же, как раньше. Поскольку AngularJS и Angular по-разному обрабатывают обнаружение изменений и привязку данных под капотом, экран, который выглядит неизменным, всё равно может вести себя иначе в пограничных случаях, особенно вокруг валидации форм и условной логики, а именно это автоматические тесты умеют ловить лучше, чем пользователи.
Наша команда разработки на Angular занимается именно проектами миграции с AngularJS, от первоначального аудита существующего приложения через поэтапную гибридную миграцию до полностью современной сборки на Angular. После завершения миграции наши планы обслуживания сайтов удерживают приложение на поддерживаемых зависимостях и дальше, вместо того чтобы позволить ему снова скатиться в то же неподдерживаемое состояние.
Если вы всё ещё решаете, переносить приложение на месте или перестраивать заново, наше руководство как выбрать CMS для бизнеса в ОАЭ и материал чек-лист запуска сайта для бизнеса в Дубае будут полезны вместе с этим материалом.
Прямые ответы
Нет. Собственная документация AngularJS указывает, что официальная поддержка AngularJS закончилась в январе 2022 года, после более раннего продлённого периода поддержки. Дальнейших официальных патчей безопасности не выпускается, поэтому бизнес, всё ещё работающий на AngularJS, использует непропатченный и неподдерживаемый код в приложении, обращённом к браузеру пользователя.
Нет, несмотря на похожее название. AngularJS, который иногда называют Angular 1, и Angular версии 2 и выше, это отдельные фреймворки с разной архитектурой, разными языками по умолчанию, JavaScript против TypeScript, и без прямого пути обновления между ними. Переход между ними, это настоящая миграция, а не обновление версии.
Постепенная миграция обычно возможна и обычно предпочтительна. Собственные гибридные инструменты Angular позволяют AngularJS и современному Angular работать бок о бок в одном приложении во время поэтапной миграции, поэтому функции можно переносить постепенно, а не перестраивать всё приложение до того, как что-либо выйдет в релиз.
Наибольшего объёма реальной работы обычно требуют паттерны двусторонней привязки данных, собственные директивы AngularJS и связывание внедрения зависимостей, потому что изменились сами базовые концепции, а не только синтаксис. Ещё одно частое узкое место, это сторонние библиотеки AngularJS без современного аналога, и это стоит проверить как можно раньше.
Основной риск, это уязвимость безопасности, обнаруженная в самом AngularJS или в одной из его неподдерживаемых зависимостей, без доступного официального патча. Для приложения, обращённого к клиентам и обрабатывающего любые персональные данные, этот риск растёт по мере того, как миграция откладывается, а не остаётся постоянным.
Это полностью зависит от размера и сложности существующего приложения, покрытия тестами и от того, сколько собственных директив и сервисов оно использует. Правильная оценка объёма работ по реальному коду приложения, это более надёжный ответ, чем общая оценка.
Источники
Фиксированная цена в письменном виде
Получили. Мы уже готовим ваше предложение.
В рабочее время вы получите его в течение 45 минут. Проверьте почту, там письмо с подтверждением.
Читать дальше

Cloud API против ссылки click to chat, шаблоны сообщений, согласие, 24-часовое окно и передача человеку, для бизнеса из ОАЭ, встраивающего WhatsApp в свой сайт.
Читать статью
С чем действительно хорошо справляется интранет на SharePoint, где это неверный инструмент, и как на самом деле работают права доступа и контроль документов.
Читать статью
Что стоимость лицензии Sitecore на самом деле даёт бизнесу в Дубае, где WordPress по-настоящему конкурирует, и как сделать выбор.
Читать статью