Search
Write a publication
Pull to refresh
0
0
Константин Артюшкевич @profyan

Старший фронтенд разработчик

Send message

Что бы я хотел знать до переноса 50 000 строк кода на серверные компоненты React

Reading time19 min
Views18K

Серверные компоненты React – это большой кусок работы. Недавно мы переосмыслили нашу документацию и устроили ребрендинг Mux. Пока мы этим занимались, мы перенесли весь материал сайтов mux.com и docs.mux.com на серверные компоненты. Так что, поверьте мне… я знаю. Знаю, что это возможно, не так страшно и, в принципе, что дело того стоит.

Давайте я вам объясню, почему, ответив на следующие вопросы: почему так важны серверные компоненты, а также для чего они хорошиДля чего они не так хорошиКак их использоватькак их постепенно внедрять и какие продвинутые паттерны следует использовать, чтобы всем этим управлять? Дочитав эту статью, вы станете замечательно представлять, следует ли вам использовать серверные компоненты React, а если следует – то как использовать их эффективно.

Читать далее

Используем JS Self-Profiling API для профилирования фронтенда на клиентах

Reading time7 min
Views7.1K

Поговорим с нашим фронтенд-инженером Ильёй Алоновым про преимущества и недостатки JS Self-Profiling, посмотрим, как им пользоваться, и узнаем, какие есть подводные камни и как их обойти. Если интересуетесь перформансом веб-приложений — не проходите мимо :)

Читать далее

Простые правила при работе с растровыми изображениями на каждый день

Level of difficultyEasy
Reading time6 min
Views11K

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

Читать далее

Явное управление ресурсами: пробуем новую фичу JavaScript и TypeScript

Level of difficultyHard
Reading time13 min
Views19K

Одной из самых интересных грядущих новинок JavaScript и TypeScript для меня является явное управление ресурсами. Новый синтаксис using foobar = … реализует идиому RAII, позволяя писать намного менее многословный код, управляющий какими-либо ресурсами.

В этой статье я хочу на примерах разобрать эту фичу — в том виде, в котором она сейчас доступна в TypeScript 5.2.0-beta с полифиллом disposablestack. Я рассмотрю синхронные и асинхронные ресурсы, DisposableStack/AsyncDisposableStack, а также приведу пример неочевидного бага, в который попался я сам. По пути я также коснусь нескольких других нововведений Node.js, про которые, возможно, ещё знают не все. Весь код доступен в репозитории.
Читать дальше →

Пишем хорошие компоненты, которые захочется переиспользовать, а плохие — не пишем

Reading time9 min
Views16K

Обсудили с Антоном Крыловым, фронтенд-разработчиком Авито, как нужно и не нужно писать компоненты. Поговорили про характеристики компонентов и коснулись Dependency Injection и DSL-like подхода в React.

Читать далее

Внутреннее представление и оптимизации строк в JavaScript-движке V8: «отмываем» строки, «обгоняем» C++

Level of difficultyMedium
Reading time8 min
Views13K

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

В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут, наоборот, привести к проблемам с производительностью, и что в таких случаях можно сделать.
Читать дальше →

Подробная настройка Content Security Policy (CSP)

Level of difficultyMedium
Reading time10 min
Views46K

Content Security Policy (CSP) - это механизм безопасности веб-приложений, который используется для сокращения рисков, связанных с атаками, такими как внедрение скриптов (XSS) и выполнение нежелательного кода (инъекция). CSP позволяет веб-разработчикам указывать браузерам, из каких источников разрешено загружать ресурсы, такие как скрипты, стили, изображения, шрифты и другие элементы.

Читать далее

Паттерны реактивности в современном JavaScript

Level of difficultyHard
Reading time12 min
Views15K



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


Паттерны реактивности являются ключевыми для веб-разработки


Мы работаем с большим количеством JS на сайтах и в веб-приложениях, поскольку браузер — это полностью асинхронная среда. Мы должны реагировать на действия пользователя, взаимодействовать с сервером, отправлять отчеты, мониторить производительность и т.д. Это включает в себя обновление UI, сетевые запросы, изменения навигации и URL в браузере, что делает каскадное обновление данных ключевым аспектом веб-разработки.


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


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

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

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

Стажёр Вася и его истории об идемпотентности API

Reading time11 min
Views262K

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

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

Готовим микрофронтенды на чистом JS без фреймворков

Level of difficultyMedium
Reading time15 min
Views9.8K

Привет, Хабр! Меня зовут Евгений Лабутин, я разработчик в МТС Digital. Сегодня я расскажу вам о своем рецепте приготовления микрофронтендов без использования каких либо фреймворков. Ведь такие фреймворки как Webpack Module Federation, Single-SPA, SystemJS и подобные вам просто не нужны для написания микрофронтендов, ровно так же как вам не нужен jQuery для написания современных фронтендов. Ведь все необходимое для разработки и работы Микрофронтендов уже встроено во все современные браузеры. Интересно? Добро пожаловать в статью.

Читать далее

Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса

Level of difficultyMedium
Reading time22 min
Views14K
Как и в любом достаточно динамическом языке, в JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы.

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

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

Feature-Sliced Design – альтернативный подход к организации кода приложений

Reading time7 min
Views38K

Feature-Sliced Design — это архитектурная методология, активно набирающая популярность в последнее время. И не зря: организация разработки по её правилам позволяет упростить процессы, сделать их быстрее и гибче. Больше не нужно будет переживать из-за совместной работы в одном домене и конфликтов кода, долго искать ответ на вопрос «А куда же впилить новую фичу, тут и так намешано…» 

О том, как устроена Feature-sliced Design, чем она отличается от «классической» организации кода, плюсах и минусах от её внедрения — в этой статье.

Читать далее

Домашка на лето: что почитать разработчику

Reading time7 min
Views15K

У нашего разработчика Михаила Ефремова есть хобби — читать книги и делать подборки особенно полезных. В этой статье он расскажет, как собрал книжную полку с лучшими, на его взгляд, книгами для разработчиков и поделится мнением о них. Миша подобрал книги по алгоритмам, архитектуре, базам данных, Linux/UNIX, Golang, Python.

Читать далее

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

Level of difficultyEasy
Reading time9 min
Views16K

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

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

Читать далее

Быть или не быть тимлидом – вот в чём вопрос

Level of difficultyEasy
Reading time7 min
Views5.7K

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

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

Читать далее

Чёрт тебя возьми, CSS

Level of difficultyMedium
Reading time7 min
Views18K

У CSS много моментов, которые сбивают с толку. Разработчики плюются от него. А мне нравится CSS, несмотря на мои потраченные нервы. Подумав, как помочь другим меньше мучаться, я собрал ряд неочевидных моментов. Они сбивали с толку меня и моих знакомых. Надеюсь, вам будет полезно.

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

Что меняется, когда разработчик переходит в тимлиды

Level of difficultyEasy
Reading time6 min
Views7.2K

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

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

Читать далее

Почему любимая работа не даст вам того, чего вы на самом деле от нее ждете

Level of difficultyEasy
Reading time6 min
Views33K

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

Читать далее

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Registered
Activity