Обновить
987.82

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

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

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

Декомпозиция кода становится критически важной при работе с ИИ

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

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

Читать далее

Kafka без боли: 5 рецептов для удобной работы с брокером сообщений

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

Всем привет! Меня зовут Даша, я python-разработчик в команде Big Data «Группы Лента» (Lenta tech). За свой восьмилетний опыт работы я успела поучаствовать в большом количестве проектов. Инструменты и фреймворки менялись, но оставалось одно — Kafka. Сначала этот инструмент использовался с опаской и на небольших проектах, а сейчас стал стандартом при проектировании любых систем.

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

Читать далее

Я построил контент-завод на n8n. Он работает. Зарабатывает — нет :-(

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

Летом 2025-го я впервые услышал про «Контент-завод».
Идея простая: автоматизация, которая «из ничего» штампует контент - текст, видео, аудио и т. д.

Знакомые из бизнеса говорили, что тема сейчас на хайпе.
Мимо пройти было нельзя :-)

Инструмент для экспериментов - n8n. Наткнулся на него случайно (кажется, в Reels). Эта статья - мой опыт: что делал по шагам и к чему пришёл.

Читать далее

Небольшое количество примеров может отравить LLM любого размера

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

Команда AI for Devs подготовила перевод исследования в котором учёные показали: чтобы встроить «бэкдор» в большую языковую модель, вовсе не нужно контролировать огромную долю обучающих данных — достаточно около 250 вредоносных документов. Этот результат переворачивает представления о масштабируемости атак через отравление данных и ставит новые вопросы к безопасности ИИ.

Читать далее

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

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

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

Читать далее

JetBrains: большой отчёт о состоянии экосистемы разработчиков в 2025 году

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

Команда AI for Devs подготовила перевод краткого обзора большого отчёта JetBrains о состоянии экосистемы разработчиков в 2025 году. ИИ становится повседневным инструментом в работе программистов, TypeScript и Rust продолжают расти, а представления о продуктивности выходят за пределы метрик. Что это значит для индустрии — и для вас?

Читать далее

Cursor делает разработчиков менее эффективными?

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

ИИ-ассистенты обещают ускорение, но полевой эксперимент METR с 16 разработчиками и 136 реальными багами показал обратное: с Cursor задачи выполнялись в среднем на ~19% дольше. Писать код действительно выходило быстрее, зато время съедали промптинг, ожидание ответов, проверка результатов и IDE-оверхед. Разбираемся, где ломается обещанная эффективность, как на неё влияют внимание и «поток», и когда ИИ в разработке реально окупается.

Смотреть разбор

Реверс-инжиниринг сетевых протоколов: практическое руководство

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

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

Представьте, что ваша система — идеально отлаженный механизм; и вдруг нужно заменить одну шестерёнку, а разработчик уволился, лицензия отозвана (бывает, что купленное вами может не принадлежать вам :), исходники потеряны или устройство пришло в негодность. В таких случаях приходится восстанавливать поведение протокола почти «с нуля».

Привет, Хабр! Меня зовут Виталий, я python-разработчик в SimbirSoft. Цель этой статьи — дать практическое введение в реверс-инжиниринг сетевого трафика и анализ протоколов передачи данных. Сразу уточню: здесь не будет взлома или обхода защиты — я уважаю интеллектуальную собственность и законодательство. Материал посвящён техническим приёмам, которые будут полезны инженерам и специалистам по интеграции систем. Статья будет полезна разработчикам, аналитикам, менеджерам, которые работают с указанными решениями.

Готовы? Поехали!

Ад туториалов сменился адом вайб-кодинга

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

Когда в 2019 году я начинал размышлять о проблемах обучения кодингу, нашим врагом номер один был «ад туториалов». Признаки попадания в этот ад:

• Вы успешно завершили кучу туториалов, но не можете создать ничего своего.

• Вы тратили больше времени на просмотр видео о кодинге, чем на само программирование.

• У вас имелось знание о многих технологиях на уровне флеш-карточек, но их внутреннее устройство было вам совершенно непонятно.

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

Глубокий курс обучения. Основы CS нужно преподавать не только в традиционных учебных заведениях.

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

Меньше видео, больше текста. Видео слишком легко потреблять бездумно.

Повторюсь, что в 2019 году ад туториалов был повсеместным. Многочасовые курсы на YouTube собирали миллионы просмотров. Однако сегодня те же самые каналы с трудом набирают по пятьдесят тысяч просмотров нового контента. Посмотрите на FreeCodeCamp, Traversy Media и Web Dev Simplified. Я не пытаюсь бросить тень на эти каналы, они помогли куче людей, но их показатели сейчас именно таковы.

Читать далее

Топ-7 бесплатных нейросетей для генерации кода

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

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

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

Мы собрали подборку из семи нейросетей, которые подойдут для генерации кода. Они просты, удобны и работают без привязки карты.

Читать далее

Concurrency на примерах. Собственная реализация Mutex на Go + сравнение с sync.Mutex. Часть 1

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

Хочу поделиться с вами заметкой о своем опыте написания с нуля примитивов синхронизации на чистом Go, совместимых c реализациями из стандартной библиотеки.

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

Читать далее

Освоение Unicode в Java: создаём на Quarkus REST API, готовый к глобальной аудитории

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

В этом руководстве мы разберем непонятности вокруг Unicode и узнаем, как строить надёжные, интернациональные Java-приложения. Разберём теорию, укажем на подводные камни, а затем соберём «Глобальный сервис приветствий» на Quarkus, который переживёт весь хаос реального текста.

К концу статьи вы разберётесь с тем,

– как устроен Unicode и как Java на самом деле хранит текст;
– почему длина строки и перебор символов сложнее, чем кажется;
– как нормализация предотвращает неприятные несоответствия;
– как настроить REST-сервис и базу данных для безопасной работы с Unicode.

Unicode без боли

Паттерны ООП c примерами на Java: порождающие шаблоны

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

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

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

Шаблонизироваться

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

Как JavaScript справляется с DOM-подобными структурами данных

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

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

Сегодня мы рассмотрим как JavaScript справляется с бенчмарком Card DOM.

Читать далее

Подробно о неопределённом поведении в С и C++

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

При работе с C или C++ необходимо в какой-то степени разбираться в неопределённом поведении (UB): что это такое, каковы его эффекты, и как о него не споткнуться. Для простоты картины я буду в этой статье рассказывать только о C, но всё изложенное здесь также применимо и к C++, если явно не указано иное.

Читать далее

Подножка для AI в виде UTF-8

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

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

Читать далее

Личный опыт: как я навайбкодил сайт за три дня

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

Решил попробовать вайб-кодинг и заодно сделать полезное дело — создать HR-сайт для компании, в которой я руковожу ИТ-департаментом. Рассказываю, что меня впечатлило, а с чем пришлось повозиться.

Читать далее

Разработка в удалённых контейнерах

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

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

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

Не простая - когда ваша конфигурация среды разработки не соответствует первому пункту.

Статья описывает как решить проблемы, возникающие с непростыми средами разработки, с помощью контейнеризации среды разработки.

Читать далее

Jackson 3 ворвался в Spring

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

Команда Spring официально представила поддержку Jackson 3 — одного из крупнейших обновлений в экосистеме JSON для JVM. Уже начиная с Spring Boot 4 и Spring Framework 7, Jackson 3 становится версией по умолчанию, а Jackson 2 помечается как deprecated. В новом переводе от команды Spring АйО поговорим про нововведения — улучшенную безопасность, переход к JsonMapper, отказ от MappingJacksonValue, поддержку новых API и настройку через builder-интерфейсы.

Читать далее

Как я с помощью LLM писал эмулятор ZX Spectrum

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

... или может ли ИИ заменить программиста? Сейчас со всех сторон долбят про то, как ИИ помогает в жизни и вообще, если ты не используешь ИИ, то ты в отстающих и лузер. Я к этому отношусь спокойно, ибо мои занятия совершенно не допускают использование ИИ из-за очень большой цены ошибки, но долбежка все-таки делает свое дело. Плюс как-то внезапно обнаружил, что у (не реклама) cloud.ru доступны Foundation Models (они же БЯМ, они же LLM) без оплаты. Понятное дело, тестовый период и прочее, но использовать можно. Но просто мучать модельки вопросами уровня «сколько цифр в слове» смысла мало, поэтому решил попробовать сделать что-то хоть капельку полезного и получить собственный ответ на вопрос пригодности БЯМ. Результат для нетерпеливых тут https://github.com/kiltum/zxgo

Далее несколько абзацев истории, чтобы просто было понятно, каким путем я шел до результата. Скажу честно, выбор места приложения сил БЯМки был сделан довольно быстро: напиши мне много кода. Раз пока все бесплатно, выбрал самый большой Qwen и предложил ему написать эмулятор КР580ВМ80А (он же Intel 8080), причем на питоне. И внезапно, он с первой попытки сгенерил что-то очень похожее на правду. Хмыкнув, я нашел образ ПЗУ от Радио-86 и зарядил еще пару десятков запросов. Вскоре я с глубоким удовлетворением увидел в окошке заветное «РАДИО 86-РК» и следом «-->». 

Немного порадовавшись результату, я преисполнился энтузиазма и решил поднять ставки. Z80 и ZX Spectrum! Культовая машина, все нюансы которой разложены по полочкам и по которой документации на порядки больше, чем для «радио»,«микроши» и «специалиста» вместе взятых. А чтобы было совсем хардкорно, основным языком я выбрал С++.

Читать далее

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