В этом посте я бы хотел порассуждать о тенденции, которую постоянно наблюдаю в мире разработки ПО. На самом деле, я бы даже рискнул сказать, что подобная ситуация происходит и в мире оборудования, но буду рассматривать только программные системы, потому что работаю с ними. В этой обсуждении я затрону человеческую психологию и опишу распространённую ловушку, которой вы, надеюсь, сможете избежать. Большую часть моей карьеры, как в науке, так и в отрасли, я занимался оптимизацией языков программ…
Привет друзья!В данной статье я хочу показать вам, как разработать форму с динамическими добавлениями полей на React.js с использованием библиотеки react-hook-form и валидацией полей с использованием библиотеки yup на конкретном примере.Формы являются неотъемлемой частью веб-разработки, и эффективная обработка пользовательского ввода является ключевым аспектом создания интерактивных приложений. Библиотека React Hook Form предоставляет разработчикам мощный инструментарий для упрощения работы с …
Или чистый JavaScript с двумя вспомогательными функциями?В этой статье я расскажу о том, как разрабатывать веб-компоненты с использованием библиотеки Fusor и преимуществах данного подхода.Такие компоненты можно будет затем собирать в полноценные веб-приложения, сопоставимые с теми, что созданы с использованием React, Angular, Vue, Solid, Svelte и т.д.АПИ Fusor состоит всего из двух основных функций:Создать DOM-элемент, обернутый в специальный объект.Обновить DOM-элемент, обернутый в специальный…
ВведениеВсем привет. Сегодня я хочу поговорить об использовании WASM с C++ и разберу, как взаимодействовать с этим всем делом через JavaScript.Когда я начинал изучение технологии WASM, которая является довольно интересной и обсуждаемой темой в последние несколько лет. Почти сразу я столкнулся со значительным разрывом в уровнях туториалов (материалы либо очень простые и не имеют смысла, либо для совсем продвинутого уровня) и скудной документацией. То есть, вхождение новичков может быть затруднен…
Всем привет, я создатель https://vatsim-radar.com/ и сегодня я чуть не умер. В общем, дело такое. Мы - карта виртуальных самолетиков. Недавно нас пропиарили на официальном уровне, и теперь мы обслуживаем тысячи человек ежедневно - в подвале при открытии сайта будет показано, сколько там сидит прямо сейчас ("in Radar").Ранее мы обновлялись раз в 15 секунд с реальной задержкой от игры в примерно 30 секунд. Это всё дело кэшировалось на Cloudflare, и мы прекрасно жили - пока нам в какой-то …
Что такое строкаДля того чтобы лучше понять, что происходит под капотом V8, для начала стоит вспомнить немного теории.Спецификация ECMA-262 гласит:The String type is the set of all ordered sequences of zero or more 16-bit unsigned integer values (“elements”) up to a maximum length of 2**53 - 1 elements.Тип String — это набор всех упорядоченных последовательностей из нуля или более 16-разрядных целых беззнаковых чисел (“элементов”) максимальной длиной 2**53 - 1 элементов.На практике в машинной п…
Angular теперь поддерживает TypeScript isolatedModules начиная с версии Angular 18.2. Благодаря этой поддержке мы сможем заметить увеличение производительности до 10% во времени сборки для production на своих проектах.Разработчики всегда заинтересованы в улучшении производительности и в этом материале опишу, как можно воспользоваться этой функцией на проектах.Как isolatedModules работает?При использовании сборщика приложений в Angular-приложении и включенной опции TypeScript - isolatedModules, …
Понимание того, как поисковые системы изучают, рендерят и индексируют веб-страницы, имеет решающее значение для оптимизации сайтов под поисковые системы. По мере изменений в работе поисковых систем (например, Google), отслеживать, что работает, а что нет, становится все сложнее, особенно в случае с клиентским JS. Все еще существуют устаревшие убеждения, вводящие в заблуждение SEO-специалистов относительно выбора лучших решений для поисковой оптимизации приложений: Google не умеет рендерить …
В этой статье я расскажу как с помощью генераторов можно модифицировать рекурсию так, чтобы она использовала кучу вместо стека и при этом почти не отличалась от обычной рекурсии.Постановка проблемыПусть дана некоторая рекурсивная функция, которую сложно выразить обычным циклом. Для примера я возьму функцию АккерманаНаивная реализацияconst ackermann1 = (m, n) => { if (m === 0) { return n + 1; } if (n === 0) { return ackermann1(m - 1, 1); } return ackermann1(m - 1, ackerman…