Обновить
512K+

Веб-разработка *

Делаем веб лучше

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

Многопоточность на фронте: абсурд или прекрасное архитектурное решение?

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

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

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

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

Читать далее

Проверяем Архитектурные стили на движке Factorio (часть 2, SOA)

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

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

Welcome!

Сегодня мы рассмотрим SOA и даже сравним его с Monolith-архитектурой!

Читать далее...

Почему Твиттеру нужны 1000 микросервисов

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

В последнее время на Twitter чуть ли не из каждого утюга льется критика(1,2,3) по поводу оверинжиниринга. Даже некоторые вполне технически подкованные люди заявляют, что Твиттер можно было бы поддерживать вообще одному - мол, "подумаешь, твиты хостить, 80% всех микросервисов ему не нужны".

Читать далее

Что такое Shared UI, как он нам помог и причём тут микросервисы

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

Всем привет! Меня зовут Дима, я frontend-разработчик в Альфа-Банке. Сегодня я расскажу про Shared UI, что это такое и как мы пришли к созданию такого сервиса в интернет-банке, что это такое, как мы вообще придумали такой сервис.

Читать далее

Настройка Webpack 5

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

Пошаговое руководство по настройке сборщика Webpack 5 совместно с такими инструментами как Pug, Sass, JavaScript, React и Markdown.

Читать далее

Чёрная магия трансформов, или об оптимизации анимаций на CSS

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

Иногда Frontend-разработчики сталкиваются с тем, что для оптимизации производительности нужно написать волшебное свойство translateZ(0) или will-change. Анимации перестанут зависать, ничего не будет лагать и мир станет чуть ярче. ✨

Читать далее

Сервисная архитектура во Vue 2 | Проектирование класса (примитивы и объекты)

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

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

Это 2 часть цикла статей о сервисной архитектуре на Vue 2, в 1 части я рассуждала о популярных способах выноса логики, и о задаче, которую я перед собой поставила.

How to do it?

Балансировка нагрузки и поддержка непрерывности в режиме катастрофоустойчивости

Время на прочтение3 мин
Охват и читатели27K
image

Привет, Хабр! Представьте себе мир без катастроф — без каскадного резонанса и сдвига полюсов. Ах, сладкий сон. В реальной жизни такое невозможно: закон Мерфи живее закона Мура. Однако всё иначе в квантовом мире ИТ.


Сегодня мы поговорим о балансировке нагрузки и отказоустойчивости. Решаем эту задачу с помощью GSLB (global server load balancing). В случае падения соединения или полного отказа ЦОДа сервис GSLB перенаправит ваших пользователей к доступному дата-центру.

Читать дальше →

Резиновый десктопный адаптив: как сделать большие экраны одинаковыми

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

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

Читать далее

Как работают this, call, apply и bind в Java Script: разбираемся на примерах

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

Привет, Хабр! Эту статью написал Тарас Голомозый, fullstack web-разработчик и преподаватель в школе программирования Эльбрус Буткемп. В своей практике он часто сталкивается с кейсами выпускников, которых на собеседовании просят рассказать о роли ключевого слова this в JavaScript. Простого определения про ссылку на контекст часто оказывается недостаточно, требуется более глубокое погружение в тему. В этой статье он на нескольких примерах разбирает, в каких ситуациях может пригодиться это ключевое слово и как используется call, apply и bind.

Читать далее

Сервисная архитектура во Vue 2 | Какие собственно варианты?

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

Рассуждаю о том, какие популярные методы выноса логики есть во Vue 2, какие у них плюсы и минусы. Расскажу о том, какую альтернативу я бы хотела видеть (спойлер, я ее реализовала), дам ссылку на репозиторий с решением. Это первая часть, подробнее о том что будет во 2 и 3 в конце статьи. Приятного просмотра!

Хочу узнать, что дальше

Пользовательские истории в разработке

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

Пользовательская история (User story) описывает тип пользователей, чего они хотят и почему. Этот инструмент помогает создать упрощенное описание требований, но при этом таковым не является. Требования — это другой инструмент, с более сложной структурой и описанием.

Обычно User story используют при разработке по методологии Agile. На этапе дискавери-фазы обычно разбивают разработку продукта на пользовательские истории, а не на характеристики или требования.

Читать далее

Генерация статических сайтов с Hugo

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

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

Читать далее

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

Товарная дистрибуция 30 лет спустя. Как программисты изменили продажи крупного бизнеса

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

Есть такая штука — товарная дистрибуция. Так называют движение продукции от производителя до каждого дома. Этот процесс возник тысячи лет назад. А вот за последние 30 лет дистрибуция сильно поменялась. Расскажу что конкретно произошло и какую роль в этом сыграли технологии.

Читатели постарше могут помнить такую профессию — «торговый представитель». Эти ребята на служебных Ford Focus гоняли по районам, заходили в магазинчики и оформляли заказы на поставку сникерсов и стирального порошка. Раньше на людях — торговых представителях, мерчандайзерах и супервайзерах строились практически все процессы. Кое-где эти профессии еще сохранились, но они перестали быть массовыми. Почти все компании сегодня продают с применением ИТ.

Читать дальше

Как я Jest с помощью SWC ускорял

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

За последние пару лет не раз можно было услышать про новые инструменты
сборки статики, такие как SWC, esbuild и Vite. Все они обещают нам next
gen-оптимизацию времени сборки, а SWC ещë и грозится оптимизировать
скорость выполнения тестов на Jest; более того, судя по документации,
сделать это очень просто. Я решил проверить, так ли это на самом деле и
каким будет результат. Если вам интересно, что из этого получилось и
какие были проблемы, то прошу под кат.

Начать читать под чашечку кофе

Как сделать динамические цвета в CSS

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

Когда говорим «динамический», подразумеваем JavaScript. Но некоторые динамические функции можно реализовать, используя только CSS. Например, цвета. 

Читать далее

Готовим, пробуем Casbin RBAC и handmade RBAC

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

Всем привет!

Меня зовут Андрей Таболин, я системный аналитик в компании Bimeister.

Casbin – одна из популярных библиотек для построения авторизации в веб-сервисах. В этой статье расскажу, как я тестировал Casbin, попутно подготовил своё решение для сравнения и покажу результаты работы обоих. Тестировалась в первую очередь эффективность работы с СУБД на разных объёмах данных для ролевой модели доступа (RBAC). Использовал: Node.js + PostgreSQL.

Читать далее

TypeScript: паттерны проектирования. Часть 2

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


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


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


Спасибо Денису Улесову за помощь в переводе материала.


Паттерны (или шаблоны) проектирования (design patterns) описывают типичные способы решения часто встречающихся проблем при проектировании программ.


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

Читать дальше →

Ошибки, RxJS & Angular

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

Что привлекает в Ангуляре экспертов и удручает начинающих? Одно и тоже, RxJS.

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

Читать далее

Как отображать посты и ACF поля в WordPress. 2 Способа (перевод)

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

В данной статье вы узнаете как запрашивать и отображать посты, как отображать ACF поля (узнаете новый способ), также ближе познакомитесь с устройством мета полей и разберетесь с пользовательскими типами постов (Custom Post Types) в WordPress, эти знания помогут понять структуру WordPress изнутри.

Читать далее