Современный фронтенд — это богатое клиентское приложение, оперирующее развесистым набором данных. Однако, оставаясь в парадигме архитектуры «клиент-сервер», такие приложения всё ещё требуют серверного кода, часть из которого начинаем писать мы, фронтендеры, отвоёвывая пядь за пядью землю под ногами бэкендеров. И вместе с этим приходят вопросы: как писать серверный код? Можно ли весь бэкенд перенести на JavaScript? Будет ли это код enterprise-уровня? Nest — это то, чего все ждали, чтобы начать писать настоящий бэкенд? Что же, разберёмся, что такое бэкенд для фронденда, как писать его так, чтобы было не стыдно, и почему Nest ничего не решает, когда мы говорим об архитектуре.
Сейчас, в эпоху клиентских фреймворков, мало кто задумывается, как работают привычные нам вещи в браузере, вроде событий или анимаций. Мы часто следуем „лучшим практикам“ и не задумываемся, почему он…
За годы разработок enterprise-приложений на Node.js я использовал Express, Nest.js и AWS-лямбды. У каждого подхода есть свои плюсы и минусы, и все они остаются актуальными, но ни одно из этих решений…
Не важно, тестирует ли наше приложение QA или автоматикой гоняются E2E-тесты, и в том и в другом случае мы сталкиваемся с тем, что код разработчика необходимо развернуть в тестовой среде. И нам явно …
В индустрии уже давно сформированы стандарты производительности веб-приложений — это инициатива Web Vitals. Тем не менее, это не страхует программистов от ложных путей оптимизации Performance-метрик.…
Расскажу про то, как делать веб быстрым, почему нужно заниматься скоростью, как измерять скорость и покажу примеры из жизни настоящих ускорений.
Анимация — неотъемлемая часть любого нынешнего веб-интерфейса. Виталий Калашников рассказывает про аппаратное ускорение анимаций, как использовать вычислительную технику при создании динамического ве…
А реально обернуть REST API в GraphQL? И как сделать R&D для этой технологии? Обычно обкатку технологии принято делать на TodoMVC. Так и поступим. А коль Павел человек непростой, то придется брать и…
Сравним различные подходы к реактивному программированию. Вытащим на поверхность их подводные камни. И разберём как реактивность решает или наоборот усугубляет проблемы.
Многих останавливает разработка на WASM, потому что придётся учить С или Rust, популярные в WASM-сообществе, но есть решение — AssemblyScript. Он позволяет писать на TypeScript и компилировать бинарн…
Разбивая наш JavaScript-монолит (куда без него) мы компании Osome двинулись дальше микросервисов и сразу перевезли всё на функции, отказавшись от Koa, Express, Nest или иных решений. Нашим новым фрей…
Фронтенд — это огромное количество форм, представляющих собой однотипный код, который нужно писать и поддерживать для разных платформ. Нашего брата, фронтендера, порой называют обидным словом «Формаш…
Скорее всего, вы сталкивались с проблемой, когда ваш React-компонент становится большим, сложным и в нем появляется куча условий. Согласитесь, такие компоненты сложно читать, ревьюить и вообще понима…
Рендерить всё — это слишком медленно. Подстраиваться под ограничения виртуального скролла — сложно. Встречайте полностью виртуальный рендеринг, гарантирующий отзывчивость приложения независимо от ра…
Elm — это функциональный язык программирования, в котором нет runtime exceptions, зато есть очень дружественный компилятор. Рефакторинг кода на абсолютно новом уровне! Если проект собрался — значит о…
Многие что-то слышали про основной поток и о том, что его нельзя блокировать. Но что это на самом деле такое? Если есть основной, значит, есть и второстепенные? Попробуем разобраться и не запутаться.
Как автоматизировать работу фронтендеров и не создать ещё один бесполезный велосипед? Каждый программист в какой-то момент хочет автоматизировать свою работу скриптами. Обычно из этого получается наб…
Каждый когда-то слышал, что десктопные приложения можно разрабатывать с использованием web-технологий. Но как? Для чего? Именно на эти вопросы я постараюсь вам ответить и показать, насколько мощным …
Сложно о простом: очередная серия про природу жизненного цикла объектов в рамках трансформаций данных в жизненном цикле приложений. В этот раз топологические пространства задаются контекстом. Сложные…
Я расскажу историю небольшого проекта на стыке UI, UX и программирования. Как маленькая идея может поглотить десятки часов разработки и сколько удовольствия это может принести. Разберем все боли рабо…