Текущее руководство по стилю было создано ещё в 2016 году, когда только появился переработанный Angular v2.0. Как пишет Джереми Эльбурн (разработчик Angular с 2012 года и технический руководитель проекта), многое изменилось, пора изменить и принятый стиль разработки, поэтому предложен RFC, целями которого являются:
Сделать руководство по стилю короче. Текущее руководство по стилю в печатном виде составляет 52 (!) страницы
Удалить большую часть руководств, которые не имеют прямого отношения к Angular
Сосредоточить руководство больше на выборе стиля, а не на общих рекомендациях фреймворка
Модернизировать руководство, чтобы отразить новые функции и API
Обновить предыдущие рекомендации
В конце октября был открыт сбор заявок на улучшение руководства.
Планируемые основные изменения
-
Удалить общие рекомендации по работоспособности кода, которые не имеют прямого отношения к Angular
Например, «Ограничить файлы 400 строками кода» или «Писать небольшие функции до 75 строк»
Перенести лучшие практики Angular в соответствующую документацию вместо руководства по стилю
-
Перестать рекомендовать добавлять суффикс типа конструкции к большинству имен файлов и классов
Теперь файлы шаблонов Angular заканчиваются на
.ng.html
Все файлы TypeScript, которые импортируются из
@angular/core
пишутся как.ng.ts
или.spec.ng.ts
В руководстве по стилю не будет никаких заявлений о суффиксах
component
,directive
иservice
для имен классов или файлов. Однако документация и примеры не будут использовать эти суффиксы. Схемы Angular CLI продолжат поддерживать настройку этих суффиксов.
Удалить указания, связанные с
NgModule
-
Удалить предложение поместить шаблоны в отдельный файл
Текущее руководство по стилю рекомендует извлекать шаблоны компонентов в отдельный файл шаблона, если он превышает
три строки. Команда больше не считает необходимым строго рекомендовать перемещение шаблонов в отдельный файл. -
Перестать рекомендовать
@HostBinding
и@HostListener
Новые API на основе сигналов для создания компонентов и директив используют функции, а не декораторы, из-за чего
@HostBinding
и@HostListener
несколько не соответствуют этому более современному стилю APIДля сложных компонентов свойство
host
проще смотреть. Гораздо легче рассуждать о классах CSS, когда они все определены в одном месте, а просмотр атрибутов ARIA вместе помогает проверить, что применяются правильные атрибутыHostListener
не поддерживает выражения , что побуждает разработчиков создавать ненужные однострочные методыHostBinding
не допускает статических значений (напримерrole
, иtabindex
), что приводит к ненужным динамическим привязкам
Один из недостатков объекта
host
заключается в том, что Angular пока не выполняет проверку типов выражений вhost
привязках. Команда остро осознает этот пробел и планирует добавить проверку типовhost
в не столь отдаленном будущем. -
Перестать рекомендовать префикс «on» для обработчиков событий
Например,
onClick
илиonSubmit
Джереми уточнил, что angular-eslint
будет обновлен, чтобы гарантировать соответствие правил линтинга новым рекомендациям по стилю. Команда планирует создать необязательные схемы рефакторинга для обновления кода в соответствии с новыми рекомендациями, где это осуществимо. Эти схемы будут опциональными и не будут автоматически запускаться как часть ng update
.
RFC в настоящее время закрыт для отзывов сообщества, поэтому сейчас написать предложение нельзя. Однако окончательная версия руководства не будет готова к выходу Angular 19 и выйдет немного позже.
Помимо всего вышеперечисленного, команда Angular планирует двигаться вперёд с остальными изменениями стиля. Это не означает, что пересмотренное руководство по стилю останется неизменным навечно — в дальнейшем они попытаются вносить более мелкие, более постепенные обновления в руководство по стилю, продолжая улучшать фреймворк.