Есть такая игра TrackMania, я вам уже про неё когда-то давно писал. Это очень аркадная гонка. Настолько аркадная, что автомобили на трассе никак друг с другом не взаимодействуют (вы не можете столкнуться с соперником, просто проедете сквозь него), и задача игрока состоит в том, чтобы сражаться со сложностью трассы. А трассы обычно включают в себя прыжки, мёртвые петли, движение по стенам и так далее.
Разумеется, нужно пройти трассу быстрее, чем остальные. "Пройти трассу" с точки зрения движка игры означает следующее: корпус автомобиля в любом порядке пересекает чекпоинты, а затем попадает в область финиша. Ещё физический движок у игры идемпотентный: одинаковый набор управляющих воздействий всегда в точности приводит к тому же положению автомобиля и тем же векторам линейной и угловой скорости.
Это создаёт ситуацию, при которой повтор прохождения игроком какой-либо трассы можно записать просто как цепочку нажатий на клавиши управления в заданные моменты времени. Так что игроки могут этими повторами обмениваться и соревноваться асинхронно: один проходит трассу за 2 минуты и 19 секунд, загружает свой результат в сеть, а другой через неделю соревнуется и с ним и побеждает, проходя трассу за 2 минуты 18 секунд.
Вокруг этой игры создалось очень большое и активное сообщество людей, которые друг с другом соревнуются и ставят рекорды. Эти игроки проводят в TrackMania десятки часов в неделю, и зачастую сами себе создают челленджи. Например, пройти все трассы в игре, никогда не поворачивая вправо. Или пройти задним ходом. Или даже с закрытыми глазами, ориентируясь по звукам и таймеру. Ещё в игре есть редактор трасс, и поэтому сообщество создаёт очень сложные многоуровневые треки для всех желающих.
Так вот, интересный момент. Как я уже говорил, движок засчитывает прохождение по довольно формальным признакам. Поэтому технически совсем не обязательно проехать на машине по дороге. Если вы каким-то образом заставите машину взлететь и проскакать с более быстрой скоростью — это валидный рекорд. И сообщество тоже такое принимает и даже всячески восхищается игроками, которые смогли обмануть игровой движок и найти, что называется, shortcut. Профессиональные игроки владеют набором специальных багов. Например, если определённым образом поставить машину боком под правильным углом с правильной скоростью, трение торможения уменьшится, и можно будет пройти какой-то кривой участок быстрее. Ещё можно под нужным углом удариться о поверхность и отскочить от неё куда требуется. И таких обманов движка пара десятков. Нередко игрокам приходится их комбинировать, поэтому они сидят десятки и сотни часов, проходя одну и ту же трассу, чтобы получить идеальное стечение обстоятельств ради улучшения времени на одну сотую секунды. Не преувеличиваю.
При этом, однако же, читерство и "внешние" обманы в игре очень сильно критикуются. Если тебя заподозрят в использовании программы, которая за тебя нажимает клавиши, или в какой-нибудь подделке памяти — это смерть для твоей репутации в сообществе.
Вот какое дело получается: разработчики заложили формальные правила игры (ехать на машине по дороге), и нарушение этих правил поощряется. Но нарушение правил игрового движка уже жёстко критикуется. Чисто практически разница между этими правилами очень условная: и то, и другое это отступление от игры в том виде, в котором игра задумана. Но людям нужно было где-то поставить границу, после которой издевательство над игрой уже не обладает зрелищностью и спортивной составляющей, так и получилось.
На видео ниже норвежский про-игрок с ником Wirtual рассказывает об одном из таких случаев, по-моему, очень интересно и напряжённо вышло :)
#games
https://www.youtube.com/watch?v=_b67SC7Y4qA
Соскучились по паттернам? У нас тут как раз есть новые выпуски 💻
В этот раз обсуждаем поведенческие паттерны:
1️⃣Strategy (Стратегия) и State (Состояние). Один из них инкапсулирует алгоритмы или поведение в специальные классы, второй — проверки состояния объекта для изменения его поведения;
2️⃣Command и Mediator. Идея Команды в том, чтобы отделить объект, инициирующий операцию, от объекта, который «знает», как её выполнить. Посредник же отвечает за координацию взаимодействий между группой объектов;
3️⃣Observer (Наблюдатель) и Chain Of Responsibility (Цепочка обязанностей) — паттерны, один из которых оповещает при изменении состояния системы, второй — отделяет инициатора от получателя передачей операции;
4️⃣Memento и Template Method. Хранитель фиксирует внутреннее состояние объекта, а Шаблонный метод — описывает алгоритм действий, реализуемый через наследование и абстрактные методы.
Посмотреть все четыре выпуска можно в удобном формате на сайте.
#backend
Продолжаем разбираться в паттернах! На очереди — порождающие🚀
В новом выпуске рассмотрим первые два Builder (Строитель) и Factory Method (Фабричный метод) — паттерны, задача которых скрывать детали создания объектов в абстракциях.
🔍 В выпуске рассказали про подводные камни использования, их назначение, плюсы и минусы. А ещё объяснили, откуда взялся паттерн фабрика и почему паттерны — не аксиомы:
📺YouTube
🔵 VK Видео
💻Rutube
#backend
Секунду… Это что, новый курс от команды разработчиков? 🚀
Так точно! Наш бэкенд-инженер Юра Афанасьев создал обучающий курс по паттернам и практикам написания кода. В нём он разбирает порождающие, структурные и поведенческие паттерны, историю их создания и методы в основе.
Ещё из плюсов: простая и понятная подача, короткие и насыщенные информацией материалы, курс подходит как начинающим инженерам, так и миддлам.
Кратко о Юре:
⚡️ Больше 15 лет в коммерческой разработке;
⚡️ Больше 6 лет в Авито (сейчас в департаменте монетизации);
⚡️ 12 лет писал на Php и 4 — на Golang;
⚡️ Организатор внутреннего коммьюнити в Авито.
В первой части — про историю создания паттернов. Выбирайте удобный формат и смотрите:
📺YouTube
🔵VK Видео
💻Rutube
#backend
#вакансия#backend#python
Senior/Middle Backend developer
Формат: удаленно по всему миру
Наш часовой пояс: UTC+3
Занятость: full-time/part-time на проект
Оплата: до 350 000₽ или почасовая
(уточняется при собеседовании)
Мы ищем опытного Backend-разработчика на проектную деятельность в команду Subscale AI для реализации собственного AI-сервиса
Стек технологий:
- Язык: Python(Django, Flask)
- Базы данных: PostgreSQL, MySQL, MongoDB, Redis
- API: REST, GraphQL
- Docker, Kubernetes
- AWS, Google Cloud, Azure
Задачи и навыки:
- Разработка и интеграция с API различных сервисов
- Реализация логики тарифных планов и ограничения запросов
- Управление базами данных пользователей и их запросов
- Работа с контейнерами и оркестраторами для развертывания и управления микросервисами
- Понимание принципов масштабируемости и высоконагруженных систем
- Умение работать в команде и решать сложные задачи
Индивидуальные требования:
- Часовой пояс в пределах +-3 часов от UTC+3
- Свободное владение Русским языком
- Владение Английским языком
Мы предлагаем:
- Интересные проекты с возможностью творческой реализации
- Возможность принять участие в выводе продуктов и сервисов бренда на международный рынок
- Карьерный рост до Team Lead
- Отсутствие привязки к месту и возможность оплаты труда в любую точку мира
- Свобода мысли и принятия решений при реализации проектов
Кого мы хотим видеть:
- амбициозных, инициативных и талантливых разработчиков, желающих достигать новых высот, которые легко вольются в нашу молодую команду
Сразу отправляйте резюме/CV: @subscale_ai
«Знаете, что звучит ещё круче, чем AvitoTech?
AvitoTechno!»🔥
Подумали мы, и собрали мега крутую, верховную онлайн-вечеринку уходящего рабочего 2025 для всего ИТ-комьюнити!
В последнюю рабочую пятницу 26 декабря выдыхаем, собираем коллег и врываемся к нам на стрим AvitoTechno!
В лайн-апе:
🕚сеты от разработчиков Dj команды AvitoTech;
🕚крышесносное выступление BÖRIS REDWÄLL;
🕚и девчонок из LAVBLAST.
А ещё во время вечеринки проведём розыгрыш лимитированного AvitoTechno-бокса (внутри свитер, снежный шар с нашим котиком Б/У, шапка и обвес).
Главный вопрос: как попасть на AvitoTechno и поучаствовать в розыгрыше?
Бегом в бот за бесплатным билетом и ссылками на стрим!
И коллегам не забудьте отправить этот пост.
🚀 Затусим вместе на AvitoTechno!
#tl#backend
Открыта регистрация на .NET School!
Курс по бэкенд-разработке даст все необходимые знания и навыки для позиции Junior.
✅Нет входного тестирования | 👨💻Онлайн | ☺️ Бесплатно
❓Хотите получить первый кейс для портфолио? 💥На курсе вы пройдете полный цикл разработки WebAPI от проектирования БД до CI/CD и напишете работающее веб-приложение на C#.
Преимущества:
👉🏻полностью бесплатное обучение;
👉🏻преподаватели курса — опытные веб-разработчики;
👉🏻самых талантливых пригласим на собеседование.
Что нужно, чтобы успешно пройти курс:
📌базовые знания С#;
📌базовые навыки программирования в Visual Studio;
📌интерес к разработке веб-приложений;
Формат:
💻 онлайн: лекции + практические занятия + курсовой проект.
💬Подробности и регистрацияпо ссылке.
#DSRCorporation#DoingSoftwareRight#DSR_courses#backend
#backend#laravel
11-Dars | Saytni Ko'p Tilli Qilish
Ushbu darsda Saytdagi Statik va dinamik ma’lumotlarni ko’p tilli qilishni o'rganishingiz mumkin
🖤Darsni ko'rish uchun: link
💻@dasturlash_hayoti— dasturchilar va dasturlash hayotini yoritib boradigan loyiha!
#удаленка#backend#python
Привет. Я владелец продукта в компании Гринатом (компания входит в Росатом) и мне в отдел очень нужны Backend-middle/senior'ы. В данный момент мы разрабатываем собственное OCR-решение, направленное на автоматизацию документопотока как внутри всего Росатома, так и для внешних клиентов. Решение разрабатывается под серьезную нагрузку (до 40 тысяч документов в час) и под разные цели, начиная от распознавания паспортов и заканчивая сложными, неструктурированными документами. В центре продукта лежит собственная сетка по распознаванию, которая уже делает на 70% меньше ошибок, чем Tesseract V5.
🧠 Обязанности:
• Разработка системы OCR с использованием open source решений (backend);
• Написание высоконагруженных приложений и микросервисов на Python;
• Участие в разработке уже имеющихся приложений в составе команды Data Science;
• Взаимодействие с аналитиками, DataScience-специалистами;
• Участие в принятии архитектурных решений по проекту;
• Поддержка и развитие созданных решений;
• Написание unit-тестов на pytest.
🧠 Требования:
• Опыт разработки серверных приложений – от 2-х лет;
• Уверенное знание Python 3+, SQL;
• Знание фреймворков FastAPI/Flask;
• Знание базовых алгоритмов и структур данных;
• Опыт разработки нагруженных отказоустойчивых систем;
• Умение работать с серверной инфраструктурой: Nginx, Docker и т.п.
• Опыт работы с базами данных: PostgreSQL, MongoDB, Redis;
• Опыт работы с RabbitMQ;
• Опыт работы с объектным хранилищем: s3, Minio;
• Опыт работы с GIT, знание CI/CD;
• Опыт работы с Linux.
🧠 Будет большим плюсом:
• Опыт работы с OCR системами;
• Опыт интеграционных и системных тестов;
• Опыт работы с высоконагруженными системами
🧠 Будет плюсом:
• Понимание микросервисной архитектуры;
• Знание методологии Scrum;
• Опыт работы с Open Project;
• Опыт тестирования клиент-серверных запросов;
• Опыт наставничества и codereview.
✍️Да, мы «госуха», но у нас нет проблем ни с выездом заграницу, ни с оплатой труда. Работаем полностью удаленно, поэтому в офис можешь не ходить или работать хоть из тайги. Есть классный ДМС и разные отсрочки.
✍️В отделе уже более 50 человек: бэки, фронты, ds, аналитики, разметчики, дизайнеры и много кто еще. С большими проектами работаем по скраму. С малыми в более упрощенном режиме.
💵Оклад: 150-350 на руки + до 1 млн. рублей годовой бонус
Писать: @MoveSlowAttackFaster или [email protected]