Однажды на собеседовании мне предложили решить одну интересную задачу, которая для меня была довольно необычной на тот момент. Позже я обнаружил, что задача была не особо уникальной, но с высоты моего опыта тогда, она показалась довольно будоражащей.Условие задачиСоздайте класс EventEmitter, который позволяет:подписываться на события (on) с любым количеством функций на одно событие;отписываться от конкретной функции (off), даже если функция анонимная;вызывать все функции для события (emit) с пе…
Привет! Я — Александр Дудукало, автор базового курса по JavaScript. В этой статье мы продолжим изучение работы с данными в JavaScript. Если в прошлом материале мы говорили о массивах, то теперь пришло время познакомиться с объектами. Я расскажу, как они помогают эффективно организовать и обрабатывать связанные данные. Подробности под катом!ОбъектыЧем больше пишешь код и создаешь переменных, тем яснее проявляется некая закономерность: переменные, как бы то ни было, начинают группироваться по опр…
Собеседования в FAANG-компаниях (или MAANG/MANGA — кому как ближе) давно стали отдельным жанром. Если вы уже пытались попасть в Big Tech — то знаете, насколько сильно отличается их подход: чёткая структура, множество этапов собеседования, критерии оценки кандидатов и даже особенная культура коммуникации. При этом есть схожие моменты, которые вы встретите везде, и уникальные штуки, о которых лучше знать заранее.В этой статье разберёмся в нюансах и сравним, как устроены интервью в международные I…
1. Host Tree 2. Host Instances 3. Renderers 4. React Elements 5. Entry Point 6. Reconciliation 7. ConditionsБольшинство руководств представляют React как библиотеку пользовательского интерфейса. Это имеет смысл, потому что React — это библиотека пользовательского интерфейса. Это буквально то, что говорит слоган!Это глубокое погружение — это пост, который не подходит для новичков. В этом посте я описываю большую часть модели программирования React с первых принципов. Я не объясняю, как его испол…
В разработке админок часто приходится делать одно и то же: формы, списки, фильтры, CRUD. Admiral решает эту проблему, предоставляя мощный фреймворк для React, с которым можно быстро собирать административные интерфейсы на готовых паттернах и с гибкой настройкой.Недавно нам нужно было добавить чат в админку одного из проектов. Забавно, но решения вроде Jivo или LiveChat мы даже не рассматривали. Так были уверены, что сможем без проблем собрать кастомный чат прямо внутри Admiral.Эксперимент завер…
Привет! Сегодня хочу поделиться с тобой опытом перехода от Feature-Sliced Design к Clean Architecture во фронтенде. Почему я считаю Clean Architecture более подходящей для сложных приложений, и как она решает проблемы, с которыми ты точно сталкивался.Если ты используешь FSD или до сих пор пишешь всю логику в компонентах React — эта статья точно для тебя.FSD: популярно, но не без проблемFeature-Sliced Design сейчас одна из самых популярных методологий во фронтенде. И не зря — она действительно п…
Этот вопрос интересовал меня настолько давно, что за прошедшие годы даже стал как-то про него забывать. И не то, чтобы меня это прям как-то сильно интересовало, но всё же лучше понимать назначение было бы приятно.И, ведь, ну в самом деле, подумаешь, ну может разработчику хочеться вернуть не эземпляр, не instance, а какой-нибудь другой объект, и зачем-то при этом ему нужен именно вызов конструктора. Ну, допустим, он хочет чтобы new.target был заполнен и т.п., ну, мало ли какие варианты зачем-то …
n8n — это мощный инструмент, который я, как и многие инженеры, полюбил за гибкость и простоту. Он позволяет собрать практически любую интеграцию, как из конструктора, но с возможностью в любой момент залезть «под капот» с кастомным JavaScript. Идеально.n8n позволяет строить lowCode автоматизацииНо у этой мощи есть и обратная сторона. Сложные воркфлоу превращаются в лабиринт из нод, где каждая требует тонкой настройки десятков полей. Постоянное переключение между вкладками документации, написани…
1. Зачем нужны unit-тесты?Unit-тесты создавались для проверки изолированных частей кода — функций, методов, утилит. Их задача — убедиться, что отдельные модули работают корректно в идеальных условиях.Но фронтенд — это не только логика, но и:UI-компоненты (кнопки, формы, списки)API-взаимодействия (запросы, обработка ответов)Глобальное состояние (Redux, MobX, Context)Сторонние интеграции (аналитика, платежи)Можно ли всё это покрыть unit-тестами? Технически — да, но нужно ли?2. Что не стоит тестир…