Angular Fanatic
1.33K subscribers
44 photos
2 videos
3 files
223 links
Ангуляр в каждый проект!
__________
Канал на паузе
Download Telegram
Часто спрашивают про то как делать хорошее Angular приложение, какую архитектуру заложить. Тут Manfred Steyer опубликовал бесплатно свою книгу Enterprise Angular
Так же внутри есть подписка на всякие онлайн воркшопы

https://www.angulararchitects.io/book
Forwarded from Пятиминутка Angular
Доступны видео с онлайн конференции ng-conf: Hardwired проходившей с 1 по 3 апреля. Ivy, Angular-cli Builders, Bazel и многое другое ждет вас.

😭Правда есть нюанс, само видео почему-то выложено в Vimeo и доступно только после регистрации на сайте https://videos.ng-conf.org/videos/day-1-keynote
Вот и Angular добрался до deno. A именно, dev_server.

Как он работает?
При обращении на index.html, запрашивается main.ts,

Он же транспаилится (в соответствии с заданным tsconfig), и выдает готовый js код по этому url.

Что с зависимостями?
А вот тут конечно приходит на помощь jspm, cdn.pika, unpkg. Поэтому вам придется указать соответствующий importmap.

В итоге у вас на выходе JIT как оно и было во времена systemjs v0.. и 5мб кода.
Из плюсов, вам не придется ждать пока произойдет dev сборка у вас в консоли.

Но тут конечно же не учтены различные препроцессоры, о которых сейчас большинство из нас даже не задумывается, используя Angular CLI

Как попробовать:

deno run --allow-net --allow-read --allow-write --unstable https://deno.land/x/dev_server/mod.ts --template angular


(Предварительно должен быть установлен Deno не ниже v0.42.0)
После двух лет разработки, появился вот такой замечательный портал, соцсеть, по Angular.

Уже сейчас вы там можете найти себе бесплатные курсы по Angular, и более плотно пообщаться с Angular GDE, Coloborator и Core team.

А так же подключиться онлайн к различным митапам и воркшопам.

А еще мы там завели специальный уголок для подкаста ngRuAir. Обязательно присоединяйтесь, чтобы быть в курсе событий, ведь теперь круг докладчиков ngRuAir станет гораздо больше.

https://www.angularnation.net/

Внимание, после регистрации нужно дождаться апрува.
Буквально менее чем через 2 часа начнется бесплатная онлайн конференция ngVikings

Первый день (Видео)
Второй день (Видео)

Обязательно регистрируйтесь чтобы поучаствовать в живую, позадавать вопросы. Если еще не успели.
Сегодня начинается 76я встреча TC39 и Серёжа как всегда будет вещать про работу TC39 в своем канале https://t.me/juliarderity .

Вам возможно будет интересна судьба async-context аля zone.js.

Ведь ранее это предложение было заброшено хотя Misko Hevery и Jia Li проявляли активный интерес. Domenic прекратил свое участие в TC39

Кстати, в прошлом году zone.js переехали окончательно в Angular, как отдельный пакет конечно же.
Уже через несколько минут начинается Angular Minsk.

Сегодня в программе:

🤖 Автоматизация разработки с Angular Schematics | Yanis Seilis
(Все про ng add, ng update, etc и использование ng schematics для других фреймворков)

Ангулар может сожрать ваше время | Oleksandr Poshtaruk
(Angular tips and tricks)

> Трансляция
На прошлой неделе команда Angular объявила что начнет, наконец то, заниматься типизацией форм. И вот буквально вчера все предложения по типизации были объедены в отдельный milestone
Каждое предложение будут рассматривать отдельно, сроков конечно же не дали.

Изменения затронут: ControlValueAccessor, AbstractControl, formState и т.д.
🎉 Состоялся релиз Angular 10.0.0

- Updating to Angular version 10
- Deprecated APIs and features

И традиционный пост от Stephen Fluin в Angular blog:
Version 10 of Angular Now Available

ng update @angular/core @angular/cli
В Deno сообществе почему то решили что для SSR удобнее всего брать React, и конечно внедрили JSX как часть Deno.core. И даже появились фреймворки на этой основе. Angular остался немного в сторонке в очередной раз =)

Поэтому решил совместить deno + angular: Angular Deno Renderer Engine.
Сейчас он больше готов для использования как любой другой template engine, например как тот же Handlebars, ejs и тд.

Сравнение Angular Universal на NodeJS и Deno по времени рендеринга (хотя это практически ничего и не значит):

Deno 1.1.2 Angular JIT: 3-8ms
Node 12.18.2 Angular JIT: 15-24ms
Node 12.18.2 Angular AOT: 5-13ms

Если у сообщества Angular будет достаточный интерес к этому проекту, то далее буду внедрять:
- Transfer State, (чтобы был прям настоящий SSR)
- Compiler на Deno, для AOT
- Поддержка различных препроцессоров
- Пререндер как в Scully
- HMR

https://github.com/alosaur/angular_deno
Сравнение Angular Universal 9 и 10 по потреблению памяти

Так же Minko Gechev заявил что в Angular 11 будут дополнительные улучшения производительности.
Nrwl представила утилиту которая позволит пересобирать проект быстрее. Суть в том что билды складываются в кэш. Бесплатно для использования в локалке, и так же есть возможность закидывать в cloud чтобы шарить билды между командой. (5часов сборки в месяц бесплатно).

Подробнее на сайте: https://nx.app/angular-cli-faster

npx make-angular-cli-faster

Ну а еще Виктор Савкин опубликовал, что они хотят сделать в Nx 11.
На страницах angular.io появилась страница с roadmap (https://angular.io/guide/roadmap)
Коротко:
- решение задач в backlog
- typescript 4.0
- улучшение e2e
- ivy для либ
- rxjs 7
- language service под ivy
- внедрить больше angular/cdk/test harness
- поддержка trusted types
- больше MDC web в Angular Material
- strict types angular/forms
- webpack 5
- optional zone.js
- избавление от старого view engine
- Angular DevTools
- Optional NgModules
- миграция в eslint

https://blog.angular.io/a-roadmap-for-angular-1b4fa996a771
LTO, ngl, Angular Linker, и еще немного информации по roadmap от Angular Team

Коротко:
- Angular Package Format не нужен, и metadata.json c ним же
- ngcc только в период совместимости Ivy и View Engine
- DI в либах как public api (условно)
- все больше поддержки тем у кого нет angular cli
- angular linker на передовой, как плагин babel в первую очередь
- качаем из npm и сразу можем запустить в JIT
- быстрая сборка / пересборка

Еще больше инфы: Ivy Library Compilation - Conceptual Design Doc
Устранение ресурсов, блокирующих рендеринг в Angular

В разделе «Возможности» вашего отчета Lighthouse перечислены все URL-адреса, блокирующие отрисовку вашей страницы.

Цель состоит в том, чтобы уменьшить влияние этих URL-адресов, блокирующих рендеринг, путем встраивания критических ресурсов в сам html, откладывания некритических ресурсов и удаления всего неиспользуемого.

Какие URL помечаются как блокирующий рендеринг?

<script>

- если он находится в заголовке
- если он не имеет аттрибут defer или async

<link rel="stylesheet">

- если нет атрибута disabled
- не имеет атрибута media соответствующий устройству пользователя

Если даже ваш внешний css код будет весить 0кб браузер все равно потратит на него время.

Все для того чтобы увеличить результаты FCP (first contentful paint)

Именно над этим хотят сейчас поработать в Angular CLI.

- Загрузку CSS асинхронно в SPA
- встраивания критических CSS в html
- Inline Google Fonts and Icons.

До:

<link rel="stylesheet" href="styles.css">

После:

<link rel="stylesheet" href="styles.css" media="only x" onload="this.media='all'">
<noscript><link rel="stylesheet" href="styles.css"></noscript>

Как же будут выбирать критически важные CSS?

Пока нет достойного решения который бы устраивал в разных режимах, SSR и CSR. Поэтому по поводу идут еще обсуждения, и рассматриваются различные webpack плагины, и даже есть альтернатива всему этому чтобы включить в рутовый AppComponent styles.css. Но болью в этом случае будет с SSR, так как все глобальные стили будут внедрены в html.

Обсудить предложение в issue
🎂 Angular 🎂

15 сентября 2016г. состоялся официальный релиз Angular

https://github.com/angular/angular/releases/tag/2.0.0
ngast - удобный API парсера для проектов Angular, недавно обновился на ngtsc (TraitCompiler).

Поэтому пришло время обновить тулзу для подсчета Angular сущностей.
В основе ngast + guessjs


Измерить свой проект можно запустив:
npx ng-app-counter -p ./project/tsconfig.app.json
Решил что тут снова будут обзоры статей, видео, подкастов и мои коментарии к ним.

Статья: Nx: On Bazel Support

Computation Caching

Основной фишкой внедрения Bazel в Nx была реализация распределенной сборки, но эта задача была полностью решена на стороне Nx, поэтому Bazel в Nx не будет.

Bazel and Angular

Действительно после ухода Alex Eagle из Google, больше нет никого кто бы работал с rules_nodejs из Google, Angular в частности, и поэтому как считает Victor Savkin, Bazel team не будут уделять большое внимание на частные проблемы при интеграции с Angular. Считаю что это не так, поскольку Bazel(rules_nodejs) для сборки используется в самом Angular, и других крупных проектах: TensorflowJs, Selenium, NgRX, и тд.

Кстати, недавно появился rules_python.

Bazel or Nx

Bazel хорошая технология, но плохо работает с js тулами. В статье много отсылок к тому что с Nx можно собирать что угодно, и сделать какой угодно сборщик зная в основном только TS.