Pull to refresh
40
0
Антон Жуков @MrCheater

Team Leader, Engineering Manager, React, Node, TS

Send message

Как нарисовать квадрат 3 × 3 см на веб-странице*

Reading time5 min
Views28K

* Не привлекая внимания санитаров

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

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

Что ж, вызов был брошен. И я поставил себе задачу (вы же тоже сами ставите себе задачи?) — нарисовать красивый красный квадратик размером 3 × 3 см. Тому, что у меня в итоге получилось, и посвящён мой необычный рассказ. 

Читать далее
Total votes 117: ↑108 and ↓9+118
Comments50

Настройка алиасов путей с помощью Node.js Subpath Imports в TypeScript проекте

Level of difficultyMedium
Reading time7 min
Views1.8K

Я попробовал новые Node.js Subpath Imports для алиасов путей в TypeScript проекте. Оказалось, всё не так просто!

Читать далее
Total votes 7: ↑7 and ↓0+9
Comments3

Мой ТОП-5 лучших CSS-in-JS решений

Level of difficultyEasy
Reading time10 min
Views7.4K

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

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

Здесь вот и приходят на помощь решения CSS‑in‑JS, объединяющие фичи JS и CSS.

Читать далее
Total votes 13: ↑10 and ↓3+11
Comments17

Kandinsky 3.1 — новая быстрая модель генерации изображений по тексту

Level of difficultyMedium
Reading time15 min
Views26K

Прошёл ровно год с момента релиза модели Kandinsky 2.1 — именно эта модель принесла известность нашей исследовательской группе Sber AI Research и дала толчок развитию всей линейки моделей Kandinsky. В честь этой даты мы выпускаем новую версию модели Kandinsky 3.1, о которой я расскажу подробнее в этой статье.

Читать далее
Total votes 53: ↑51 and ↓2+72
Comments35

С 500 мс до нуля, или история о том, как я написал Node.js C++ addon и ускорил скидочный сервис в 500 раз

Level of difficultyMedium
Reading time18 min
Views20K

Приветствую тебя! Меня зовут Дмитрий и я работаю в LAD.
Сегодня я поведаю историю о том, как эволюционировал скидочный сервис одного из наших проектов. Пройдя путь от всеми нелюбимого, "тормозящего" сервиса, до сервиса,
который имеет наилучшие показатели на недельных графиках SLA.

Читать далее
Total votes 38: ↑37 and ↓1+42
Comments37

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

Level of difficultyEasy
Reading time20 min
Views24K

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

Читать далее
Total votes 11: ↑9 and ↓2+9
Comments14

Глубокий JS. Области тьмы или где живут переменные

Level of difficultyHard
Reading time16 min
Views14K

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

Речь пойдет об Абстрактном Синтаксическом Дереве (AST), типах переменных, областях видимости и выделении памяти в стэке и куче.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments12

Никогда не забывай об этом, когда делаешь open-source проект

Level of difficultyEasy
Reading time8 min
Views28K

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

Читать далее
Total votes 47: ↑39 and ↓8+38
Comments124

Почему я больше не буду работать наставником на IT-курсах

Level of difficultyEasy
Reading time4 min
Views109K

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

Читать далее
Total votes 284: ↑270 and ↓14+311
Comments725

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views207K

Привет, Хабр!

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

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178

Учим PixiJS на играх

Level of difficultyEasy
Reading time60 min
Views28K

В статье описал разработку 13-ти игр на PixiJS. Около 70% текста - это описание механики игр, остальное - реализация на PixiJS. Получилось много текста, т.к. описывать советы для PixiJS интереснее с примером из игр.
Самая последняя игра будет самой сложной и интересной.

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments6

VK Open: 6 часов погружения в открытые платформы

Reading time7 min
Views1.4K

3 июня VK Mini Apps провела конференцию VK Open об открытых платформах и их возможностях. В центре внимания оказались доступные разработчикам возможности платформ VK. На VK Open мы решили показать зрителям что-то новое и необычное. Не на словах рассказать о простоте и скорости разработки мини-приложений, а показать это наглядно. Для этого мы оборудовали отдельную зону лайвкодинга. Там в режиме реального времени на протяжении всей конференции команда разработчиков из студии LunaApp с нуля создавали мини-приложение – игру. В любой момент посетители могли подойти и посмотреть на работу команды. А стрим и посты из зоны лайвкодинга набрал 75 000 просмотров.

Читать далее
Total votes 18: ↑17 and ↓1+29
Comments7

Система для менеджера V1.1. Добавление расчета затрат и развитие функционала планирования

Reading time3 min
Views3.1K

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

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

В систему добавилось...
Total votes 4: ↑3 and ↓1+2
Comments0

Свой NPM репозитарий Verdaccio + GitLab + Docker

Level of difficultyMedium
Reading time3 min
Views4.5K

Требовалось кешировать используемые в разных проектах NPM пакеты (+ хранить свои пакеты) на отдельном сервере.

Было решено делать это с помощью репозитария Verdaccio (по нему есть достаточно хорошая офф. дока), крутится это все должно в Docker, а разворачиваться на отдельном сервере через GitLab CI/CD.

Т.к. реализация данной схемы заняла у меня некоторое время (Хотелось бы и по меньше), решил написать короткий туториал по этой теме, с описание нюансов, которые для меня казались не очевидными.

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments8

Чем заняться тимлиду, если не кодить? Рассказываю о своих задачах

Level of difficultyEasy
Reading time10 min
Views12K

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

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

Я составил список своих задач и разбил их на категории. Кстати говоря, добрую половину этих задач я повесил на себя сам.

Читать далее
Total votes 17: ↑15 and ↓2+17
Comments13

Гайд по эвент-сорсингу

Level of difficultyMedium
Reading time19 min
Views14K

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

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

Читать
Total votes 26: ↑21 and ↓5+19
Comments104

Качаем IT-бренд работодателя в 2023 году

Level of difficultyEasy
Reading time8 min
Views6.6K

Всем привет! Сегодня расскажем, какие качества работодателя делают компанию более привлекательной в глазах соискателя. Материалом для наших выводов послужило последнее исследование ЭКОПСИ и Хабра, где мы опросили 16 тысяч IT-соискателей, сотрудников 88 компаний, на тему взаимоотношений «сотрудник — работодатель», а также провели анализ 95 EVP IT-компаний и множество фокус-групп с IT-специалистами. По итогам всей этой работы получились ключевые тренды в работе с IT-кадрами в 2023–2024 гг. Если интересно — приглашаем под кат. 

Читать далее
Total votes 17: ↑11 and ↓6+9
Comments8

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Reading time15 min
Views58K

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

В статье рассмотрим причины необходимости работы с токеном на клиенте веб-приложений, узнаем ,что лучше для хранения токена: localStorage, sessionStorage или cookie без флага HttpOnly (спойлер, ничего из этого), а также посмотрим на меры воздействия, которые можно использовать для снижения риска утечки токена посредством различных уязвимостей.

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

Читать далее
Total votes 37: ↑35 and ↓2+40
Comments40

Мощь декораторов TypeScript на живых примерах. Декорирование методов класса

Reading time12 min
Views25K

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

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments6

Вся правда о кубах данных OLAP: развенчиваем мифы

Reading time4 min
Views52K


Кубы данных — не самая простая тема в дата-инжиниринге. Это тот самый случай, когда на пять запросов об определении приходятся пять разных вариантов ответа. Эта неоднозначность породила неудачную универсальную метафору, с помощью которой описываются кубы данных, — схему трехмерного куба. При этом в объяснениях нет примеров, рассказывающих, как в дата-пайплайне реализуется эта концепция.
Читать дальше →
Total votes 29: ↑27 and ↓2+36
Comments7
1
23 ...

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity