Обновить
1002.55

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

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

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

Как писать код, который переживёт вас: минимализм, читаемость и долговечность в больших системах

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

Мы все пишем код, но редко задумываемся, сколько он проживёт без нас. Этот текст — о выживании кода во времени: как писать так, чтобы через пять лет проект не превратился в болото. Без догматизма, с примерами, с болью и, надеюсь, с долей самоиронии.

Читать далее

Новости

Почему разработчики выступают за и против визуального и low-code программирования: причины и ответы на возражения

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

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

«Давайте все будем на ассемблере писать. Зачем мы пользуемся фреймворками?» — эта фраза из недавней дискуссии о low-code платформах прозвучала как манифест. И она заставила задуматься: где граница между разумным использованием абстракций и откровенным vendor lock-in?

Коллеги устроили жёсткий разбор low-code платформ — без маркетингового глянца и дипломатии. Спойлер: никакой «серебряной пули» мы не нашли. Зато выяснилось, что low-code платформы прошлого и нового поколения — это принципиально разные вещи. И что конфликт между разработчиками и визуальным программированием — это на самом деле спор о том, как писать код в 2025 году, когда есть и мощные LLM, и микросервисная архитектура из сотен сервисов.

Читать далее

Программисты получают 2,8 млн. в год и разработка всё равно дорожает. Как это остановить

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

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

«Разработчики исчезнут, но не все» — когда я услышал эту фразу в дискуссии на канале Dev Q&A, она засела в голове надолго. Вот факт: за 10 лет средняя зарплата разработчика в России выросла с миллиона до 2,8 миллиона рублей в год. Стоимость часа работы — с $30-50 до $80-100, у крупных агентств доходит до $300-400. И это происходит как раз тогда, когда появились ИИ-ассистенты, low-code платформы и масса других инструментов, которые вроде бы должны всё удешевлять.

Читать далее

Программирование на Go: чему можно научиться за 2 часа и как понять, стоит ли идти дальше

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

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

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

Читать далее

URLPattern — pattern matching, который мы ждали

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

Привет, Хабр! На связи снова Сергей, ведущий фронтенд-разработчик из Центрального университета. В последнее время я преисполнился URL и опять хочу про него рассказать. 

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

Читать далее

Лучший веб UI для 1С-разработчиков

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

На Global Tech Forum в октябре 2025, я услышал историю от ИТ-директора компании Gulliver, производителя одежды. Он рассказывал, как инхаус команда 1С разработки автоматизировала процессы жизненного цикла продукта в группе компаний - от планирования коллекций, до размещения заказов в производства и учет реализации в сбытовую сеть. 

Формально проект был завершен удачно: система запущена, процессы автоматизированы, отчётность формировалась корректно. Плановые проектные показатели были достигнуты. Однако, при опросе удовлетворённости пользователей команда разработки услышала неожиданный отзыв от главного дизайнера компании о том, что компания столкнулась со сложностью в найме новых специалистов из-за жалобы на «некрасивый» UI. 

Читать далее

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 2

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

Пробуем собрать свой минималистичный starter-kit.

Туториал из трех частей.

В предыдущей части мы реализовали причудливый конфиг на webpack + собственный роутинг.

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

В следующей рассмотрим работу с web-компонентами.

Читать далее

Пограничные случаи HTTP, которые должен понимать каждый разработчик API

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

В феврале прошлого года у интерфейса веб-серверов Rack, лежащего в основе практически каждого приложения Ruby on Rails, был обнаружен CVE-2024-26141. Уязвимость была простой: достаточно отправить запрос файла с сотней байтовых диапазонов, и Rack генерировал неожиданно большой ответ. Серверы продакшена можно было атаковать одиночными HTTP-запросами, пока у них не закончится ресурс памяти или канала.

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

Это пример того, как простой неправильно обрабатываемый пограничный случай HTTP может нанести существенный ущерб. И не потому, что мы плохие разработчики, а потому, что HTTP сложен. В идеальном случае всё работает замечательно. Но потом наступает продакшен.

Читать далее

Реализация DOM-подобных структур данных на C++

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

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

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

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

Читать далее

Придумал расширение для Chrome и устранил шахматных читеров

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

Поисковая выдача по запросу «chrome extension for cheating in chess» переполнена. Инструментов для нечестной игры — десятки.

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

Удивительный дисбаланс, не правда ли?

Обо всем по порядку

Как одновременно заварить кофе для 10 000 сотрудников — и еще 7 неожиданных вопросов архитектору ПО

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

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

Привет, Хабр! Меня зовут Дмитрий Овчаренко, я технический директор департамента разработки для финансового сектора IBS, более десяти лет создаю сложные ИТ-решения для лидеров рынка, а также преподаю в Учебном центре IBS.

Недавно мы провели внутрикорпоративный эфир Ask Me Anything («Спроси меня о чем угодно»). Коллеги могли задать любой вопрос о работе архитектора ПО. В этой статье поделюсь самыми интересными и неожиданными из них.

Читать далее

Этические аспекты использования искусственного интеллекта в промышленности

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

Аннотация. Статья посвящена анализу этически вызовов, возникающих при интеграции систем искусственного интеллекта (ИИ) в промышленность. На основе ключевых международных и национальных документов — Рекомендации по этике ИИ ЮНЕСКО, Спецификации этики искусственного интеллекта нового поколения Китая, Закона Европейского Союза об искусственном интеллекте и российского Кодекса этики в сфере ИИ — рассматриваются основные риски и принципы, которые должны лежать в основе проектирования, внедрения и эксплуатации промышленных ИИ-систем на всех этапах их жизненного цикла. Особое внимание уделяется вопросам безопасности, прозрачности, объяснимости и подконтрольности человеку промышленных ИИ-систем в контексте Индустрии 4.0.

Читать далее

Я спарсил 150.000 вакансий и понял, почему TIOBE бесполезен

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

Насколько популярные рейтинги соответствуют реальному спросу на рынке труда? Собрал данные о 150 000+ вакансий с hh.ru и других площадок. Результаты оказались неожиданными...

Читать далее

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

Хакатоны: не пора ли их переизобрести?

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

Дорогие читатели, сегодня — статья о хакатонах. Нет — не о том, что их нужно проводить в поездах. Хотя, полюбуйтесь: сотрудники Авито не смогли найти другого места для хакатона, чем поезд дальнего следования. И забронировали для этого целый вагон! Одно слово — хипстеры!

Но эта статья — о том, как хакатоны можно изменить и переосмыслить. Нужно, конечно, оставить всё веселье. Также, нужно добавить свободы участникам: когда хакатоны проводят компании, они обычно делают это со своими конкретными целями. И третье — нужно сделать их более длительными. Я предлагаю делать хакатоны длительностью где‑то в спринт (2 недели), но так, чтобы время активной работы было по‑прежнему около нескольких суток. Другими словами, нужен хакатон, доступный работающему и, возможно, семейному человеку. Возможно ли это? Нужно ваше мнение.

Читать далее

AP 2.0: Учим ИИ думать, прежде чем патчить

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

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

Не так давно я рассказывал вам о рождении формата .ap (AI-friendly Patch) — моей попытке избавить мир от боли ручного копипаста при работе с AI-ассистентами. Идея была проста: вместо генерации блоков кода, который нужно переносить в исходники руками, ИИ генерирует семантический патч в специальном, удобном именно для ИИ формате, который применяется автоматически. Судя по числу добавлений статьи в закладки, идея многим пришлась по душе!

Но теория — это одно, а суровая практика — совсем другое. В процессе активного использования ap в реальных задачах (в том числе при работе над far2l) вскрылись узкие места и накопились идеи, как сделать формат ещё надёжнее, удобнее и, что самое главное, — ещё более «понятным» для нейросетей. Сегодня я хочу рассказать вам о результате этой работы — большом обновлении ap 2.0

Это не просто косметические правки, а серьезный шаг вперёд, основанный на главном инсайте: лучшие результаты ИИ показывает тогда, когда мы позволяем ему сначала спланировать свои действия на человеческом языке, и только потом — реализовать их в виде кода. Поехали!

Читать далее

Всё что нужно и не нужно знать про заимствование в Rust

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

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

Сегодня я хочу поговорить о заимствованиях в Rust – теме, которая очевидно вводит многих в заблуждения но первых порах, но жизненно необходима для каждого, кто хочет писать на Rust. Мы с вами разберём, зачем Rust ввёл эту концепцию, как она работает под капотом, и какие нюансы следует знать, чтобы подружиться с borrow checker’ом, а не воевать с ним каждый раз при компиляции кода.

Читать далее

Explyt 5.0 на Joker: поддержка Rider и новый тестовый агент

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

Всем привет! Рады представить новую версию Explyt 5.0 с поддержкой Rider 🚀 новым тестовым агентом, Web search & Web fetch и другими приятными улучшениями.

Агентский режим генерации тестов

Lasers & Feelings и Ink: как мы адаптировали настольную RPG для визуальной новеллы

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

Привет, Хабр! Мы разрабатываем собственный плеер для визуальных новелл. Чтобы протестировать его возможности в «боевых» условиях, мы решили создать небольшую игру с нелинейным повествованием и RPG-элементами.

В качестве сценарного движка мы используем Ink — язык от студии Inkle, ставший стандартом в индустрии нарративных игр. А в качестве ролевой системы мы выбрали простую и элегантную Lasers & Feelings Джона Харпера, адаптировав её под формат одиночной визуальной новеллы.

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

Читать далее

Как реализовать CRDT-структуры в Go для офлайн-режима

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

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

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

Классические решения вроде Operational Transformation давно применяются, например, в совместном редактировании документов. Но сегодня я хочу рассказать про другой подход — CRDT.

Перейти к разбору CRDT

MVC в Unity. Часть 1. MVO

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

👋 Всем привет

Часто в моем окружении среди разработчиков много холивара на тему MVx-паттернов. Что обозначают все эти буквы? Почему в разных командах называют по-разному? Чем один отличается от другого? И зачем оно вообще все?

Поэтому решил сделать несколько статей на тему MVX паттернов с примерами на Unity. Хочется прояснить его для создания единого контекста в gamedev о концепции как самого паттерна MVC, так и их различные реализации.

Итак. Поехали!

Рассмотрим следующую ситуацию...

Читать далее

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