Как стать автором
Поиск
Написать публикацию
Обновить
159.16

JavaScript *

Прототипно-ориентированный язык программирования

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

Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.5K

Привет! Я Незар, фронтенд-разработчик Т-Банка в одном из продуктов Т-Бизнеса. Наша команда использует Angular, и мы следим за всеми изменениями, которые с ним происходят.

В статье разберу, как Angular эволюционировал от Zone.js к Zoneless-приложениям с современным реактивным подходом Signal API и почему это стало ключевым шагом для повышения производительности и упрощения реактивного программирования. 

На примерах и замерах производительности посмотрим, как переход к Zoneless-подходу с Signal API позволяет сократить избыточные перерисовки, ускорить отклик приложения и сделать код значительно чище и предсказуемее. Сделаем Angular-приложения быстрее и проще, добро пожаловать под кат!

Читать далее

Автоматизация для всех: как n8n революционизирует рабочие процессы в бизнесе

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

До 2022 года я думал, что автоматизация — это удел только крупных компаний. Но в 2022 году я открыл для себя n8n, и всё изменилось. Теперь я автоматизирую рутинную работу, отчёты и даже целые бизнес-процессы — иногда менее чем за 30 минут. Вот как это работает, что меня удивило и что вы можете попробовать уже сегодня.

Читать далее

ThreeJs — основы

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

Привет, хочу рассказать основу о том как быстро начать пилить продвинутые приложения с 3d моделями.

Для того чтобы лучше понимать контекст последующего материала ожидается что у тебя уже есть знания js, а также react.

Читать далее

Steroids — ещё один фронтенд фреймворк на базе React?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров4.9K

На старте проекта обычно встает вопрос о выборе готовой ui-библиотеки для решения шаблонных задач, таких как создание форм, инпутов, кнопок и других компонентов. Количество готовых ui-библиотек для React так стремительно растет, что уже сложно остановить свой выбор на какой либо из них. Зато в таком разнообразии каждый может найти библиотеку, подходящую под его задачи. В этой статье хочется рассказать о фреймворке Steroids, который разработан и поддерживается в нашей компании.

Изначально мы не планировали создавать фреймворк, а просто собирали удачные решения рутинных задач. Получился набор полезных утилит и мини-библиотек, который позволял нам работать быстрее. Мы постепенно добавляли в него новые элементы, он рос и видоизменялся, и в итоге вырос в полноценный фреймворк Steroids.

Читать далее

Async pipe нечистый

Уровень сложностиПростой
Время на прочтение37 мин
Количество просмотров3K

Всем привет, меня зовут Максим Иванов. В основном я пишу обзоры и русифицирую статьи для начинающих разработчиков. Я очень люблю Angular и иногда рассказывать что-то о нем. Если вы только начинаете свой путь в изучении этого фреймворка, надеюсь эта статья будет вам полезной. Cегодня мы с вами поговорим о том, что такое пайпы (pipes), как они устроены и что не так с одним из самых популярных и доступных из коробки пайпов, таких как async. Желаю приятного прочтения и хорошего настроения. Поехали!

Читать далее

От React всё так же веет безумием, но все об этом молчат

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров48K

Недавно работал над хобби-проектом, который описал в другой своей статье. В процессе его реализации у меня возникло желание чиркануть пару абзацев о том, почему React — отстой, но в итоге я не смог удержаться и решил высказаться по полной…

Так что вот она полноценная статья, ещё больше той, из которой она родилась. Здесь я подробно опишу все проблемы React и поясню, почему это может не быть виной разработчиков.

Читать далее

Vue: Composables и TS это вам не Mixins и JS. С ними сложнее

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров3.4K

Пришел к хитрому паттерну. Делюсь.

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

Поехали!

Как я подружил Yandex Cloud и Gemini API без миграции на зарубежные сервера

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

Когда я начинал писать Node.js-сервис, который должен был интегрироваться с LLM-моделью, я уже понимал, что доступ к некоторым зарубежным API из России может быть проблемой. Именно поэтому моим первоначальным выбором была модель от Yandex Cloud — Yandex GPT.

Но после того как я и мои товарищи немного пообщались с ней, стало ясно, что Yandex GPT нам не подходит. Её ответы были слишком неестественными, «нечеловеческими» — особенно это было заметно в нашем конкретном кейсе. Поэтому пришлось искать альтернативу среди зарубежных моделей. Вариант обучать собственную модель отпал сразу — опыта у меня в этом не было, а искать кого-то, кто сможет это сделать, не было времени, так как хотелось быстро запустить. Так выбор пал на Gemini API от Google, о котором было много позитивных отзывов.

Однако это означало, что нужно было как-то решить проблему доступа из России, ведь мой сервис размещён именно в Yandex Cloud.

Читать далее

Эксперты шокированы: язык программирования на основе кликбейтных заголовков

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров13K

Кликбейтные заголовки, давайте признаемся, надоели всем. Сейчас они встречаются даже на Хабре. Программист Линус Ли, судя по всему, испытывал те же чувства и решил действовать по принципу «не можешь победить — доведи до крайности». В результате он создал Tabloid — полноценный язык программирования, где весь код пишется в стиле сенсационных заголовков.

Представьте язык, где вместо привычного function hello() вы пишете DISCOVER HOW TO HELLO WITH (англ. «узнайте, как сделать... с помощью»), а вместо return используете SHOCKING DEVELOPMENT! (англ. «шокирующее развитие событий»). А еще каждый листинг должен заканчиваться фразой PLEASE LIKE AND SUBSCRIBE.

Звучит как странная шутка? Да, но этот язык реально работает, имеет собственный интерпретатор и позволяет писать полноценные программы.

СЕНЬОРЫ СКРЫВАЛИ ЭТОТ ЯЗЫК….

Обходим CSP nonce через дисковый кеш браузера

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

Эта статья описывает изощренную технику обхода Content Security Policy (CSP) на основе nonce-значений через эксплуатацию механизмов кеширования браузера. Автор демонстрирует, как комбинация CSS-инъекций, CSRF-атак и особенностей работы bfcache и дискового кеша может привести к выполнению произвольного JavaScript-кода даже при наличии строгой CSP.

Читать далее

Как я перенёс задачи из Яндекс.Трекера в JIRA с сохранением всего — от чек-листов до ссылок в комментариях

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров774

Когда руководстворешило перевести проектный трекинг с Яндекс.Трекера на JIRA, мы быстро поняли: простого «экспорта‑импорта» не будет. Ни одно из готовых решений не справлялось с задачей полноценно — а именно с сохранением всей истории, авторства, чек‑листов, вложений, связей, ссылок на другие задачи и пользователей, и даже оригинальной нумерации задач из Яндекс.Трекера.

Что ж, вызов принят. Ниже расскажу, как я за 3 месяца написал систему, которая перенесла всё — до последней запятой в комментарии.

Читать далее

Интерактивная карта Республики Коми с отображением социально-экономических показателей

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

Делюсь опытом как я сделал интерактивную карту Республики Коми: от QGIS и D3.js до графиков и API Wikidata. Карта визуализирует социально‑экономические показатели районов и населённых пунктов, поддерживает масштабирование, позволяет переключать слои, выбирать тёмную и светлую темы, а также получать справочную информацию об объектах.

Читать далее

Быстрый старт: пишем фреймворк для фронтенда

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6K

Привет, Хабр. Меня зовут Марат Исаев. В этой статье я кратко рассмотрю устройство самописного микрофреймворка и его применение для написания приложения-планировщика, чтобы вы могли написать свой фреймворк, для своих приложений. Подчеркну: статья образовательная и не охватывает enterprise-разработку.

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

Читать далее

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

Организация селекторов для тестирования

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров844

Зачастую обычные веб-приложения не покрывают E2E тестами, однако, когда разговор заходит об административных панелях, формах биллинга и разнообразных конструкторах, то данная потребность быстро возникает.

В этой статье мы рассмотрим, как правильно организовать селекторы для тестирования веб-приложений.

🧪🧪🧪 TEST_ID="Читать далее" 🧪🧪🧪

Сотворение мира за 20 минут на JavaScript, или минималистичная модель эволюции

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

Впервые про моделирование эволюции я прочитал в 13 лет в статье «Жить и умереть в компьютере» (Техника — Молодежи, №5 1993 год). Она произвела на меня столь неизгладимое впечатление, что я тут же загорелся идеей создать что-то подобное.

Однако никак не удавалось проработать законы мира. Как организмы будут «смотреть» на окружающий мир? Как общаться? Как атаковать? Как кушать друг друга? Наконец, как будет устроен их «мозг»? Реализовать виртуальную машину, как в статье из журнала, или использовать что-нибудь проще, типа конечного автомата или схемы из блоков И-НЕ?

Короче, муки творчества да и, что уж там греха таить, ограниченные технические навыки, не позволили довести идею до ума. Я вернулся к ней уже в зрелом возрасте, лишенный юношеского максимализма и перфекционизма. Решил: раз сделать навороченную модель не получается, стоит начать с чего-то более простого. А лень и остатки перфекционизма в организме прошептали: с чего-то максимально простого.

Запустить эволюцию

Слайдер с бесконечной плавной прокруткой на JavaScript

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

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

Приблизительный результат следующий:

Читать далее

Нюансы кроссплатформенной разработки на Vue и React

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров921

Этот документ — не просто список, а выжимка боли, шишек и неожиданных открытий, с которыми сталкивается почти каждый фронтендер. Неважно, Vue ты выбрал или React, если твое приложение должно работать в браузере на айфоне пятилетней давности — добро пожаловать в клуб. Здесь будет всё: от странностей с Safari до неожиданных проблем с синтетическими событиями.

Нюансы мобильных браузеров и PWA

iOS Safari не поддерживает Notification API без установки PWA

Проблема: На iOS ты не можешь просто вызвать new Notification(...) — API будет недоступно, пока пользователь не установит сайт как PWA на домашний экран. Так же, в Safari просто не будет доступен класс Notification, браузер его просто не имплиментирует на этапе браузерного окна.

Решение:

- Чтобы проверить можно ли использовать уведомления можно написать следующую проверку:

typeof window !== 'undefined' && 'Notification' in window;

🔗 [MDN — Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API)

🔗 [WebKit — Push Notifications](https://webkit.org/blog/12945/meet-web-push-on-ios/)

Читать далее

Введение в WebRTC

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

WebRTC - это технология, которая позволяет браузерам и мобильным приложениям обмениваться аудио и видео в реальном времени без необходимости использования промежуточных серверов. Это делает WebRTC идеальным выбором для приложений, которым необходим функционал видеозвонков, стриминга, и аудиовызовов.

Читать 📞📞📞

Реактивные системы: возможно ли отслеживать зависимости в асинхронном коде?

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров1.7K

В реактивных системах существуют специальные функции, такие как watchEffect во Vue или autorun в MobX, которые умеют автоматически отслеживать зависимости и перезапускать «эффект» при их изменении. Принцип их работы следующий:

Читать далее

Прощай, reCAPTCHA! Как я защитил формы входа с помощью бесплатной и невидимой CAPTCHA от Cloudflare

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

Привет, Хабр! На связи разработчик Peakline — аналитической платформы для Strava. Сегодня я хочу поделиться опытом внедрения Cloudflare Turnstile в веб-приложение на FastAPI.

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

Читать далее

Вклад авторов