Интернационализация (i18n) и локализация (l10n) часто кажутся проблемами “на потом” — пока внезапно не становятся срочными.Как разработчики, мы все делали что-то вроде:<button>Order now</button> Или в шаблоне:<p>Welcome back, {{ user.name }}!</p>Всё работает — пока команда не говорит: «Мы выходим на рынок Узбекистана, Казахстана и Ближнего Востока в следующем квартале.»И тут внезапно каждая хардкодная строка превращается в технический долг. Разработчики в панике вытаскив…
В этой серии статей мы отправимся в путешествие по миру пользовательских хуков React, открывая для себя их огромный потенциал для улучшения ваших проектов разработки. Сегодня мы сосредоточимся на хуке «useGeolocation», одном из многих тщательно разработанных хуков, доступных в коллекции пользовательских хуков React.Github: https://github.com/sergeyleschev/react-custom-hooks import { useState, useEffect } from "react" export default function useGeolocation(options) { const [loadin…
Привет, Хабр! Меня зовут Виктор, я являюсь Web разработчиком в MOEX. Программирую на TypeScript/Java и это моя первая статья, в которой я хочу поделиться историей создания fsd-forge — CLI-инструмента для упрощения работы с архитектурой Feature-Sliced Design (FSD) в проектах на React и TypeScript. В этой статье я расскажу, почему решил создать этот инструмент, как он устроен, какие проблемы решает, и какие уроки я вынес из процесса разработки.Что такое Feature-Sliced Design и зачем нужен CLI?Fea…
Недавно на проекте столкнулся с необычной задачей - сделать из готового React веб-приложения десктопную версию на Electron. Что же тут необычного? А то, что наше веб-приложение построено на микрофронтенд архитектуре и располагается в трёх отдельных репозиториях. А общение между микрофронтендами происходит в runtime через HTTP. И тут начинаются сложности, так как для создания дистрибутива, Electron'у нужен доступ к исходникам всего приложения. Хотя Electron легко подружить с Webpack, как это…
Каждый фронтенд-разработчик хоть раз сталкивался с неадекватными вопросами на собеседованиях: алгоритмы на доске, задачи из учебников, размытые требования. В итоге компании месяцами ищут сотрудников, а кандидаты тратят время впустую. Давайте разберём, как проводить собеседования, чтобы действительно найти нужного специалиста.Шаг 1. Требования-абстракции: выберите ключевые навыкиНекорректный вариант: «Требуется Senior JS-разработчик с 5+ годами опыта». Почему это не подходит: Неясно, какие навык…
Наверняка вы неоднократно сталкивались с ситуацией, когда начинали разработку фронтенд‑приложения на React и вроде всё было очевидно, но через некоторое время чувствовали, что уже запутались, где какой компонент. И в такой ситуации приходится вновь и вновь смотреть код, чтобы вспомнить, где в иерархии находится определенный компонент. Или, например, начинаете создавать компонент и задумываетесь на время: — «А с чего начать и какой должна быть реализация?», а реализовав компонент понимаете, что …
Всем, привет. Меня зовут Виталий Киреев и я руковожу исследованиями и разработкой в IT-компании. Компания существует уже много лет и в разработке накопилось довольно много Legacy-кода. Мы регулярно проводим аудит на предмет использования устаревших библиотек и меняем их, если в этом есть необходимость. В этой статье я расскажу о практических кейсах, с которыми мы столкнулись при замене широко известной библиотеки Lodash для Javascript. Зачем менять Lodash?Сразу оговорюсь, что на Хабре есть оче…
Node.js претерпел впечатляющее преобразование с момента своего появления. Если вы пишете на Node.js уже несколько лет, то, вероятно, сами наблюдали эту эволюцию - от эпохи колбэков и повсеместного использования CommonJS до современного, чистого и стандартизированного подхода к разработке.Изменения затронули не только внешний вид - это фундаментальный сдвиг в самом подходе к серверной разработке на JavaScript. Современный Node.js опирается на веб-стандарты, снижает зависимость от внешних библиот…
Уже 10 лет в JS-экосистеме воюют два формата модулей: CommonJS и ES Modules. Чтобы и получить плюшки ESM, и не распугать пользователей, npm-пакеты часто используют dual packaging: собирают код в оба формата. Это решает одну проблему, но создает несколько новых:Мы собираем наш код 2 раза (а хотелось бы вообще не собирать).Настроить двойную сборку не супер сложно, но все таки сложнее, чем вообще не настраивать.Мы публикуем в 2 раза больше кода (и потом жалуемся на жирые node_modules)dual package …