Обновить
1207.69

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

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

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

Что было бы, если BASIC развивался вместо C и Python

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

Сегодняшние языки программирования стали сложнее, но представьте, если бы вместо C и Python развивался BASIC. Под катом расскажу о том, почему языки усложнились, а также попробую погрузиться в альтернативный сценарий развития. 

Читать

Последний романтик

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

Привет народ!

Вот и настала моя очередь исповедоваться перед тобой.

У меня есть, не самая оригинальная, гипотеза о том, что большинство из множества статей жанра "Исповедь Разработчика" - это попытка авторов добавить веса своему персональному бренду, в специфических условиях, сложившихся на рынке труда, когда люди с опытом и, казалось бы, правильным майндсетом, вынуждены стоять в одной очереди с теми, кто вкатился в АйТи только ради денег и удаленки.

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

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

Что там у тебя...

Как подружить Bitrix24 с CI/CD

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

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

Сегодня рассмотрим, как подружить, казалось бы, несовместимое: динамичный мир CI/CD с его автоматизацией и бешеной скоростью и консервативный, бизнес-ориентированный Bitrix24.

Читать далее

Я хотел бы знать это раньше. Очереди в Symfony

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

Привет! Меня зовут Никита Титков, я бэкенд-разработчик в Банки.ру. 

Создать простую очередь – несложная задача. Но как только очередей становится десятки и через них идут важные для бизнеса процессы, сразу появляются вопросы: как их правильно называть, чтобы не запутаться? Как организовать логирование и мониторинг, чтобы видеть, что происходит с сообщениями? Как обрабатывать ошибки? Мы сталкивались со всеми этими проблемами и решили поделиться опытом.

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

Давайте разбираться!

Читать далее

ORM это Вьетнамcкая Война Компьютерных Наук

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

Данная публикация является переводом статьи Jeff-a Atwood-а почти 20-ти летней давности. Jeff Atwood, один из фаундеров StackOverFlow, написал эту статью как некоторое резюме того, как человечество боролось с проблемой O/R Impedance Mismatch.

Я частично принимаю участие в написании разных ORM решений, например, Spring Data JDBC / R2DBC, и скоро мы вместе с Amplicode проведем online событие (оно бесплатное) по Spring Data JDBC. Будем обсуждать Spring Data JDBC, что в ней хорошо а что в ней плохо. Какие trade-off-ы она имеет.

Я решил выпустить данный перевод с целью того, чтобы напомнить людям - silver bullet-а Spring Data JDBC не придумала. Она лишь заняла конкретную позицию по ряду вопросов, из чего следуют определённые ограничения и преимущества. Их мы и обсудим.

Читать далее

Развернем n8n и postgres под проекты на серваке, подключим свой домен и настроим бекапы в s3

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

Статья в формате шпаргалки, для тех кто понимает о чем тут написано и зачем оно надо. Я вчерашний был бы рад, если бы такая статья существовала. Тут максимально кратко изложен мой опыт, без воды и отступлений. По итогу получим полностью готовую инфраструктуру под свои проекты на n8n.

Погнали

Гибкая ECS с кастомными layout-профилями: как я строил ECSS внутри своего игрового движка

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

Всем привет, я делаю свой пет-проект - игровой движок, и какой пет-проект без собственноручно сваренного велосипеда, так я и пришел к идее реализации своей ECS.

В этой статье я хочу рассказать простыми словами - что такое ECS, и как он эволюционно появился у меня.

Что такое ECS - Entity Component System (Сущность Компонент Система) - архитектура хранения данных, где логика - системы, явно отделена от данных - компонентов, которые объединены одним общим id - сущностью.

В двух словах, идея ECS заключается в том, чтобы навести порядок в игровом коде, и игровом мире - выделить все данные игровых объектов(сущностей), и желательно сделать это data-oriented (почему желательно я расскажу ниже).

Предположим, у вас в игре есть объект КУБ - квадратный, все стороны равны, все углы равны, классический такой КУБ. У него есть положение в мире (Transform) у него есть его кубический меш (Mesh), он умеет быть отрендеренным (IsRenderable), и, ко всему прочему, он еще и обладает какой-то своей кубической физикой (Physic).

Читать далее

Что происходит после fn main() в Rust?

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

Привет!

Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }, компилируем, и на выходе получаем бинарник. Что происходит под капотом компилятора Rust в этот момент? Давайте аккуратненько заглянем внутрь этого таинственного процесса.

Читать далее

Как попасть в мир олимпиадного (спортивного) программирования? Спорт для ума, который меняет мышление

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

Олимпиадное программирование — это спорт для ума, который прокачивает алгоритмическое мышление, скорость и выдержку. Разбираем, с чего начать, какие навыки нужны, почему для соревнований чаще выбирают C++ и какие ресурсы помогут подготовиться школьникам, студентам и взрослым новичкам.

Хочешь попробовать интеллектуальный спорт, где за пять часов нужно решить несколько задач и обойти соперников по скорости мышления? Спортивное программирование даёт не только адреналин соревнований, но и реальный буст к учёбе, поступлению и карьере — от первых олимпиад в школе до участия в ICPC и стажировок в IT-компаниях.

Читать далее

Проблема Гильберта №24 в геймдеве: Как типобезопасная физика сделала Radiosity легче перышка

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

Вероятно, все знают про 23 проблемы Гильберта, определившие развитие математики XX века. Но мало кто знает, что в черновиках великого немца была 24-я проблема: она касалась критериев простоты доказательства и поиска наиболее прямых методов решения задач.

Читать далее

Можно просто так взять и добавить поддержку проверки на Null

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

Команда Spring АйО подготовила перевод статьи о том, как JSpecify наконец превращается из «ещё одного стандарта для библиотек» в рабочую основу null-безопасности для всей Java-экосистемы. IntelliJ IDEA 2025.3 впервые согласовала свои проверки с NullAway, а Spring и JetBrains синхронизировали suppressions и поведение анализаторов. Итог — единый, предсказуемый null-анализ без сотен ложных предупреждений.

Читать далее

State-менеджмент «из коробки» во Flutter: эффективная альтернатива BLoC и Riverpod

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

Управление состоянием — один из ключевых аспектов разработки приложений на Flutter. Часто для этой задачи выбирают тяжелые и многофункциональные решения вроде BLoC, Riverpod или GetX. Однако во многих проектах подобная инфраструктура избыточна: не каждое приложение требует сложной архитектуры и дополнительного уровня абстракции.

В данной статье мы расскажем про встроенные инструменты Flutter, которые позволяют реализовать надежный и предсказуемый state-менеджмент без сторонних фреймворков. Вы узнаете, как использовать ValueNotifier и Provider для удобной работы с состоянием и когда такой подход является оптимальным.

Читать далее

Эволюция Гофера: как нелепый грызун стал иконой Go

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

Каждый язык программирования мечтает о своём символе. Кто-то рисует змей, слонов, кто-то выбирает чашки кофе… Но Go пошёл по другому пути и сделал своим лицом существо, которое выглядит так, будто родилось после скрещивания морской свинки, бобра и кролика. 😅

Я Дмитрий Буров – Golang-разработчик, автор Telegram-канала Go Advocate и лидер внутреннего Go-сообщества в Lamoda Tech.  Я хотел бы изложить историю создания Гофера (Gopher'a) – от идеи до финального образа который вы сейчас привыкли видеть.

Читать далее

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

Kprobes и где они обитают

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

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

Статья поможет ответить на вопросы:

- Как понять, какую функцию ядра выбрать для использования с механизмом kprobe?

- С чего начать ее поиск?

- Какими инструментами пользоваться?

kprobe — это, по сути, ловушка, или брейкпоинт, который можно установить почти в любом месте кода ядра Linux. 

Читать далее

Как написать хороший CLAUDE.md, чтобы не было мучительно больно

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

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

Со временем стало очевидно: проблема не в модели, а в том, как мы ее онбордим в проект. Один и тот же Claude в одном репозитории ведет себя как сильный мидл, а в другом как растерянный стажер. Разница почти всегда в том, что написано (или не написано) в CLAUDE.md и его аналогах для агентов.

Я перепробовал кучу подходов: от огромных "библий" с правилами до минималистичных заметок и автогенерации. Что-то работало, что-то категорически нет. В итоге вырисовались простые, но хорошо проверенные на практике принципы того, каким должен быть CLAUDE.md, чтобы не было мучительно больно ни вам, ни агенту.

Читать далее

Как написать свой MCP сервер на языке R

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

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

Читать далее

Огромный гайд: продвинутые советы и хитрости для работы с Gemini CLI и другими AI CLI утилитами

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

Команда AI for Devs подготовила перевод большого гайда о скрытых возможностях и продвинутых техниках работы с Gemini CLI. Если для вас терминал — рабочий дом, то этот материал покажет, как превратить Gemini CLI в полноценного ИИ-агента, который автоматизирует рутину, подключается к внешним сервисам и расширяется под любые задачи.

Читать далее

От хаоса к структуре: как FEOD помогает упорядочить архитектуру фронтенд-приложений

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

Сегодня мы поговорим о том, как развивается платформенная команда «Спортмастера». Речь пойдёт о подходе к организации фронтенд-приложений, который получил название FEOD — Fractal Entity Oriental Design.

Читать далее

Разрабатываю MCP интеграции к платформе AI агентов — ключевые моменты

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

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

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

Инициатива OpenAI, которые адаптировали MCP для своей платформы приложений внутри ChatGPT, произвела на меня определенное впечатление, и я проделал довольно основательный эксперимент (на трех облачных H200 и DeepSeek V3.2-Exp), показавший, что основной функционал такой платформы можно воспроизвести усилиями одного разработчика.

Сам эксперимент - в этом видео:

Читать далее

Книга: «Разработка алгоритмов. Инженерный подход»

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

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

Большинство книг об алгоритмах фокусируются на нотации «О большое» и основных принципах проектирования, однако эта книга предлагает уникальный подход, выводя разработку и анализ на уровень предсказуемой практической эффективности. В ней обсуждаются базовые и классические алгоритмические задачи, возникающие при создании приложений больших данных, для которых демонстрируются элегантные решения постепенно возрастающей сложности. Анализ решений дается в рамках как классической RAM-модели, так и более значимой с практической точки зрения модели с использованием внешней памяти, позволяющей оценивать сложность ввода-вывода.

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

Читать далее

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