ПрологВсем привет! Сразу хочу сказать, что это не гайд, и я не рассказываю, как нужно кодить — просто хочу поделиться тем, что у меня получилось, и что я использовал в процессе разработки.Я не эксперт, и всё, о чём я пишу — это то, что сам прочитал и попробовал на практике. Моей основной задачей было сгенерировать сеточную карту и заставить персонажа искать кратчайший путь до точки, на которую я нажал, и двигаться к ней.Позже я добавил NPC с простым AI: они могут преследовать игрока, если тот н…
Сегодня я хочу поделиться глубоким исследованием того, как применять золотое сечение в современном дизайне 2025 года. Эта статья основана не только на теории, но и на реальном опыте работы с крупными проектами, A/B тестах и исследованиях пользователей.Что такое золотое сечение и почему оно работает в 2025 годуЗолотое сечение (φ ≈ 1.618) — это математическая константа, которая представляет собой отношение двух величин, при котором отношение суммы этих величин к большей из них равно отношению бол…
API (Application Programming Interface) — это интерфейс, который определяет, как программные компоненты взаимодействуют друг с другом. Он задаёт, какие запросы можно выполнять, как именно они отправляются, в каком формате передаётся данные и какие соглашения при этом соблюдаются. API также могут предоставлять механизмы расширения, позволяя пользователям расширять существующие функциональности различными способами. API может быть разработан для конкретного компонента или создан на основе отрасле…
Всем привет! Меня зовут Михаил Парфенов, я являюсь Application Security-архитектором в DPA Analytics. В мае 2025 мной проводилось исследование безопасности российских frontend-приложений. Были проверены приложения более 3000 крупнейших коммерческих российских компаний.Главные страницы (корпоративных сайтов, порталов, личных кабинетов, социальных сетей, маркетплейсов и т.п.) открывались в frontend-песочнице, фиксирующей составляющие и действия frontend-приложения (в первую очередь поведение Java…
Я много общаюсь о микросервисных архитектурах с «не-Java-людьми» — будь то разработчики на C#, энтузиасты Node.JS/JavaScript или GoLang. Все они сталкиваются с необходимостью оркестрации в микросервисной архитектуре — или просто хотят использовать workflow, упорядочивание действий, обработку таймаутов, Saga и компенсации, а также другие полезные возможности.Open Source BPM-платформа Camunda отлично подходит для этих задач. Ориентированность на разработчиков — один из ключевых принципов продукта…
Сначала я недооценил document.currentScript, но оказалось, что он отлично подходит для передачи параметров конфигурации прямо в теги <script> — и это далеко не все. Порой я натыкаюсь на давно существующие браузерные API в JavaScript, о которых, по идее, я должен был узнать гораздо раньше. Например, window.screen или метод CSS.supports(). К счастью, я понял, что не один такой. Помню, как однажды упомянул window.screen в посте и получил неожиданно много комментариев от людей, которые тоже…
Наш фронтенд начинался как простой SPA на React, собранный с помощью Vite — типичный монолит с несколькими страницами. Со временем проект оброс новыми функциями и интеграциями и начал становиться всё сложнее в поддержке.На горизонте появились новые вызовы: к продукту планировалось подключать всё больше независимых сервисов, а значит — ещё больше интеграций и роста кодовой базы. Мы понимали, что нагрузка на инфраструктуру будет только увеличиваться, поэтому решили заранее заложить архитектуру с …
Каждый разработчик рано или поздно сталкивается с вопросом: как организовать проект так, чтобы он не превратился в хаос? Или как исправить проект, в котором уже царит хаос?Начинается всё одинаково: мы делаем простое MVP или проект с ограниченным функционалом, не заморачиваемся по поводу архитектуры и организации кода, ведь проект небольшой и несложный, а сделать его нужно уже здесь и сейчас. Но время идёт, и у бизнеса появляются всё новые требования. Какие-то изначальные идеи полностью отменяют…
Отказоустойчивость (англ. resilience, fault tolerance) — это способность системы продолжать работу, несмотря на внутренние ошибки, сбои в зависимостях или непредвиденные ситуации.С хорошей отказоустойчивостью интерфейс остаётся стабильным и понятным, пользователь получает предсказуемый и комфортный опыт, а сбои отдельных компонентов не приводят к сбоям всей системы.В этой статье речь не будет идти о конкретных примерах реализации повышения отказоустойчивости. Понять то, что нужно подключать сер…