Обновить
1080.32

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

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

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

Декораторы. Продвинутый уровень. Шаблон универсального декоратора

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

Всем привет! Меня зовут Михаил, я веду Telegram-канал «Python Шпильки», где делюсь изящными приемами программирования. Сегодня я хочу рассказать об универсальном декораторе, который может принимать аргументы, а также вызываться без их приема. Для тех кто хорошо знает тему декораторов - ничего нового они тут не увидят! Этот пост для тех, кто, возможно, хочет более подробно понять тему декоратора. Итак, поехали.

Для начала приведу пример конструкции универсального декоратора:

Читать далее

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

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

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

Под катом принципы декомпозиции (с обобщёнными примерами) и история этих принципов

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Unicode без боли

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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