Полгода назад я решил провести эксперимент: месяц работать с AI-копилотами на максимум — Cursor, GitHub Copilot и ChatGPT — на реальном продакшн-проекте на React/Next.js. Не ради хайпа, а чтобы честно понять: это действительно ускоряет разработку или я просто трачу время на исправление чужих (нейросетевых) багов?Спойлер: и то, и другое. Но дьявол, как всегда, в деталях.КонтекстЯ фронтенд-разработчик с пятилетним опытом. Основной стек — React, Next.js, TypeScript, Tailwind. Работаю в продуктовой…
Когда меня просят подсказать, как структурировать веб-сервис, я всегда начинаю с одного и того же: напишите сервер, который в ответ на HTTP-запросы выдаёт текст в формате HTML.Это наиболее долговечный, финансово оправданный и понятный пользователю способ написать веб-сервис. Большинство веб-сервисов следует выстраивать именно так, если только у вас нет очень веской причины действовать иначе.Выслушав меня, веб-разработчики часто отвечают: «о, так вам нравится рендеринг на стороне сервера», на чт…
Excel не единственный, кто любит превращать любые данные в даты.Если вы работаете с датами в JavaScript, то, вероятно, рано или поздно воспользуетесь new Date(someString). Это удобно: передаём строку, получаем объект Date. Но привыкнув к Python, я был удивлён тем, насколько свободно JavaScript обращается с форматами дат. Позвольте мне проиллюстрировать это примерами.new Date("2020-01-23") // Wed Jan 22 2020 19:00:00 GMT-0500Вполне логично. Формат ISO, полночь UTC, поэтому он показывает …
Судоку Больше Меньше / Классическое СудокуПривет, Хабр.Я работаю учителем математики и информатики в солнечном Таиланде. Во время школьных каникул, вместо регулярных путешествий по Азии я решил развлечь себя изучением синтаксиса JavaScript.Когда-то, мы с моей замечательной (но ныне бывшей) женой фанатели от нестандартных судоку со знаками «больше-меньше», мы сами печатали себе уникальные сетки, а иногда, я даже рисовал их руками на основе готовых шаблонов из интернета.В этой статье я хочу расск…
Здравствуйте, меня зовут Дмитрий Карловский, и я.. пилил веб-компоненты, когда их ещё не придумали, делал полноценные компоненты на AngularJS, когда там ещё были только директивы, и разработал компоненто-ориентированный фреймворк $mol с инверсией контроля и статической типизацией, когда это ещё не было мейнстримом. Короче, я немного в теме. И сейчас я расскажу вам, почему мы сразу отказались от Web Components и почему у них нет никаких перспектив. Немного истории В десятых годах веб усложнил…
Про начало разработки я писал в предыдущей статье. Напомню — я разрабатываю простенький 3D-редактор для моделирования под 3D-печать. С простым интерфейсом и, самое главное, работой прямо в браузере. Естественно, это будет не полноценная САПР, но для обучения и простенького проектирования функционала должно хватать.Целился я в нечто среднее между Tinkercad и Fusion360. Одной из задач было обойтись без сервера, т.е. работа на стороне клиента, а также быстрая работа. Поэтому в качестве основы я вы…
Меня всегда веселили люди, которые заявляют, что они "знают ЯП". Посмотрим на это на примере человеческого языка, словарный запас среднестатистического россиянина 30к слов. Минимально зафиксированное кол-во слов, которое содержит русский язык 200к. Только лишь этого хватает что бы сделать вывод — мы знаем собственный язык на 15%. А если считать еще и общую грамматику, правописание, пунктуацию, то думаю реалистичным числом будет 5%-10%, а кто-то вообще обходится в 2% и прекрасно себя чув…
Иногда хочется выгрузить список треков из плейлиста Яндекс Музыки — например чтобы:сохранить треклистперенести музыку в другой сервиссделать бэкаппроанализировать плейлистЕщё одна причина — версии треков. Иногда в каталоге Яндекс Музыки встречаются отредактированные версии песен (например, с запиканной ненормативной лексикой или изменёнными строками). Поэтому бывает полезно сохранить исходный список треков из плейлиста, чтобы при необходимости найти оригинальные версии композиций в других серви…
Примерно год назад я написал статью о том, как настроить OTA-обновления в Capacitor-приложении с помощью capacitor-updater. Подход работал, но со временем код стал разрастаться в одном компоненте и превратился в ту самую "кашу", с которой обычно начинают, а потом рефакторят. В этой статье еще раз разберем механизм обновления, и как я переписал систему обновлений с нуля — с нормальной архитектурой, двумя стратегиями обновления и отдельным слоем для работы с GitHub Releases.Зачем это нужн…