Обновить
1130.71

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

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

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

В защиту «обычных» разработчиков

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

Мем про «10×-разработчика» живёт не просто так — такие люди встречаются. Но это не то, чем можно управлять. Софт делает команда, а скорость задаёт система вокруг неё. В статье — как навести порядок в этой системе, чтобы «обычные» инженеры стабильно давали сильный результат: короткий путь «коммит → прод», быстрый откат вместо героизма, наблюдаемость по умолчанию, удобный платформенный self-service и найм не «самых крутых», а подходящих под задачи и ценности. Продуктивность измеряется не строками кода и не тайтлами, а влиянием на бизнес; остальное — лишь прокси-метрики.

К материалу

От школьного репетиторства до 14 курсов и 1000 студентов: мой путь в edtech

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

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

Читать историю

Может ли искусственный интеллект заменить человека?

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

Если бы меня 5 лет назад об этом спросили, я бы уверенно сказал, что не сможет. Но сейчас я уже сомневаюсь в этом.

Я уже 26 лет работаю в сфере ИТ и за это время написал немало кода. Месяц назад решил проверить, насколько действительно эффективен искусственный интеллект, и попробовать создать с его помощью сайт. И я его создал — точнее, создал его не я, а он. Вот результат: https://windowrepino.ru/. Я лишь ревьюил код и делал рефакторинг.

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

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

Плюс сама работа с фото — выбрать хорошие кадры, обрезать лишнее, что-то поправить, где-то почистить. Всё это вместе с кодом было сделано за месяц.

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

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

Читать далее

Программирование на русском языке

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

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

Да, мой ник «Muxa» возник тогда, когда нельзя было называть папку кириллическим именем «Михаил». Да, моя команда червяков носила имена MAHbKA, CAHbKA, TAHbKA, BAHbKA и так далее Да, я до сих пор стараюсь выкладывать в веб только файлы имеющие в названии [a‑z0-9._‑] — что бы не было проблем с кодировками. Но если вы спросите меня, что из всего этого надо делать вам, то я скажу только про имена файлов, а в остальном не вижу для вас никаких причин не использовать кириллицу. Более того, кириллица давно и прочно обосновалась в именах функций.

Не верите? Щас покажу. Тыц на ссылку.

Ссылка на которую тыц

Как я автоматизировал бронирование устройств с помощью нейросети, n8n и Пачки

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

Современные нейросети снижают порог входа в разработку. Теперь не обязательно быть программистом, чтобы автоматизировать рутину. В этой статье я расскажу, как, будучи руководителем проекта, создал корпоративного бота на n8n и Пачке с помощью ChatGPT и OpenRouter. От хаоса с устройствами до автоматизированной системы бронирования, JSON-запросов и PostgreSQL.

Читать далее

Вайбкодинг становится менее доступным: OpenAI закручивает гайки

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

Вайбкодинг становится менее доступным: OpenAI закручивает гайки

С ноября 2025 года OpenAI добавили лимиты для своего продукта Codex.

Если раньше можно было пользоваться Codex сколько угодно, то теперь, лимиты нещадно душат...

Больше о лимитах

Многопоточность в современном C++: Lock-Free программирование, Memory Ordering и Atomics

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

Многопоточное программирование в C++ традиционно ассоциируется с мьютексами, condition variables и потенциальными проблемами вроде deadlocks и race conditions. Однако современные стандарты C++ (начиная с C++11 и далее) предоставляют инструменты для написания высокопроизводительного многопоточного кода без классических блокировок. В этой статье рассмотрим продвинутые техники: lock-free программирование, атомарные операции и различные модели упорядочивания памяти.

Читать далее

DockerHub удаляет старые JDK теги — ваши пайплайны могут быть под угрозой

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

Если вы используете openjdk:<tag> образы в CI/CD и пулите их с Docker Hub, Вам следует оперативно перепроверить свои пайплайны: мейнтейнеры DockerHub удалили ряд устаревших тегов без громких анонсов. Некоторые сборки уже не работают — пострадали сотни пользователей.

В данной новости, эксперт сообщества Spring АйО Михаил Поливаха рассказывает, что произошло, почему это проблема, и какие есть альтернативы.

Читать далее

Сама не разберётся: мои 7 принципов генерации кода с LLM

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

Всем привет! Меня зовут Виктор, и более трёх лет я работаю с языковыми моделями – от проприетарных решений вроде ChatGPT до open-source систем, которые можно разворачивать локально и встраивать в собственные продукты. Я застал времена жутких галлюцинаций GPT-3.5 и ждал обещанного GPT-5 – того самого почти AGI, которое, казалось, вот-вот появится.

За это время многое изменилось: появились десятки моделей, которые можно запустить даже на слабом ноутбуке, и мощные коммерческие системы, способные понимать с полуслова. Но одно остаётся неизменным – AGI так и не случилось.
Если два года назад нам уверенно обещали, что «всё уже близко», то теперь даже крупнейшие компании признают: ждать придётся долго.

И это не плохо. Просто разработчикам, приходится учиться работать с тем, что есть, и извлекать максимум пользы из нынешних LLM.

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

Читать далее

TypeScript: краткий гайд по дистрибуции типов

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

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

Читать

Кому нужен Graphviz, если можно написать его самому?

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

Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.

Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию test, и наблюдайте за созданием графа. Также там можно щёлкать и перетаскивать граф, менять масштаб при помощи колеса мыши с зажатым Ctrl и перетаскивать ползунок вниз, чтобы изучить процесс оптимизации.

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

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

Читать далее

MapStruct: как безобидный метод портит весь маппинг

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

При работе с MapStruct возникает соблазн добавлять небольшие вспомогательные методы прямо в ваш mapper и вызывать их через expression. Однако если такой метод оперирует довольно общими типами (например, String -> String), MapStruct может обнаружить его и применить к другим полям того же типа — даже если вы этого не планировали.

Читать далее

Скрытые пасхалки в компьютерных программах, кто их придумал и почему сегодня так почти не делают

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

Пасхалки на системных платах наших устройств, – история, прямо скажем, весьма специфическая. Ну, какова вероятность, что обычный человек – не схемотехник – вдруг полезет внутрь и чего-то там разглядит? Наверное, не очень высока. С другой стороны, эти послания там оставляют и не для обывателей, а для таких же инженеров, которые не просто увидят, но и поймут, что к чему. Хотя пасхалки имеют и другую природу. Они бывают еще и софтверные, скрываясь в неожиданных разделах приложений, которыми все мы пользуемся. Но как вообще зародилась идея оставлять в ПО “приветы” для пользователей? Об этом и поговорим.

Читать далее

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

Java Digest #30

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

Всем привет! 👋👋👋👋👋

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

Октябрь выдался интересным: JDK 26 приносит поддержку HTTP/3, Vector API снова в инкубации, а Swing внезапно обзаводится своим DatePicker — да, 2025-й, а Swing жив! Разработчики обсуждают Leyden и GPU-ускорение для Java-ИИ, а Oracle чинит 15 уязвимостей. В статьях свежие оптимизации ZGC, разбор виртуальных потоков, Jackson 3, Kafka Queues и немного философии про «хороший вкус» в разработке. А под конец релизы, от JUnit 6 до Spring 6.2.12. Заваривайте кофе, обновляйтесь до JDK 25 и читайте. Поехали 🚀

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании. Часть 2

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

Привет, Хабр! Меня зовут Бартенев Евгений, я автор курса «Python-разработчик» в Яндекс Практикуме и практикующий разработчик. Я прособеседовал сотни кандидатов и сам неоднократно побывал в роли собеседуемого, поэтому хорошо представляю, какие именно знания проверяют на интервью и где чаще всего «проваливаются» не только джуны, но и опытные разработчики.

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

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

Читать далее

Распродажа в издательстве «Питер»

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

Привет, Хаброжители!

Учитесь, вдохновляйтесь и совершенствуйтесь с лучшими книгами мира программирования и технологий из серии Manning — заказывайте сейчас по привлекательным ценам!

Читать далее

ТОП-10 малоизвестных AI-сервисов, которые удивляют возможностями

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

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

Одни модели сочиняют музыку, другие красят фотографии, третьи уверяют, что понимают людей лучше психологов. Но за громкими именами вроде ChatGPT, Midjourney и Runway скрывается подлесок маленьких, но интересных проектов.

Мы собрали десятку инструментов, на которые стоит обратить внимание.

Приятного чтения!

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 11. Описываем деревья

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

В прошлой главе мы избавились от необходимости непрерывно соприкасаться с C#-генераторами Godot, после чего пришли к выводу, что нам нужен адекватный задаче DSL. Я дам небольшую вводную по написанию самого дешёвого, но при этом крайне эффективного варианта, а все возможные навороты и прочую крутотень оставлю для DLC статей за пределами текущего цикла (иначе он никогда не закончится). Начнём мы с инициализации нод, настройки статических характеристик и выстраивания иерархии, а в следующий раз разберёмся с описанием их поведения.

Читать далее

Полный обзор функциональности российского трекера ошибок Хоук

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

Hawk — это open-source трекер ошибок, разработанный в России. Позволяет отслеживать ошибки в веб-приложениях, API и мобильных сервисах. В этой статье подробно рассмотрим функциональность, которая сегодня доступна пользователям Хоука — от регистрации до продвинутых SDK-функций и планов на будущее.

Читать далее

Apache Camel и его место в экосистеме интеграционных решений

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

Сегодня поговорим не просто об инструменте, а о фундаменте, на котором строятся современные интеграционные платформы. Речь пойдет об Apache Camel – открытом интеграционном фреймворке, который лежит в основе таких решений, как Red Hat Fuse, Talend и нашей собственной платформы от «Диасофт» – Digital Q.Integration.

Важно подчеркнуть: мы не используем экспериментальные или нишевые стеки. Наша платформа построена на проверенной, зрелой и широко распространенной связке: Apache Camel и Spring Boot. Это дает стабильность, совместимость с корпоративной инфраструктурой и возможность глубоко интегрироваться с экосистемой Spring – от безопасности до мониторинга и распределенной трассировки.

Читать далее

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