Обновить
21.45

Angular *

JavaScript-фреймворк

Сначала показывать
Порог рейтинга
Уровень сложности

Angular на стероидах: наращиваем производительность при помощи WebAssembly

Время на прочтение9 мин
Охват и читатели5K
В этом посте продемонстрировано, как с лёгкостью использовать WebAssembly внутри приложения, написанного на Angular. Иногда в приложении на Angular требуется выполнить задачу, которая в JavaScript завершается не слишком быстро. Конечно, можно переписать алгоритм на другом языке, например, AssemblyScript и Rust — и код станет эффективнее. Затем можно скомпилировать получившиеся фрагменты кода в файле WASM и потоком передать двоичные данные в приложение, чтобы можно было вызывать из него функции WASM. Бывает и так, что разработчику не удаётся найти в реестре NPM опенсорсные библиотеки, нужные для решения задачи. В таком случае можно написать пакет не на JS, а на каком-нибудь другом языке, затем скомпилировать этот пакет в WASM и опубликовать код WASM в реестре NPM. Angular-разработчики устанавливают новый пакет как зависимость и выполняют WASM-функции внутри приложения.

В следующем демонстрационном примере я напишу на AssemblyScript несколько функций для работы с простыми числами, а затем опубликую файл индекса в формате WASM. Затем скопирую файл WASM в приложение Angular, потоком отправлю двоичные данные через WebAssembly API и, наконец, стану вызывать эти функции, чтобы с их помощью выполнять различные действия над простыми числами.
Читать дальше →

Интеграция React и AngularJS через Webpack Module Federation

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели5.1K

Переходите с AngularJS на React без стресса и суеты. В этой статье я поделюсь с вами способом, как оживить ваш проект, плавно встроив элементы React в структуру, построенную на добром старом AngularJS. Мы все знаем, что рефакторинг или полная смена фреймворка может пугать, особенно когда вложены годы труда. Но не волнуйтесь, я покажу, как использовать микрофронтенды и Module Federation для того, чтобы дать вашему приложению свежее дыхание, сохраняя при этом все то хорошее, что было накоплено за годы.

Читать далее

Правила хорошего тона на Angular

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели5.1K

0.1 Ограничения на длину файлов: 300 (исключая импорты). Если выходит больше - разбивать и использовать импортирование.

0.1.1 Ограничение на длину метода: 150 строк.

0.2 Читабельность важна: вложенность кода - не более 4 пунктов (Flat is better than nested), включая функциональную вложенность. Лучше используйте цепочки вызовов.

0.3 Не повторяйтесь. Код должен быть реюзабельным - то есть путем импортирования, а не путем копирования.

0.4 Ваш случай не настолько особенный, чтобы нарушать эти правила (Special cases aren't special enough to break the rules).

0.5 Пишите декларативный код. Не совмещайте императивный код и декларативный в одном файле.

0.6 Простой код лучше комплексного (принцип KISS)

Обоснованная критика приветствуется.

Читать далее

Использование возможностей Angular. Часть 1

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.7K

Добрый день. Меня зовут Юрик и я angular-разработчик. Остальные в комнате у психиатра:

- Здравствуй Юрик, мы рады тебя видеть.

Читать далее

Причины говнокода во фронтенде. Мнение мимокрокодила

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели38K

Мне не раз попадались такие проекты, от кода которых берет оторопь. Такое чувство, что сами авторы не смогут объяснить - почему у них все выглядит именно так. В этот момент у меня возникает вопрос: как так получилось? Если вас он тоже волнует, то могу пожелать лишь приятного чтения.

Читать

Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 2

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели50K

Всем привет! В этой статье (части) рассмотрим вопросы, связанные с великим и могучим TypeScript'ом, которые задают на собеседованиях. Если вы не читали прошлую статью, где описаны вопросы по JS, вот ссылочка. Пожалуйста, не заучивайте вопросы, это вредно для вашего здоровья!)

Читать далее

Пишем веб-приложение вместе с ChatGPT и Stable Diffusion

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели20K

Всем привет! Ни для кого не секрет, что ChatGPT 4, получившая развитие в прошлом году, уже активно внедряется в обиход разработчиков. Во время новогодних каникул я решил испытать новинку, и попробовать разработать совместно с ботом небольшое веб-приложение на базе Angular 17. Что из этого вышло, читайте далее.

Читать далее

Как создать веб-приложение на базе Telegram Mini Apps

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели76K

Telegram Mini Apps — отличная возможность выйти за пределы обычных ботов и попробовать себя в создании более интересных интерфейсов приложений. На базе этого инструмента можно создать магазин или даже сервис для заказа шавермы.

В этой статье познакомимся с Telegram Mini Apps и попробуем создать простое приложение. Сделаем это с использованием обновленного Angular 17 и telegraf, а в конце — задеплоим проект на виртуальный сервер.
Читать дальше →

Фронтенд-дайджест 2023

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели5.9K

Привет, Хабр! Я Софья, фронтенд-разработчик в одном из департаментов Тинькофф. Из года в год наша большая фронтенд-команда растет, ставит эксперименты и обменивается опытом. Уходящий год богат на достижения, поэтому мы решили поделиться статьями, докладами и находками для командной работы. Несем все самое полезное, что получилось запустить, внедрить, написать и подготовить.

Открыть дайджест

Taiga UI: итоги 2023 года

Время на прочтение10 мин
Охват и читатели11K

Заканчиваются рабочие дни уходящего года, а значит, самое время подводить итоги наших трудов. За 2023 год у проекта Taiga UI появилось более пятидесяти релизов, больше двух тысяч вмерженных PR-ов и свыше пятисот закрытых issue.

Taiga UI — это огромный Angular UI Kit, который активно используется в сотне продуктов компании Тинькофф и популярен за ее пределами. Разработка проекта много лет идет в Open Source, собирая свою аудиторию по всему миру.

Продолжу ежегодную традицию и напомню пользователям библиотек о самых интересных изменениях за последний год.

Читать далее

План «Барбаросса» от Vue.js

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели16K

После выхода крайней и достаточно революционной в плане добавления Composition API версии Vue 3.0 более чем три года назад, каких-либо серьезных изменений от команды Evan You в самом фреймворке больше не было. Только стандартные багфиксы, оптимизация и робкие попытки стать с TypeScript ближе. Основное внимание переключилось на экосистему - Vite, Nuxt, VitePress, Pinia и другие.

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

Читать далее

Динамическое создание компонентов Angular на лету

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

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

Углубиться

Улучшаем производительность с RxJS

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.3K

Всем привет! Сегодня я хочу поделиться приемами улучшения производительности фронтенда путем оптимизации RxJS стримов.

Читать далее

Ближайшие события

Встречаем Angular 17

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели32K

В прошлом месяце исполнилось 13 лет с момента появления "красного щита" Angular. AngularJS стал отправной точкой для новой волны JavaScript-фреймворков, появившихся для поддержки растущей потребности в богатом веб-опыте. Сегодня с новым внешним видом и набором перспективных функций мы ведем всех в будущее с версией 17, устанавливая новые стандарты производительности и удобства для разработчиков.

Читать далее

Невероятно гибкие и переиспользуемые UI контролы для Angular

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.1K

В данной статья я расскажу о том как создавать гибкие UI контролы в несколько строк кода, которые легко расширяются, кастомизируются и поддерживаются!

Читать далее

О «критически важных» обновлениях Angular 17

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6K

Рассуждения о мудрости разработчиков массовых продуктов. Должно ли ее быть больше чем у обычных людей вроде наc с вами? Чужды ли им понятия «неуместность», «вкусовщина», «неоправданность» и «недальновидность». Слышали ли они о важности обратной совместимости? Мнение скромного Angular‑разработчика.

Читать далее

React vs Vue vs Angular. Часть 3

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели13K

Управление глобальным состоянием

В прошлой части мы рассмотрели методологии оптимизации и реюзабельности логики, а так же подход к роутингу каждого фреймворка. Однако давайте теперь переключим наше внимание на другой важный аспект - управление глобальным состоянием. В этом разделе на примере Angular, React и Vue мы рассмотрим уникальные стратегии, используемые этими фреймворками для работы с глобальными состояниями. По мере изучения этих подходов мы узнаем, как разработчики эффективно решают сложную задачу поддержания синхронизации данных в приложениях.

Читать далее

Как выстроить удобные процессы в работе с монорепой

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.3K

Как настроить общее рабочее пространство для команды без запуска сборки в watch-режиме и ожидания старта dev-сервера, чтобы подхватить изменения? Для этого нужно удобным для всех образом настроить переиспользование кода внутри монорепы.

Нам поможет Андрей Кочеров, старший разработчик интерфейсов в Яндекс Такси и техлид фронтэнд команды партнёрских продуктов. Он расскажет как сделать готовый к работе репозиторий сразу после чекаута, на основе методологии Trunk Based Development.

Читать далее

Fusor vs React

Время на прочтение2 мин
Охват и читатели5.8K

Mortal Kombat - Vs Screen (MKX version) Fan art by LukenStruken CC BY-SA 3.0

Моя работа состоит в написании кода на React. Несмотря на то, что мне нравится React, при разработке на нем я столкнулся с некоторыми его недостатками. В связи с этим, я решил создать свою библиотеку, Fusor, чтобы исправить эти недостатки и вот что из этого получилось.

Читать далее

Внедрение pet-проекта в реальный бизнес или как в одиночку написать ERP-систему для общепита

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.9K

Всем добра! Данную статью меня побудило написать сильное желание, во-первых, зафиксировать некоторые результаты своего профессионального развития и личного опыта помимо основной работы, а также впервые на столь широкой сцене как Хабр, рассказать вам о нюансах развития своего небольшого pet-проекта, который впоследствии стал частью автоматизации сети заведений. Чтобы статья несла практический смысл и не выглядела как реклама, в ней не будут упомянуты ни название проекта, ни ссылки на его сайт и прочие сервисы.

Читать далее