Как стать автором
Обновить
143.46
Рейтинг

JavaScript *

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

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

Приручаем многопоточность в Node.js (часть 4: координатор против синхронного кода)

Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Tutorial

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

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

Давайте оценим, насколько синхронные операции "роняют" производительность нашего тестового приложения. И узнаем, как можно в разы улучшить ее, "скрестив ужа с ежом", используя выделенный поток-координатор из позапрошлой части статьи совместно с разделяемой памятью.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 906
Комментарии 12

Новости

Что нового можем делать с формами в 2022?

CSS *JavaScript *HTML *
Перевод

Браузеры постоянно добавляют новые функции HTML, JavaScript и CSS. Вот несколько полезных дополнений к работе с формами, которые вы могли пропустить…

Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 5.6K
Комментарии 10

Простые, но приятные и воздушные тени вместе с Vue Box Shadows

Веб-дизайн *CSS *JavaScript *GitHub *VueJS *
Из песочницы

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

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 2.2K
Комментарии 10

Создаём свою библиотеку виджетов на Javascript голыми руками. Часть 0: Классы и модули

JavaScript *Программирование *Алгоритмы *
Tutorial

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

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

Начать реализацию.
Всего голосов 17: ↑9 и ↓8 +1
Просмотры 3K
Комментарии 14

Немного об интеграции Cube в SegmentStream

Разработка веб-сайтов *JavaScript *Программирование *Node.JS *Визуализация данных *

Всем привет. Меня зовут Андрей, я работаю в компании SegmentStream, занимаюсь вопросами архитектуры, инфраструктуры и написанием кода. Сегодня я расскажу как мы адаптировали Cube под наши нужды. В рамках статьи я не буду подробно рассказывать про сам Cube, если вы не знакомы с Cube, то лучше сначала немного почитать про него на официальном сайте cube.dev/docs. Если говорить про SegmentStream, то мы разрабатываем SaaS-платформу для оптимизации рекламных кампаний на основе машинного обучения. Звучит просто, но я рекомендую почитать, там много интересных вещей.

Также, в статье будет достаточное количество кода на TypeScript, который можно при желании не стесняться заимствовать. Я постараюсь оставлять объяснения к нему.

Читать далее
Рейтинг 0
Просмотры 145
Комментарии 0

От Web до Desktop за 2 недели: технология Electron на практике

Блог компании VK JavaScript *Разработка под MacOS *Разработка под Linux *Разработка под Windows *

Если у вас есть компьютер и вы используете его по назначению, то скорее всего вы так или иначе работали с приложениями на Electron (даже если об этом не знали).

Меня зовут Сергей Володин, я руковожу командой разработки VK WorkMail. В этой статье я расскажу, как на основе Electron мы за две недели создали PoC кроссплатформенного настольного приложения Почты, что узнали о технологии и к каким выводам пришли.

Читать далее
Всего голосов 25: ↑21 и ↓4 +17
Просмотры 4K
Комментарии 31

TypeScript в деталях. Часть 3

Блог компании Timeweb Cloud Разработка веб-сайтов *JavaScript *TypeScript *
Перевод


Привет, друзья!


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


Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2.7K
Комментарии 0

Приручаем многопоточность в Node.js (часть 3: разделяемая память, атомарные операции и блокировки)

Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Tutorial

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

Но тут возникает две проблемы:

1. как эффективно доставить данные в обрабатывающий поток

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

В этом нам как раз и помогут два рассматриваемых в этой статье концепта работы с многопоточностью: разделяемая (shared) память и потокобезопасные (thread-safe, Atomics) операции над ней.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 1.4K
Комментарии 3

Рассказываем о пользе и вреде FullStack-фреймворков на примере Meteor.js

Блог компании МойОфис JavaScript *Node.JS *Meteor.JS *

В последнее время появляется довольно много Fullstack-фреймворков, они становятся популярны, их обсуждают.

Если посмотреть на результаты The State of JS 2021 в разделе «Библиотеки — Бэкенд-фреймворки», то минимум 5 из них (возможно, больше) будут как раз FullStack. Отсортировав бэкенд-фреймворки по заинтересованности, в самом верху списка мы снова увидим именно FullStack. Это понятно — они востребованы и лежат в основе разных проектов.

Однако на наш взгляд, область их применимости несколько ограничена. Почему — объясняем под катом.

Читать далее
Всего голосов 63: ↑58 и ↓5 +53
Просмотры 5.6K
Комментарии 17

Сквозь тернии к core-у или процесс компиляции Vue

Блог компании Норд Клан JavaScript *VueJS *

Нео проснулся от бликов вспыхнувшего экрана компьютера. Экран заполняла зеленая полоска прогресса.

– Матрица – испуганно прошептал Нео.

– Александр, вы уснули на работе – прошептал тимлид.

Я взглянул на экран компьютера еще раз. Компиляция Vue была завершена. Я облегченно вздохнул.

Скомпилировать!
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 2.2K
Комментарии 2

Универсальная функция JS по определению хитбоксов у HTML блоков

CSS *JavaScript *HTML *
Tutorial

HitBox — это чаще всего невидимая область или группа областей, которая помогает обнаруживать коснулся ли объект другого объекта, у которого тоже есть свой хитбокс.

В HTML страницах изначально нет понятие хитбокса у блоков, поэтому в этом посте мы сами получим и обработаем их с помощью JS.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 1.6K
Комментарии 9

Простая гравитационная модель в браузере

JavaScript *Астрономия

Нелогичное продолжение моей старой статьи Рисуем интерференционную картину на JavaScript.

Забавы ради появилась идея сделать анимацию движения планет. Чтобы далеко не отходить от станка решено все было сделать в браузере на JavaScript.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 3.3K
Комментарии 9

Децентрализованный поиск для свободного веба

Поисковые технологии *JavaScript *Алгоритмы *Rust *Распределённые системы *

Возможно ли создать поисковую систему, которую тяжело подвергнуть цензуре, влиянию и блокировке?

Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом, одновременно храня поисковый индекс в peer-to-peer системе и имея возможность быстро обновлять поисковый индекс?

Да, это возможно!

Под катом описание архитектуры поискового движка Summa на Rust и набора приемов, позволивших ответить утвердительно на все вопрос

Читать далее
Всего голосов 62: ↑60 и ↓2 +58
Просмотры 6.3K
Комментарии 16

Пять докладов для фронтендера

Блог компании ЮMoney JavaScript *ReactJS *Карьера в IT-индустрии

Всем привет!

Делимся полезными материалами с недавно прошедшего митапа Frontend Mix, где экперты ЮMoney и Альфа Банка рассказали, как они создают продукт. 

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.9K
Комментарии 2

Перевод документации React-redux и проблемы переводчиков

Open source *JavaScript *Профессиональная литература *ReactJS *Учебный процесс в IT

Я решил перевести документацию react-redux, позвал напарника, и мы вместе решали проблемы, связанные с этим. Собственно, о проблемах и решениях пойдёт речь.

Ссылка на перевод

Кратко: поговорили с авторами библиотеки, развернули перевод на github-pages, получили домен, получаем обновления через свой сервер и хотим внимания)

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.1K
Комментарии 3

Control flow with try/catch and Promises

Разработка веб-сайтов *JavaScript *Интерфейсы *ReactJS *

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



Так вот как то раз смотря документацию Relay я наткнулся на мысль, что не понимаю, как работает связка Relay.useLazyLoad и React.Suspense.


В частности не понятно, как именно React.Suspense понимает, что вот прямо сейчас происходит асинхронный запрос и самое время отрисовывать fallback?

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 2.1K
Комментарии 4

Что станет с производительностью, если переборщить с ленивой загрузкой

Блог компании Издательский дом «Питер» Высокая производительность *JavaScript *Программирование *API *
Перевод
Ленивая загрузка – это выжидательный подход к работе с ресурсами, когда загрузка ресурса откладывается до момента, пока он фактически не понадобится. В таком случае при работе с критически важными ресурсами экономятся данные, а также снижается конкуренция за эти данные при работе по сети. Такой прием стал веб-стандартом в 2019 году, а сегодня loading=«lazy» для изображений поддерживается в большинстве крупных браузеров. На словах все отлично, но случается ли перебор с ленивой загрузкой?

В этом посте обобщены и проанализированы данные о прозрачности веба, взятые в открытых источниках, а также проделано импровизированное A/B тестирование. Эта работа помогает понять производительность и степень внедрения нативной ленивой загрузки при работе с картинками. Оказывается, ленивая загрузка может быть поразительно эффективна при избавлении от ненужных картиночных байт, но, если с ней переусердствовать – это плохо скажется на производительности. А именно: наше исследование показывает, что при более жадной загрузке изображений в пределах первичной области видимости – в сочетании с более свободной и ленивой загрузкой остальных – достижима золотая середина. Экономится количество загруженных байт и улучшаются показатели Core Web Vitals.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 5.4K
Комментарии 1

Приручаем многопоточность в Node.js (часть 2: очередь, каналы и координатор)

Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Tutorial

В первой части статьи мы остановились на моменте, когда с помощью распределения задач между потоками по алгоритму Round-robin мы добились-таки ускорения работы приложения за счет многопоточности.

Но вот неприятность: такой алгоритм очень неравномерно нагружает потоки и не полностью утилизирует их возможности - пока кто-то простаивает, другой уже копит очередь. Как это можно обойти?

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 1.8K
Комментарии 6

История о том как я переехал в США и искал тут работу. Офферы от MAANG и не только

JavaScript *ReactJS *IT-эмиграция Карьера в IT-индустрии IT-компании

В феврале 2022 года я наконец переехал в США по рабочей визе О1. Этому предшествовало 2.5 года работы над укреплением кейса, ожидание аппрува.

За 1.5 года до этой даты я начал готовиться к интервью на позицию Front End. Сейчас работаю Senior Front-End Engineer в Roku.

Мотивацией для данного поста и создания телеграмм канала по интервью Front-End инженеров стало отсутсвие подробной информации о том, как же выглядит этот процесс в США.

Читать далее
Всего голосов 39: ↑35 и ↓4 +31
Просмотры 13K
Комментарии 25

Как получить доступ к переменным dotenv (.env) с помощью плагина fastify-env

Высокая производительность *JavaScript *Node.JS *IT-стандарты *MongoDB *
Из песочницы
Перевод

Совсем недавно начал изучать фреймворк Fastify, который почему-то не особо популярен в русскоязычном сегменте интернета. Для хранения переменных конфигурации я всегда использовал файл .env. Для чтения файла .env на Express я привык использовать всем известную библиотеку dotenv, то врем как в экосистеме Fastify есть своя библиотека - @fastify-env.

Я в обратился к документации... и ничего не понял. Я попробовал реализовать то, что там указано, но у меня ничего не вышло. Туториал на youtube от какого-то индуса так же не помог (хотя у индийского программиста всё получилось)...

Сославшись на позднее время суток и усталость мозга, я сдался и начал искать какое-нибудь готовое решение в интернете, и оно быстро нашлось, которое нашлось достаточно быстро. Выяснилось, что я не один сталкиваюсь с такой проблемой и это частая сложность у программистов пришедших в Fastify после Express.

Итак, ниже пойдёт перевод этой статьи от 27.07.2021 г. (обновлено 18.02.2022 г.). Перед прочтением статьи рекомендую потратить 5-10 минут времени на чтение ооочень короткой официальной документации библиотеки @fastify-env.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 1.1K
Комментарии 0

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

Работа