Текущее руководство по стилю было создано ещё в 2016 году, когда только появился переработанный Angular v2.0. Как пишет Джереми Эльбурн (разработчик Angular с 2012 года и технический руководитель проекта), многое изменилось, пора изменить и принятый стиль разработки, поэтому предложен RFC, целями которого являются:

  • Сделать руководство по стилю короче. Текущее руководство по стилю в печатном виде составляет 52 (!) страницы

  • Удалить большую часть руководств, которые не имеют прямого отношения к Angular

  • Сосредоточить руководство больше на выборе стиля, а не на общих рекомендациях фреймворка

  • Модернизировать руководство, чтобы отразить новые функции и API

  • Обновить предыдущие рекомендации

В конце октября был открыт сбор заявок на улучшение руководства.

Планируемые основные изменения

  1. Удалить общие рекомендации по работоспособности кода, которые не имеют прямого отношения к Angular

    Например, «Ограничить файлы 400 строками кода» или «Писать небольшие функции до 75 строк»

  2. Перенести лучшие практики Angular в соответствующую документацию вместо руководства по стилю

  3. Перестать рекомендовать добавлять суффикс типа конструкции к большинству имен файлов и классов

    • Теперь файлы шаблонов Angular заканчиваются на.ng.html

    • Все файлы TypeScript, которые импортируются из @angular/core пишутся как .ng.tsили.spec.ng.ts

    • В руководстве по стилю не будет никаких заявлений о суффиксах component, directive и service для имен классов или файлов. Однако документация и примеры не будут использовать эти суффиксы. Схемы Angular CLI продолжат поддерживать настройку этих суффиксов.

  4. Удалить указания, связанные с NgModule

  5. Удалить предложение поместить шаблоны в отдельный файл

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

  6. Перестать рекомендовать @HostBinding и @HostListener

    • Новые API на основе сигналов для создания компонентов и директив используют функции, а не декораторы, из-за чего @HostBinding и @HostListener несколько не соответствуют этому более современному стилю API

    • Для сложных компонентов свойство host проще смотреть. Гораздо легче рассуждать о классах CSS, когда они все определены в одном месте, а просмотр атрибутов ARIA вместе помогает проверить, что применяются правильные атрибуты

    • HostListenerне поддерживает выражения , что побуждает разработчиков создавать ненужные однострочные методы

    • HostBindingне допускает статических значений (например role, и tabindex), что приводит к ненужным динамическим привязкам

    Один из недостатков объекта hostзаключается в том, что Angular пока не выполняет проверку типов выражений в hostпривязках. Команда остро осознает этот пробел и планирует добавить проверку типов hostв не столь отдаленном будущем.

  7. Перестать рекомендовать префикс «on» для обработчиков событий

    Например, onClick или onSubmit

Джереми уточнил, что angular-eslint будет обновлен, чтобы гарантировать соответствие правил линтинга новым рекомендациям по стилю. Команда планирует создать необязательные схемы рефакторинга для обновления кода в соответствии с новыми рекомендациями, где это осуществимо. Эти схемы будут опциональными и не будут автоматически запускаться как часть ng update.

RFC в настоящее время закрыт для отзывов сообщества, поэтому сейчас написать предложение нельзя. Однако окончательная версия руководства не будет готова к выходу Angular 19 и выйдет немного позже.

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

Комментарии (0)