Как стать автором
Поиск
Написать публикацию
Обновить
982.53

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

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

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

Деплоим Spring Boot приложение через Docker Compose в Timeweb Cloud за 10 минут

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

Когда вы впервые сталкиваетесь с задачей деплоя, процесс может показаться сложным и пугающим. Докер-образы, безопасность, container registry, а тем более Kubernetes — для новичка это настоящая головная боль. Именно поэтому наши партнеры из Amplicode решили написать статью, которая поможет вам максимально просто и быстро задеплоить ваше первое Spring-приложение в облако.

Читать далее

Превращаем legacy CLI в AI-агентов за 5 минут: практическое руководство по MCP и Ophis для Go-разработчиков

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

Ophis — это мост между Cobra CLI и Model Context Protocol (MCP), позволяющий Claude Desktop напрямую вызывать kubectl, helm, terraform и любые другие CLI-инструменты. Вместо копирования вывода команд в чат, AI получает структурированный доступ к командам.

В статье: архитектура решения, production-ready реализация и реальные кейсы из практики.

Читать далее

GIMP Script-Fu ООП. ООП на миксинах или сказ о том: «Да что оно может ваше множественное наследование?»

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

Библиотека функций к Script-fu

Вы любите рефакторинг? Ну вот и я приблизительно так же. Основное правило хорошего программиста, такое: «Работает, НЕ ТРОГАЙ!». Но иногда, в редкие минуты помутнения/вдохновения, возникает желание, или я бы даже сказал зуд, в одном месте, и мы садимся за рабочее место, берём в руки клавиатуру и начинаем «творить шедевры» с чистого листа.

Системы подпрограмм для языка функциональной геометрии я писал три раза: сначала в функциональном стиле(и в этом то месте и возник пресловутый «свитчинг по типам», потом в стиле примитивных объектов, который не имел наследования, но я придумав хак с шаблонным использованием кода, значительно сократил его дублирование и теперь, когда я разработал развитую ООП систему, во многом повторяющую функциональность CLOS. И это событие прекрасная причина, чтобы переработать старый ООП код, в новой ОО системе. Чем мы с вами здесь и займёмся.

Читать далее

Code review на автопилоте: наш путь к прозрачному процессу

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

Привет, Habr! Меня зовут Михаил Тетерин, я разработчик в Lenta tech, и сегодня расскажу, как мы упростили и ускорили процесс code review с помощью собственного инструмента — «ревью-рулетки». Это решение появилось из повседневной боли, когда merge requests зависают, разработчики неохотно разбирают задачи на ревью, а в чатах идет бесконечное «посмотри мой MR, пожалуйста».

Читать далее

QA умерло? Как изменяется роль тестировщиков в 2025

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

Что происходит с QA-индустрией и куда она движется? Действительно ли профессия умирает или у неё есть будущее?

Читать далее

МИФИсты создали Рокхлю или Eurobot must go on

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

Краткий туториал по созданию робота для соревнования автономных роботов Eurobot 2025 от студентов МИФИ с учётом опыта прошлого года.

Читать далее

Как правильно готовиться к ШАД в 2025 году

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

В этой статье я расскажу, как проходил экзамен в Школу анализа данных (ШАД) в 2025 году, что вас ждёт на каждом этапе, как лучше готовиться.

Формат экзамена

Всего есть три основных этапа:

1. Онлайн-тестирование

2. Письменный экзамен

3. Собеседования

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

Читать далее

Expression Templates

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

«Лень‑матушка вперёд нас родилась»

В этой статье я хочу рассказать о технике «Expression Templates» и её применении в библиотеке simstr.

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

Вот, к примеру, давайте рассмотрим такой простенький код.

Читать далее

Работа с callback_data в Telegram-боте с использованием protobuf + base85

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

Если Вы когда-либо разрабатывали Telegram-бота, Вы наверняка знаете, что такое callback_data. Если нет, вкратце, это произвольная строка, которая привязывается к кнопкам в чате, при помощи которой на бэкенде Вы определяете, какая именно кнопка была нажата.

Когда Ваш бот масштабируется, скорее всего управление значениями callback_data превращается в «кашу». По крайней мере, так произошло у меня. Поэтому сегодня я хочу поделиться с Вами практикой по организации этой всей «каши» в красивый и органичный код.

Читать далее

Расширение известного трюка с XOR на миллиарды строк: введение в обратимые фильтры Блума

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

Можно ли применить известный трюк с операцией XOR, используемый для поиска в списках одного или двух пропущенных чисел, сделав так, чтобы он подошёл бы для поиска тысяч отсутствующих идентификаторов в таблицах, содержащих миллионы строк?

Читать далее

Конечный автомат (FSM – finite state machine)

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

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

Читать далее

Глаза Битрикса боятся, а руки делают — как кастомизировать сделки с нуля

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

Всем привет, я Сергей — ведущий программист в e-commerce агентстве KISLOROD.

Битрикс24 можно доработать «под себя», но если задачи сложные — без модулей вы далеко не уедете. Модули позволяют объединить доработки в один понятный, управляемый блок. Это удобно как для команды разработки, так и для поддержки в будущем. Погнали разбираться!

Читать далее

Как я проходила NAND2Tetris на четвёртом курсе, а мои студенты — на первом

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

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

Итак, в своё время я поступила на вышеупомянутое учебное направление. На 3-4 курсах в начале семестра нам предоставлялся список предметов, из которых можно было составить свою программу. И на последнем курсе своего бакалавриата среди прочих я выбрала его — курс NAND2Tetris.

Читать далее

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

GIMP Script-Fu ООП. Обобщённые функции и примитивные типы данных

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

Библиотека функций к Script-fu

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

Читать далее

ARM Cortex-M: Исполнение кода из RAM памяти

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

В программировании ARM Cortex-M микроконтроллеров обычно код исполняется из on-chip NOR Flash памяти.

Однако иной раз надо разместить Си-функции в RAM памяти.

В этом тексте я написал как запустить функцию из оперативной памяти.

Читать далее

Оценка технического долга в IT-системах

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

Каждый раз, когда мы выкатываем обновление платформы быстрой разработки корпоративных приложений Jmix, мы популярно рассказываем о том, что изменилось и как перейти на новую версию. Несмотря на доступность технических материалов и удобных инструментов, аспект накопления технического долга как был, так и остается сильно недоинвестированным со стороны команд разработки. Проценты капают, а через пару лет вопросы к нам - “Почему так сложно на новую версию переходить!? Что-то вы тут недоработали”.  

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

Читать далее

Код, не боящийся изменений

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

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

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

Читать далее

Геометрия, алгебра и расстрел площади

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

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

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

Читать далее

COPY в PostgreSQL: грузим данные быстро, безопасно и без сюрпризов

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

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

Сегодня разбираем COPY в PostgreSQL. Это рабочая лошадка для массовой загрузки и выгрузки данных.

Читать далее

Топ-5 алгоритмов из курса матана, которые реально пригодятся в работе

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

Всем привет. Сегодня хочу затронуть тему матана, чтобы показать как его можно применять на реальных задачах. Думаю каждый, кто учил матан часто задавался вопросами: «Где это вообще пригодится?», «Зачем это нужно?», «Как это может помочь?» и т. д. Так вот, чтобы эти вопросы отпали раз и навсегда предлагаю свой топ-5 алгоритмов из курса матана с конкретными примерами их применения в работе.

Читать далее

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