Как стать автором
Поиск
Написать публикацию
Обновить
1168.7

Программирование *

Искусство создания компьютерных программ

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

Дескрипторы Python. Подробное руководство

Уровень сложностиСложный
Время на прочтение34 мин
Количество просмотров7.6K

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

Читать далее

std::launder: зачем и когда нужен

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.4K

Привет, Хабр!

В этой статье разберём мутный, но крайне важный инструмент ‒ std::launder. Мы поглядим, зачем его протащили в C++17 и что компилятор делает, когда видит launder.

Читать далее

Творческая переработка MVVM и TCA на примере iOS

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров1.1K

Всем привет, меня зовут Дмитрий Лоренц, я iOS-разработчик в IT-компании GRI. Наш основной клиент — Sunlight, для него мы разрабатываем нескольких мобильных приложений по полному циклу и поддерживаем сайт.

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

Читать далее

Почему multiprocessing.Queue() тормозит и как обойти это с помощью shared_memory

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2K

Привет, Хабр!

Вы запускаете многопроцессную задачу, кидаете данные в multiprocessing.Queue(), а потом вдруг замечаете... что всё тормозит. Муторно. Медленно. Местами прям отвратительно. Вы смотрите в монитор, на top, на htop, на код — и не понимаете: ну ведь должно же летать! А не летит.

Читать далее

Архитектурные принципы Spring Security. Часть третья

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье‑Муару «Spring Security Architecture Principles», в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

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

Читать далее

Современный C++23/26: концепты, корутины и многое другое в высокопроизводительных службах

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

C++ уже десятки лет является краеугольным камнем, на котором строятся программы, ориентированные на высокую производительность. Он лежит в основе самых разных проектов, относящихся практически ко всем аспектам человеческой деятельности — от встроенных систем до платформ высокочастотной торговли. Его возможности по совмещению низкоуровневых средств управления вычислительными ресурсами с высокоуровневыми абстракциями превращают его в уникальный инструмент, подходящий для создания программ, при выполнении которых значение имеет каждая микросекунда. По мере того, как язык развивается, новые стандарты, вроде C++23 и ожидаемого C++26, вводят в него функционал, который улучшает и его возможности по созданию высокопроизводительных программ, и продуктивность пользующихся им программистов. Особенно это касается разработки высокопроизводительных служб — систем, которым требуются низкие задержки и высокие значения пропускной способности, которые нуждаются в эффективном использовании ресурсов. Среди них — аналитические системы, работающие в режиме реального времени, игровые серверы и распределённые системы управления базами данных.

Читать далее

Как я допилил аналог Google Sheets, чтобы хранить данные за пазухой

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.2K

С 1 июля 2025 года хранить персональные данные россиян в иностранных сервисах больше нельзя. Назрел вопрос, что же делать, например, с регистрациями на мероприятия, которые так удобно складывались из формочек Tilda напрямую в Google Sheets без СМС и регистрации. В статье расскажу, как я эту задачу решил с помощью бесплатного open-source сервиса Grist, платного, но копеечного Яндекс Облака и сомнительного Go кода.

Читать далее

Как runtime-контекст помогает AI делать более точные и правильные изменения в коде

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров2K

Как код сам объясняет себя, если у вас есть весь runtime-контекст

Сегодня LLM-ассистенты вроде Cursor и GitHub Copilot уверенно вошли в инструментарий разработчика. Они умеют дописывать код, фиксят баги, помогают с простым рефакторингом. Но всё ещё работают вслепую — без знания реального поведения приложения в рантайме.

Если вы работаете с распределённой системой, то знаете: чтобы ответить на вопрос "что сломано?", нужно больше, чем лог или трасса. Нужен контекст. Полный. Со всеми слоями исполнения: от HTTP-запроса и SQL до внутренних вызовов методов и возвращаемых значений.

В BitDive мы решили отдать этот контекст LLM — и всё это работает прямо в IDE, где вам это и нужно. Давайте посмотрим на конкретном примере, как доступ к полным данным о поведении приложения в рантайме кардинально меняет качество анализа и фиксов.

Читать далее

Проверенный стек технологий для быстрого создания Web SaaS в 2025 году

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.3K

Привет, Хабр! Меня зовут Данил Чернышев, я разрабатываю альтернативу Agile и хочу поделиться своим проверенным стеком библиотек и технологий для скоростной разработки Web SaaS в 2025 году. Прошу профессиональное сообщество в комментариях поделиться своими рецептами для создания качественных программных продуктов.

Читать далее

SOSAL: Современный социальный подход к программированию

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров53K

В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).

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

Читать далее

ОС реального времени в эмуляторе Mario, или Как устроены потоки

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

В своём предыдущем посте о потоках я привёл импровизированное сравнение1:

Потоки2 — это просто состояния сохранения3 эмулятора4, связанные с условием, при котором продолжается их выполнение.

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

Поэтому я добавил многопоточность в Super Mario Bros. для NES.
Читать дальше →

54 открытых урока июня: от ML до микросервисов

Время на прочтение3 мин
Количество просмотров3.2K

Собрали для вас подборку открытых уроков, которые пройдут в рамках онлайн-курсов OTUS в июне. В программе — всё: от кластеризации и CI/CD до системного анализа и тимлидства. Каждое мероприятие — это возможность разобраться в новой теме, задать вопросы экспертам и понять, подходит ли вам выбранное направление.

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

Читать далее

Почему крупный бизнес бежит от ChatGPT на «железки» за $150

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров47K

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

Антон Мальцев знает ответ на этот вопрос. ML Lead в ArtSign и основатель RemiBrain, он с 2014 года развертывает решения компьютерного зрения и ИИ на тысячах Edge-устройств — от городских камер до промышленного оборудования. За десять лет накопил уникальный опыт сравнения облачных и локальных решений в реальных проектах.

Читать далее

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

Scala Digest. Выпуск 29

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров798

Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. 

Мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать двадцать девятый выпуск

Wake Up Remix: Перезагрузка фреймворка для современного веба

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров952

На конференции React прошлым летом команда объявила, что Remix «уходит в спячку».

К тому моменту Remix v2 стал настолько тонкой обёрткой над React Router, что между проектами возникло искусственное разделение. Чтобы упростить архитектуру фреймворка, команда перенесла код сборщика и серверного рантайма из Remix непосредственно в React Router v7, объединив всё лучшее из фреймворка в так называемый “framework mode” для роутера. Также было объявлено о планах добавить ограниченную поддержку React Server Components (RSC) в React Router.

Эта работа была завершена: версия 7 была выпущена в ноябре прошлого года, а в конце мая была представлена предварительная поддержка RSC. Теперь разработчики, использовавшие Remix v1, v2 или более ранние версии React Router, могут рассчитывать на стабильную платформу с долгосрочной поддержкой.

Теперь же, пришло время заняться Remix!

Читать далее

Структурированная генерация в LLM

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.2K

Привет. Меня зовут Андрей Соколов, я руководитель команды LLM в AI VK, которая обучает и дорабатывает модели, а потом помогает другим командам интегрировать их в свои продукты. И сегодня я расскажу про такое направление в LLM, как структурированная генерация. 

Читать далее

Код-ревью: борьба или мотивация?

Время на прочтение6 мин
Количество просмотров2.1K

Привет! Меня зовут Илья, последние 7 лет я занимаюсь фронтендом и наконец решил отметиться на Хабре. Стартую с темы, которая, как кажется, уже успела приесться, но всё ещё вызывает жаркие споры — код ревью (CR). Не смотря на сотни статей и мануалов, каждая команда подходит к этому процессу по‑своему. Хочется зафиксировать и осмыслить собственный опыт, показать, как мы подходили к настройке процесса в реальном проекте, и почему, на мой взгляд, код‑ревью не может быть универсальным, а должен опираться на контекст команды.

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

Читать далее

«Я слышу свой код»: как работает Java-программист, потерявший зрение

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров9.7K

Константин Евтеев @beginner760собирает Java-код с помощью диктора NVDA, редактирует его в Блокноте и передает на Linux по SSH через самописные bash-скрипты. После потери зрения он не потерял интереса к жизни и желания быть полезным и выстроил собственную инженерную экосистему: оглавления по строкам .txt-файлами, навигация по main и маленьким методам, отладка на слух.

Читать далее

Flutter & Dart: Май 2025 — Главное за месяц

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

Май принёс отличные новости для Flutter-разработчиков: обновления SDK, интересные статьи, пачка новых и полезных пакетов, а также видео на русском и английском языках.

Читать далее

Философия программирования зашла в тупик

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

Никто давно не пытается выводить теорий о том как правильно писать код.

Старые теории и способы об этом думать в общественной дискуссии давно свелись к спору о синтаксическом сахаре да и теории те были попыткой выделения каких-то математических свойств кода. Потом как известно была доказана невозможность этого.

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

Читать далее

Вклад авторов