Новое руководство по стилю Angular
- суббота, 18 января 2025 г. в 00:00:03
Текущее руководство по стилю было создано ещё в 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 планирует двигаться вперёд с остальными изменениями стиля. Это не означает, что пересмотренное руководство по стилю останется неизменным навечно — в дальнейшем они попытаются вносить более мелкие, более постепенные обновления в руководство по стилю, продолжая улучшать фреймворк.