Как стать автором
Обновить
990.09

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

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

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

Техдолг: симптомы, диагностика и лечение

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

Бывает, что в команде начинает что-то идти не так: увеличивается количество факапов, разработчики начинают увольняться, задачи делаются месяцами годами. Часть этих проблем может уходить корнями в накопленный техдолг.

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

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

Читать далее

Топ LLM для задач text‑to‑SQL: результаты теста DeepSeek R1-0528, Gemini 2.5 Pro, o3 (и ещё трёх моделей)

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

В первой части мы разобрали теорию text‑to‑SQL: как LLM заменяют разработчиков, почему RAG и CoT спасают от галлюцинаций и зачем Scale AI дообучает ChatGPT-4. Но теория неполна без практики! В этом материале — жёсткое тестирование моделей (ChatGPT o3-mini‑high, ChatGPT 4.1, Claude Sonnet 4, ChatGPT o3, Gemini 2.5 Pro, DeepSeek R1–0528) на бенчмарке LiveSQLBench.

6 моделей, 10 задач, сложность от ★★ до ★★★★★★★★★★. Проверим, как они считают лунные помехи, генерируют SQL для криптобирж и ищут артефакты в музеях.

Читать далее

Хроника изменений API фоновой работы в Android

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

Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наше приложение выполняет важную задачу — хранит воспоминания пользователей. Для этого необходимо уметь правильно работать с файлами в фоне, чтобы не только надёжно хранить те самые воспоминания, но и быстро их загружать, редактировать и делиться. В этой статье я расскажу о том, как мы пришли к нашим современным методам фоновой работы в Android.

Читать далее

Современные подходы «из текста в SQL»: RAG, CoT и другие хитрости

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

Как превратить текст «Сколько было продано камер в прошлом месяце?» в осмысленный SQL‑запрос? Это и есть задача text‑to‑SQL (ее ещё называют NL2SQL). Для многих компаний сейчас очень важна возможность задавать вопросы к данным обычным языком, без изучения SQL. Для этой задачи написаны десятки инструментов, но суть одна — генерация корректного запроса из фразы на человеческом языке.

Требование проясняется примером: бизнес‑пользователь хочет узнать: «Какие топ-5 товаров по выручке за вчерашний день?» — а система превращает это в SELECT product, SUM(revenue) ... LIMIT 5 и выдаёт результат. До недавнего времени требовались сложные пайплайны или ручное кодирование, а сейчас на сцене — большие языковые модели (LLM) и всякие прокачанные методы достучаться до них.

В этой статье мы пробежимся по ретро‑ и ультрасовременным подходам к text‑to‑SQL. Плюс обзору добавим практических инсайтов.

Читать далее

Java Digest # 26

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

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске будут материалы о том, как ускорить запуск приложений с помощью ReadyNow и CRaC — двух подходов к оптимизации старта. Разберем тонкости аннотации @TestInstance(PER_CLASS) в JUnit 5 и ее влияние на жизненный цикл тестов. 

Тем, кто работает со Spring, может пригодиться обзор Spring Debugger от JetBrains — плагина, который делает отладку наглядной и удобной. Еще будет доклад о повышении производительности Spring Data JPA и Hibernate. И в завершение — сравнение FFM API с Unsafe: посмотрим, какой трейдофф между скоростью и безопасностью предлагает новый подход. Приятного прочтения!

Читать выпуск №26

Как писать красивый и чистый код питонистам?

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

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

Читать далее

Почему разработчики не делают «по уму», даже когда знают как

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

Почему даже сильные разработчики делают на авось?

Команда вроде опытная, но в проде — баги, архитектура — костыль на костыле, а фичи заливаются «на нервах»?

Читать далее

Путешествие по Avalonia

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

В эпоху монолитных UI-фреймворков существовала легенда о земле, где один код правил всеми платформами. Сегодня мы ступаем на берега этого забытого материка зовущегося Avalonia.

Материк Avalonia разделен на шесть регионов: королевство Windows, вольные территории Linux, горные цитадели macOS, мобильные княжества Android, побережные владения iOS, туманный архипелаг WebAssembly. Вооружимся компасом статического анализа и будем вести дневник наблюдений.

Читать далее

Агенты & Агентная экономика

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

Большой Дайджест Недели. 07.07.25

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

Эксперименты в гибридных командах, когда людей произвольным образом объединяли с ИИ-агентами... совместимость личностных характеристик человека и ИИ критически важна...

Опенсорсный клон Perplexity...

Читать далее

Мы — не семья: как компании заставляют тебя работать за идею и спасибо

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

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

«Добро пожаловать в команду! Мы — не просто коллеги, мы как семья. У нас общие ценности, мы заботимся друг о друге и делаем великое дело».

Читать далее

Настройка среды разработки: VSCode, Docker для Python-проектов. Debug внутри контейнера

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

В этой статье мы подробно рассмотрим процесс установки и настройки всех необходимых инструментов для эффективной разработки Python-приложений с использованием FastAPI, Docker и Docker Compose. Вы узнаете, как создать изолированную среду для вашего проекта, настроить отладку и обеспечить бесперебойную работу вашего приложения.

Читать далее

Программирование как разработка теорий: почему senior-разработчики стали ценны как никогда?

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

В 1985 году учёный Питер Нур будто зрил в будущее, написав свою работу под названием «Programming as Theory Building», которая сегодня стала весьма актуальной. Мы всё чаще видим, как начинающие разработчики бездумно принимают сгенерированный ИИ код, который толком не понимают, а кодовые базы разрастаются лишёнными теоретических основ реализациями. В свете всего этого чётко вырисовывается основная идея Нура: «программа – это не её исходный код».

Читать далее

Как работают серверы MCP: компоненты, логика и архитектура

Время на прочтение12 мин
Количество просмотров170

Закулисный взгляд на основные компоненты серверов MCP — от обработки запросов и управления сессиями до кеширования и хранилищ контекста.

Современные ассистенты на базе искусственного интеллекта (ИИ) столь же эффективны, насколько богатыми данными и инструментами они располагают.

Протокол контекста модели (MCP) — это открытый стандарт, разработанный с целью связать модели ИИ с различными источниками данных и сервисами. Проще говоря, MCP устанавливает общую клиент-серверную архитектуру, в которой приложения ИИ (как клиенты) подключаются к серверам MCP, предоставляющим доступ к данным, инструментам или иным возможностям в стандартизированной форме.

Вместо создания уникальных интеграций для каждой базы данных, API или корпоративной системы разработчики могут полагаться на единый интерфейс MCP, словно на универсальное “AI-USB”, подключая ИИ к любому источнику данных.

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

Читать далее

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

От PHP к Zig: как я избавился от костылей в биллинг-системе

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

Недавно я занялся реинжинирингом биллинг-панели для VPN, заменив legacy-PHP на Zig.

Результат: скорость выросла в 20 раз, а нагрузка упала на 70%. Но самое интересное — как мне удалось встроить Zig-код прямо в C-бинарник, хотя в интернете почти нет guides на эту тему.

Хотите узнать, как я смог избежать костылей и сделать систему в 10 раз надежнее? Тогда читайте полную статью — там всё: от боли PHP до хитростей сборки Zig в продакшене.

Читать далее

Отревьюируй себя сам! (памятка начинающим)

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

«Работает - не трогай» - самый опасный принцип, который передается между разработчиками быстрее, чем баги через копипасту.
Да, код может запускаться. Да, он даже может делать то, что нужно. Но вопрос в другом - можно ли с ним работать? Понять, поправить, развить, не впадая в экзистенциальный кризис.
Эта памятка не про чистоту ради чистоты. Она про то, чтобы через неделю ты сам себе не писал комменты со словами «кто это вообще придумал». "Отревьюируй" себя пока это не сделал кто-то другой.

Читать далее

О мягких и жёстких ссылках в Linux

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

Ссылки в Linux — это мощный инструмент, позволяющий указывать путь к файлам и каталогам. Существует два основных типа ссылок: жёсткие ссылки и мягкие ссылки (вторые также известны как символические ссылки или симлинки). Понимание различий между этими двумя типами поможет вам эффективно управлять файловой системой.

Читать далее

gRPC, HTTP, Websocket — и все это один сервер

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

Однажды передо мной встала довольно интересная задача: обеспечить взаимодействие стороннего веб-приложения - и набора сервисов, имеющих gRPC интерфейс.
Нужно было проводить обработку данных от веб-приложения через конвейеры AI-агентов, собирать конечный результат, и отдавать его приложению. А также, что немаловажно, обеспечить наглядность мониторинга и управления всем хозяйством.
Мне потребовалось разработать собственный сервер на PHP, в котором поддержать три типа интерфейсов. Во-первых, RestAPI для веб-приложения. Во-вторых, gRPC-сервис для взаимодействия с AI-агентами. В-третьих, HTTP + Websocket для интерактивного мониторинга и управления.
Для этого пришлось создать новый продукт - который, возможно, кажется полезен и вам.

Читать далее

Разработка языков программирования в эру больших языковых моделей: ренессанс посредственности?

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

В исследовании языков программирования меня всегда наиболее привлекала их разработка.

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

Читать далее

Оптимизация индексов базы данных: проблемы, решения, практические рекомендации

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

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

Индекс — это как указатель в толстенном справочнике. Без него, чтобы найти нужный термин, вы обречены листать страницу за страницей. С ним — вы мгновенно открываете нужный раздел. Но что, если указатель сам размером с полкниги? Или ведет не туда? Такой помощник только вредит. С индексами в БД всё то же самое. Грамотная стратегия индексирования — это полет. Ошибочная — это бег в мешках по болоту.

Читать далее

Короткий обзор Pest — неплохой PHP-фреймворк для тестов

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

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

Сегодня рассмотрим Pest — минималистичный, но выразительный тестовый фреймворк для PHP. Он построен поверх PHPUnit и переосмысляет подход к написанию тестов: делает их лаконичнее, читаемее и проще в поддержке.

Pest — не альтернатива PHPUnit, а надстройка над ним. Он предоставляет декларативный DSL, сохраняя все фичи PHPUnit. Это позволяет использовать существующие PHPUnit-фичи, включая assertions, мок-объекты, аннотации, и при этом писать тесты в более компактной форме.

Читать далее

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