Обновить
1024K+

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

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

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

1038 баллов на Hacker News собрал пост про отказ от AI-кодинга. У меня была та же ночь, но другой вывод

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

9 мая пост «I’m going back to writing code by hand» набрал на Hacker News 1038 баллов и 617 комментариев. Автор семь месяцев вайб-кодил Kubernetes-дашборд с Claude, дошёл до god object на 1690 строк и бросил AI-кодинг. Я узнал в этом свою историю полугодовой давности, но вывод сделал другой.

Читать далее

Ленивые импорты в Python 3.15: как PEP 810 ускоряет старт приложений

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

На PyCon US 2026 Руководящий совет Python рассказал о новых возможностях Python 3.15. Среди них — явные ленивые импорты (PEP 810): модули теперь можно загружать не при старте программы, а только в момент первого обращения. Я решил разобраться, как это работает, и измерить производительность в PyCharm.

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 16. HUD

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

Сегодня мы закончим ковырять порт тайловых миров на F#. Правда, в прошлый раз мы исчерпали запас того, что вообще можно было «портировать», поэтому переключим внимание на совершенно новые фичи. Все они касаются UI (в узком смысле), ну или, говоря терминами игровой индустрии, HUD (Heads-Up Display).

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

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

Читать далее

Обновления GigaIDE за июнь 2026

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

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

Читать далее

Ускоряем импорт цен и остатков в 1С-Битрикс: от часов к секундам

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

Стандартный обмен данными в 1С-Битрикс часто превращается в ночной кошмар: полная выгрузка остатков на больших каталогах может занимать от 1 до 8 часов. Когда бизнес требует обновлять данные каждые 15 минут, штатные методы API и XML-импорт просто перестают справляться.

В этой статье я покажу, как с помощью прямого SQL запроса и временных таблиц в памяти (ENGINE=MEMORY) ускорить импорт в сотни раз. Это реальный кейс с продакшена, который стабильно работает уже 4 года на проекте с миллионом товаров и десятками складов.

Читать далее

Помочь пользователю открыть новое: как мы боролись с замкнутым кругом рекомендаций в Яндекс Лавке

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

Хорошая рекомендательная система быстро учится угадывать, что вы положите в корзину. И чем точнее она угадывает, тем реже показывает что‑то незнакомое: ведь выгоднее предлагать проверенное. Со временем система замыкается на привычках человека и перестаёт показывать ему хоть что‑то за их пределами.

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

Меня зовут Рамиль Боярченков, я занимаюсь машинным обучением в команде Яндекс Лавки. Расскажу, как мы собрали механизм, который подмешивает незнакомые товары персонально — тем, кто к ним расположен, — и с какой вероятностью это делать для каждого пользователя. По пути разберу, как мы калибровали «агрессивность» exploration и что получилось в итоге.

Читать далее

Как я построил систему, внутри которой AI пишет код

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

Последние полгода я почти не пишу код руками. Вместо этого я проектирую инженерную систему, в которой AI пишет код, а Git, тесты, CI, агенты и правила не позволяют ему принимать неправильные решения.

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

Читать далее

Java Digest #37: что нового в JDK 27, Spring Boot 4.1 и Hibernate 8.0

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

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

В этом выпуске о том, что Java наконец-то делает шаг в будущее: value-классы впервые выходят в preview, а в JDK 27 по умолчанию включаются компактные заголовки объектов и G1. Наблюдаем сдвиг платформы в сторону производительности, безопасности и удобства.

Читать далее

Чёрный рынок токенов на Claude в Китае и много релизов

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

20-й выпуск IT-новостей от OpenIDE!

Спустя 18 дней Anthropic вернули доступ к Fable 5, в Китае Claude тем временем продают в десять раз дешевле официального прайса, китайская Z.ai выпустила клон Claude Code без VPN, а Grok 4.5 заявляет, что обошёл Opus — проверить это может разве что сам Маск.

Читать далее

От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

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

Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходит около 600 000 RPS, а строгий SLA требует ответа в пределах 50 мс. Для расчёта нужно за минимальное время выбрать оптимальный склад с учётом остатков, доступности и других данных, которые хранятся в разных микросервисах и их базах данных.

Первое, что приходит на ум, — обратиться к этим сервисам по API во время запроса и получить всё необходимое для расчёта. Но один запрос может затрагивать сотни и даже тысячи складов, не считая связанных сущностей. Такое число сетевых вызовов быстро превысит SLA и приведёт к клиентским таймаутам. Сетевые запросы к мастер-системам в нашем случае — непозволительная роскошь, поэтому мы вынуждены держать слепок данных прямо в памяти подов. А значит, появляется новая проблема: как быстро и надёжно доставлять постоянно меняющиеся данные из мастер-систем в оперативную память сотен подов.

Читать далее

Важные языки. Часть 3. Оберон

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

Статью про язык программирования Оберон я не мог начать много раз.

Любое упоминание Оберона в непрофильных, а нередко и в профильных сообществах, приводит к таким «дракам», что камня на камне не остаётся!

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

Я долго не мог понять этот феномен, пока однажды не увидел воочию, как происходит обсуждение картины «Чёрный квадрат» Казимира Малевича. И тут пазл сложился.

Читать далее

Борис Чёрный: уроженец Одессы и создатель Claude Code

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

Бориса Чёрного эвакуировали в США совсем маленьким, примерно в четыре годика. В этом смысле он немного похож на Брина, которого увезли из Москвы в шестилетнем возрасте. Обе семьи бежали от нищеты, чтобы обеспечить детям надежду на светлое будущее в стране, где реально каждый талантливый паренёк может своим умом заработать миллион или миллиард долларов.

Читать далее

Как я делал компактную библиотеку для создания приложений с графическим интерфейсом на языке C++. Часть 3

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

Это третья статья из цикла статей о создании компактной кросс‑платформенной библиотеки для разработки приложений с графическим интерфейсом на языке C++ — Frenchie. Для тех, кто привык изучать исходный код самостоятельно, репозиторий с исходным кодом библиотеки можно найти по ссылке. В данном материале я продолжу рассказывать про ту часть библиотеки, которая управляет состоянием контекстного окна и отслеживает связанные с ним события.

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

Читать далее

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

Транскрибатор (перевод аудиозаписей в текст) EMT. Простой, бесплатный, конфиденциальный

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

Мы уже много лет разрабатываем и производим диктофоны для безопасности Edic-mini, самые маленькие в мире, кстати, по данным Книги Рекордов Гиннесса.

Читать далее

Как я делал компактную библиотеку для создания приложений с графическим интерфейсом на языке C++. Часть 2

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

Это вторая статья из цикла статей о создании компактной кросс‑платформенной библиотеки для разработки приложений с графическим интерфейсом на языке C++ — Frenchie. Для тех, кто привык изучать исходный код самостоятельно, репозиторий с исходным кодом библиотеки находится по ссылке. В данном материале я расскажу, про ту часть библиотеки, которая управляет состоянием контекстного окна и отслеживает связанные с ним события - platform backend.

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

Читать далее

Как сломать Swift Concurrency

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

Нужно выполнять асинхронные операции, поддерживать многозадачность в приложении? Async/await к вашим услугам - просто и приятно. Кооперативный пул эффективно переключает потоки между задачами, а компилятор проверяет типы на потокобезопасность. И даже можно подсоединять старые части кода, написанные ещё на GCD!

Вот только приложение на проде почему-то начало виснуть…

Читать далее

Заметки о том, как я писал SFU на Rust (1 часть)

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

Как устроен SFU изнутри: Publisher, Subscriber, комната-маршрутизатор и никакого перекодирования. Дневник разработки на Rust.

Читать далее

Галлюцинации: почему LLM «тупеют» от «умных» промтов

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

Как разработчик, я должен пользоваться ИИ на работе. Я бы, конечно, предпочел безлимитный Claude, но мне доступен только Qwen Code, а он часто галлюцинирует. В этой статье я расскажу, как искал причины галлюцинаций, устранял их и к чему это привело.

Первая моя задача для ИИ-помощника – CLI-агента, была простой, её можно было бы решить инструментом «найти и заменить» в IDE минут за 20, а агент трудился – часа два, что непозволительно много. Он постоянно галлюцинировал, добавлял ненужные артефакты, а я продолжал попытки направить его в нужное русло уже из спортивного интереса. Только после этого замечательного опыта я наконец решил «прочитать инструкцию»...

Читать далее

Промпт против скилла: прогнал библиотеку промптов Anthropic и скилл grill-me

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

Пять промптов, один злой скилл и парсер Хабра: полевой отчёт не-разработчика о двух часах в Claude Code

Читать далее

Действительно богатые сообщения в Telegram-ботах: разбираем Rich Messages

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

Всем привет!

Очень долгое время разработчики Telegram-ботов довольствовались двумя способами форматирования сообщений: HTML и Markdown. Оба этих способа делали одно и то же: добавляли простое форматирование в обычный текст.

Для большинства задач этого было достаточно, но в какой-то момент обычного HTML и Markdown может не хватать.

В недавнем обновлении Telegram Bot API 10.1 эту проблему решили, добавив Rich Messages. Обзор которого я и сделаю в статье.

Читать далее