Обновить

Бэкенд

Сначала показывать
Порог рейтинга
Уровень сложности

Fizz Buzz на косинусах

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.4K

Fizz Buzz — это игра с числами, которая стала неожиданно популярной в мире компьютерного программирования в качестве простой проверки базовых навыков. Правила игры просты: игроки вслух произносят по порядку числа, начиная с единицы. Если число делится на 3, игрок должен сказать вместо него «Fizz». Если число делится на 5, он должен сказать «Buzz». Если оно делится и на 3, и на 5, игрок говорит «FizzBuzz». Вот типичная программа на Python, выводящая нужную последовательность:

for n in range(1, 101):

if n % 15 == 0:

print('FizzBuzz')

elif n % 3 == 0:

print('Fizz')

elif n % 5 == 0:

print('Buzz')

else:

print(n)

А вот её вывод: fizz-buzz.txt. Можно ли усложнить эту программу? Слова «Fizz», «Buzz» и «FizzBuzz» повторяются в этой последовательности периодически. А что ещё у нас есть периодического? Тригонометрические функции! Возможно, нам удастся при помощи этих функций закодировать все четыре правила последовательности в выражении в аналитическом виде. Именно эту задачу мы и исследуем в статье, получив в конце дискретный ряд Фурье, который может получить любое целочисленное n и выбрать для печати соответствующий текст.

Читать далее

Лучшие нейросети для вайбкодинга на 1С 6 (финал)

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

В этой части добавил Claude Opus 4.5 и GPT 5.1-Codex-Max

Предыдущая часть

Для тех, кто не любит читать, результат сразу тут:

Читать далее

Темпорал для начинающих

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели15K

При разработке программных продуктов иногда может появиться задача разработки многосоставного ступенчатого процесса. На каждом этапе которого нужно предусмотреть обработку ошибок, повторное выполнение операции, откат с начальному состоянию в случае ошибки и тд. В этой статье я расскажу, как в таких случаях можно применить temporal и покажу пример кода на java. В конце приложу ссылку на исходный код, так что можно будет скачать и самому поиграться с настройками, процессами и тд.

Изучить детальнее..

Claude Code за 4 часа написал AI чатбот (и мы выложили его в open source)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели20K

Попросили Claude Code CLI сделать AI-чатбот для нашей платформы. Через 4 часа получили рабочее решение: контекстно-зависимый виджет, база знаний на markdown, эскалация в Telegram, автоматический сбор багов. Работает в production, выложили в open source.

GitHub
Лицензия: MIT

Читать далее

Выразительность против разрешимости: почему «мощные» системы тяжело анализировать

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели12K

В программировании мы привыкли торговаться временем против памяти, но есть ещё один, менее очевидный, компромисс — между тем, что система в принципе умеет выражать, и тем, что о ней потом вообще можно строго сказать. Машины Тьюринга, PDA и DFA, Rust и Python, SAT и SMT, системы типов, макросы и метапрограммирование — всё это разные точки в одной и той же решётке «выразительность против разрешимости», просто по разным осям.

В статье разберемся, почему достаточно «мощные» модели и языки неизбежно становятся плохо анализируемыми, почему это не линейный спектр, а набор пересекающихся измерений, и как этот компромисс проступает в очень практичных вещах — от систем типов и статанализа до архитектурных решений в реальных проектах.

Читать разбор

Как мы в MWS создали внутренний курс для Java-разработчиков. И что можем посоветовать, если вы тоже хотите

Время на прочтение15 мин
Охват и читатели8.4K

Привет, Хабр! На связи команда «МТС Аналитика»: техлид Саша Бобряков и ведущий разработчик Рома Захаров. Со дня на день мы в MWS запустим собственный комплексный курс по Java, который создали в рамках внутренней образовательной платформы МТС Тета. Он предназначен для внутренних разработчиков и поможет вырасти из уровня middle в senior. 

Зачем мы вообще его затеяли? Нам хотелось систематизировать «коллективный опыт» компании, выровнять грейды, чтобы мидл в условной команде X владел теми же навыками, что и мидл в команде Y, а еще — дать коллегам надежную базу, чтобы они росли в своем направлении. Работая над курсом, мы и сами многому научились. Например, выступать перед камерой, беспощадно отсекать избыточное, а еще — находить общий язык с дизайнерами (да, разрабам это не всегда дается легко).

Сейчас мы на финишной прямой, и пока впечатления о процессе работы еще свежи, нам захотелось ими с вами поделиться. Расскажем, в чем вообще польза от таких курсов для компании, как мы строили программу, какие сложности были. И посоветуем, на что стоит обратить внимание, если в вас тоже не умер преподаватель (да и ученик).

Читать далее

Хаос, фракталы и голограммы

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.9K

Мои наблюдения окружающего мира навели меня на мысль о том, что имеют место глубокие аналогии в структурах трех вещей: пластинки с записью голограммы изображения, живые многоклеточные организмы и изображения фракталов. Любая часть, раздробленных голографической пластинки, фрактала и живая клетка организма несут в себе содержательную информацию о первичном исходном объекте. Осколок разбитой пластинки с голограммой при прохождении через него лазерного луча восстанавливает полное исходное изображение; отдельная живая клетка, помещенная в соответствующую среду, обеспечивает воссоздание полного организма; выборка даже очень малой части фрактала – самоподобна всему фракталу. Некоторые отличия заключаются в форме представления такой информации.
Здесь, возможно, следует еще упомянуть и структуру Вселенной (мироздания), но это обдумано мной в меньшей степени.
С указанной аналогией я не буду заходить слишком далеко, а остановлюсь лишь на некоторых известных фактах – примерах.

Читать далее

Алгоритмы нужны программистам, или cамая быстрая и простая реализация RMQ

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели14K

Недавно встретилась по работе интересная задача, прямо на те самые презираемые на интервью алгоритмы. Очередное доказательство, что, по крайней мере, в Гугле алгоритмы нужны. А значит и интервью у них вообще-то не оторваны от реальности.

Итак, задача: есть лог видео конференции, состоящий из событий - в такое-то время такой-то пользователь подключился или отключился. Надо посчитать статистику. Среди прочего скучного надо для каждого пользователя найти, сколько максимально пользователей было вместе с ним в какой-то момент времени.

В статье описано как эту задачу решать действительно быстро - за линейную сложность.

Читать далее

Перейти на PostgreSQL и повысить качество системы

Уровень сложностиСредний
Время на прочтение37 мин
Охват и читатели7K

В интернете есть много статей на тему «как перевести старую систему с Oracle на PostgreSQL». Как мигрировать схему данных, сами данные и логику. Не буду повторять это, просто сравню две СУБД на небольшом вымышленном учебном примере. Я расскажу про то, как организовать процесс написания и проверки кода системы для PostgreSQL, чтобы на выходе получился продукт даже более качественный, чем он мог быть без смены СУБД.

Чтобы было интереснее, я решил объединить два жанра и сделать техническую статью в виде фантастического рассказа. Тут будет и мультивселенная, и путешествия во времени. Вся фантастика оформлена в виде цитат, чтобы те, кто хочет просто факты, могли не терять время.

Читать далее

Наши первые шаги по миграции в Kubernetes

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.7K

Существенная часть сервисов нашего собственного проекта работает как bare metal. В этой статье хотим рассказать о том, как мы под давлением масштабирования переезжали в Kubernetes - что попробовали и отмели, какую в итоге конфигурацию выбрали и почему, куда планируем двигаться дальше.

Читать далее

Понимание и практические эксперименты с Tablet в StarRocks

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели4.5K

внутренняя структура, репликации и балансировка, бакетизация и партиционирование, восстановление и MVCC, загрузка данных (Stream Load). Разбираем типичные сценарии и даём рекомендации для Data Engineers и DBAs.

Читать далее

6 лайфхаков при внедрении СУБД: учимся на чужих граблях

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.7K

Привет, Хабр! Меня зовут Кирилл Тарасов, я — инженер данных в K2Tех. Наша команда Big Data & Bi работает с 2006 года, мы активно занимаемся Greenplum, Arenadata Hadoop/Streaming и внедряем собственные наработки, такие как ELT Framework. Также с 2012 года мы создаём аналитические системы и хранилища данных, и за это время моя команда столкнулась с самыми разными ситуациями, которые вызывали различные проблемы для реальной продуктивной эксплуатации СУБД. Некоторые из них были связаны с настройками баз данных, другие — с компонентами защиты, а третьи были настолько необычными, что их причиной оказалось исключительно странное и редкое поведение бизнес-логики, с которым разработчики хранилищ данных почти не сталкиваются. В этой статье вы найдете шесть кейсов, которые могут встретиться на любом проекте. Они помогут избежать попадания «ложки дегтя» в ваше хранилище.  

Читать далее

Файловое хранилище Wildberries: бескомпромиссный HighLoad

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.8K

Привет, меня зовут Иван Волков, я CTO продукта CDN MediaBasket в Wildberries. Это большое распределенное файловое хранилище, используемое различными внутренними продуктами Wildberries. Одним из продуктов, с которым взаимодействуют внешние клиенты, является каталог товаров. Это ставит перед хранилищем высокую планку по оптимизации и готовности к экстремальным нагрузкам. В этой статье я расскажу, какие решения мы использовали в архитектуре продукта и как при миллионном RPS мы доставляем картинки пользователям за считанные миллисекунды.

Читать далее

Ближайшие события

Как патчить ядро Linux: подробное руководство

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели14K

Всем привет, это Тимур. Сейчас в YADRO я разрабатываю сетевую операционную систему для коммутаторов KORNFELD. В ходе этого проекта летом я получил сложную задачу: реализовать установку опции PROTO_DOWN для Ethernet-интерфейсов в ядре Linux. «Из коробки» ядро поддерживает эту опцию только для vxlan и macvlan-интерфейсов, а для Ethernet поддержка определяется драйвером сетевого устройства.

В статье я подробно расскажу о той части задачи, что касается непосредственно ядра Linux. На реализацию требования я потратил много сил, времени и хочу, чтобы мой опыт остался в сообществе. Постараюсь максимально подробно объяснить каждый шаг, чтобы вы смогли построить собственный процесс разработки на этой основе, даже если никогда не занимались разработкой для ядра. Статья будет полезна не только программистам, но и любителям Linux, так как в большей степени она посвящена тонкостям работы с этой ОС, а не программированию.

Читать далее

Категории типов. Часть 5. Пределы и сопряжения функторов

Уровень сложностиСложный
Время на прочтение23 мин
Охват и читатели4.7K

Ранее мы выяснили, что монадные возможности присущи эндофункторам, основанных на определённых ковариантных обобщённых типах. Обобщённые же типы соответствуют алгебраическим выражениям, собранным из сумм, произведений и экспоненциалов типов.

В этой части обзора мы увидим, почему конструкторы типов связаны с алгебраическими операциями, и как сама эта связь порождает монады и комонады.

Читать далее

FastAPI: Хватит писать всё в main.py. Гайд по нормальной структуре для новичков

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели22K

Написать API на FastAPI легко. Написать поддерживаемое API — сложнее. Часто новички (и не только) игнорируют структуру проекта, сваливая всё в кучу или создавая циклические зависимости.

В этой статье разбираем эталонную структуру REST API сервиса на стеке 2025 года:

• Уходим от main.py к модульной системе через APIRouter.
• Разбираем, почему нельзя путать Pydantic Schemas и SQLAlchemy Models (и как их подружить через from_attributes).
• Настраиваем честную асинхронность с aiosqlite и Dependency Injection.
• 5 практических задач для закрепления материала.

Читать далее

Compo B2B Platform vs 1С-Битрикс Enterprise: особенности внедрения

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.3K

Сегодня на рынке B2B/B2C‑платформ в России конкурируют два подхода. Яркие представители этих подходов, Compo B2B Platform, созданная по принципам headless‑commerce, ориентирована на модульность и микросервисный подход. С другой стороны — 1С‑Битрикс Enterprise, один из самых распространённых в России корпоративных продуктов для веб‑разработки, выросший из CMS‑системы и ставший полноценной платформой для e‑commerce и корпоративных порталов.

В этом материале мы проанализируем архитектуру, интеграции, управление данными, безопасность, бизнес‑возможности и экономику. Сравнение поможет оценить реальную применимость и ценность решений для бизнеса.

Читать далее

Как я Rust в Python встраивал

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.7K

Rust все популярней, а вместе c этим создается много библиотек для Python на Rust.
В данной статье узнаем, как создать простенькую библиотеку для Python на Rust на примере кодирования данных в Base 64.

Читать далее

Floxy — лёгкий Saga Workflow Engine на Go

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели6K

Когда бизнес-логика обработчика запроса выходит за рамки одной транзакции, код быстро обрастает ручными откатами и сложной оркестрацией. Большие системы вроде Temporal решают эту проблему, но требуют собственной инфраструктуры и сложного деплоя — не всегда возможного, особенно в коробочных решениях. Floxy предлагает другой путь: лёгкий встраиваемый Saga-движок на Go, реализующий оркестрацию и компенсации без внешних сервисов, брокеров и YAML DSL для вашего приложения — только чистый Go и PostgreSQL.

Читать далее

Мой опыт парного программирования с Chat GPT-5

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели13K

Привет, Хабр! Про модели искусственного интеллекта сейчас не говорит только ленивый. Высказывается множество мнений и нередко они оказываются на противоположных полюсах: от полного скепсиса до убеждённости, что произошла новая научно-техническая революция. Жизненный опыт подсказывает, что истина где-то по-середине и инструмент будет полезным ровно настолько, насколько ты умеешь им пользоваться. В относительно недавнем интервью генеральный директор Microsoft Сатья Наделла заявил, что примерно 20-30 % кода в Microsoft уже сейчас генерируется ИИ и разработчикам надо будет адаптироваться. Мне тоже захотелось попробовать внедрить такого помощника в свои рабочие процессы и посмотреть, что из этого получится.

Читать далее