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

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

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

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

Аватар программист, или Гегель — ты был прав ч.1

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

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

Читать далее

Новости

Срезы в Go

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

Срезы (slices) в Go могут показаться простыми при первом знакомстве, но их эффективное использование требует понимания внутреннего устройства и особенностей работы с памятью. Многие разработчики сталкиваются с путаницей между понятиями длины и емкости срезов, что может привести к неэффективному использованию памяти или даже утечкам. Важно разобраться, как эти концепции работают при выполнении базовых операций: инициализации, добавлении элементов, копировании и нарезке.

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

Читать далее

go:linkname в Go

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

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

В этой статье рассмотрим //go:linkname — неофициальной, но невероятно мощной фиче Go, которая позволяет вызывать приватные функции и обращаться к закрытым переменным других пакетов.

Читать далее

Опыт PostHog: 50 советов о создании успешных продуктов

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

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

Читать далее

Истории

Почему меня всегда будет злить разработка ПО

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

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

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

Нет, на самом деле, мне не давал покоя такой вопрос:

Вспомню ли я два прошлых года написания постов и задумаюсь ли: «Разработка ПО не особо важна почти ни в каком контексте. Мы не запускали людей в космос: возможно, стоило просто брать лёгкие деньги и заткнуться?»

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

Как обучить LLM выбирать правильные варианты кода, сгенерированные другой моделью. Разбор от Тайного редактора

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

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

Сегодня разбираем статью от исследователей MTS AI Iterative Self‑Training for Code Generation via Reinforced Re‑Ranking — о том, как можно обучить реранжирующую модель выбирать качественные варианты кода, сгенерированные другой моделью. Спойлер: с этим подходом удается сделать так, что модель на 13B параметров может обогнать по качеству 33B.

Читать далее

Какой AI-ассистент использовать в разработке и тестировании финтех-продуктов

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

В IT-командах ЮMoney юзают GigaCode — это ИИ-ассистент российского происхождения, основанный на больших языковых моделях (LLM). Рассказали, что о нём думаем: какие есть плюсы, что хотелось бы доработать и как использовать во благо рабочим задачам.

Читать далее

Оптимизация Go map{-}{-}

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

Хеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).

Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).

Давайте рассмотрим следующую задачу и способы ее решения.

Читать далее

Год изучения бэкенда: от растерянности к осознанному подходу

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

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

Статья подойдет тем, кто:

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

Читать далее

Как организована поддержка open-source ИИ-проектов в Китае

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

В начале этого года весь мир обсуждал DeepSeek. Это только первая ласточка и верхушка айсберга результатов работы системы поддержки open source в Китае. Уже очень скоро их системный подход начнет приносить интересные результаты. 

О преимуществах и особенностях китайского подхода к развитию open source на Scientific Open source Meetup 2025, организованном при участии ИТМО, GitVerse и OpenScaler, рассказывал Олег Сиротюк, лидер сообщества OpenScaler. Ту же тему обсудили во время круглого стола. В этой статье пересказываем основные идеи обсуждения.

Читать далее

Как должен выглядеть правильный Docker Image для Spring Boot приложения?

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

Когда мы упаковываем Spring Boot-приложение в Docker-образ, важно не только обеспечить его запуск. Нам нужен такой образ, который поможет понять причины проблем: падений, тормозов и других сбоев.

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

Читать далее

Заменил жену на ИИ. Мой опыт

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

Это случилось однажды вечером, когда жена уложила спать младшего и сама уже почти уснула. А у меня, как дети идут спать, открывается второе дыхание. Я аккуратно, чтобы не разбудить ребенка, прилег к ней, и тихонько прошептал на ушко:

Читать далее

Настройка Apache Kafka для высоконагруженных систем

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

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

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

Читать далее

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

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Альтернативы накрутке опыта

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

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

Читать далее

RAII 2.0: RAII как архитектурный инструмент в C++

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

Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы?

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

Читать далее

ХрюХрюКар v.2 или как я использую Go для защиты своего двора

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

Почти год назад я писал про ХрюХрюКар. Это экспериментальный проект, который проработал 7 месяцев в городе Балаково Саратовской области. За это время мы «поймали» около тысячи автомобилистов, разместивших свои авто на зеленых зонах, детских/спортивных площадках и тротуарах.

В этой статье я расскажу про совершенно новую версию ХХК, которую я написал на Go. Ну и отдам сообществу все исходники проекта.

Припарковаться правильно

Мартин Одерски и Ли Хаои: Эволюция Scala

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

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

Читать далее

LLM: Практика «выращивания кода»

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

Дискуссии об ИИ и больших языковых моделях (LLM) в разработке часто скатываются в бинарные споры: «замена», «выживание», «деградация». LLM — не против нас, а с нами. Не угроза, а помощь в рутине. Не замена, а инструмент. При умелом использовании ИИ освобождает от рутины и ускоряет реализацию, но не отменяет глубокое понимание предметной области. Без навыка писать код и ясности, что и зачем ты делаешь — ИИ бесполезен. Важнее понять, как LLM усиливают нас, трансформируют работу и рождают новые практики.

Копнуть глубже

Тестируем JEP 491 вместе с Деном Вегой

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

Один из девелопер адвокатов Spring Framework, Ден Вега, на днях написал пост в одну запрещенную соцсеть, в котором изучал работу JEP 491 — Synchronize Virtual Threads without Pinning. Внезапно, эффект от JEP обнаружен не был, и автор предложил выяснить почему.

Эксперт сообщества Spring АйО, Александр Шустанов, не остался в стороне и выяснил где тут зарыта собака.

Читать далее

Спецификация формата RTTM: полное техническое описание

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

RTTM — это формат, в котором каждое событие в аудио точно знает своё место.
Он позволяет системам видеть не просто звук, а структуру разговора: кто говорит, когда, как долго — и что происходит в фоновом шуме.

В этой статье вы найдёте всё, что нужно знать об этом стандарте: как устроены его 10 полей, какую роль он играет в задачах диаризации и распознавания речи, и почему его до сих пор активно используют лидеры индустрии — такие как pyannote.audio, NVIDIA NeMo, DScore и другие.

Узнать больше про RTTM!