Обновить
116.07

Качество кода *

Как Макконнелл завещал

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

Полный обзор функциональности российского трекера ошибок Хоук

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

Hawk — это open-source трекер ошибок, разработанный в России. Позволяет отслеживать ошибки в веб-приложениях, API и мобильных сервисах. В этой статье подробно рассмотрим функциональность, которая сегодня доступна пользователям Хоука — от регистрации до продвинутых SDK-функций и планов на будущее.

Читать далее

Паттерны ООП в 10 минутах от вас… Поведенческие шаблоны с примерами на Java

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

Ночь. Курсор мигает, как маяк в тумане. Логи шепчут о том, что в коде — своя улица, свои правила и кодекс общения. Объекты — не безмолвные элементы системы. У каждого свой характер, привычки и слабости. Один щёлчок и поведение меняется: кто-то отдаёт приказы, кто-то внимательно прислушивается, а кто-то терпеливо ждёт сигнала. Эта статья — карта такого города.

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

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

Заменяем лишние if-проверки на assert для инвариантов кода в C/C++

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

Многие разработчики привыкли везде ставить if-проверки, даже для условий, гарантированных кодом. Зачем проверять то, что не может нарушиться? Такие проверки создают шум в коде и мусор в релизе. Assert решает эту проблему: документирует допущения и исчезает из финальной сборки. В статье покажу все преимущества assert'ов и предостерегу от подводных камней их использования.

Читать далее

С появлением ИИ работа опытного программиста стала намного сложнее

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

Взгляд на интеграцию ИИ в программирование от опытного программиста (миллион строк кода я, наверное, написал за всю жизнь). Текст писал я сам, это не мусор от GPT, ИИ здесь только исправил ошибки.
Если дать этот текст ИИ на фактчек, то он может как полностью подтвердить мою статью кучей проверенных фактов, так и полностью опровергнуть, и тоже с кучей фактов, т.е. по сути будет заниматься черри-пикингом - всё зависит от формулировки вопроса. И где же тогда правда? Правда, я думаю, у тех, кто в этой среде годами работает и получает много опыта как разработки с ИИ, так и без него. Т.е. имеет хоть какие-то экспертные знания. В этой статье мнение одного из таких людей. Мнения одного человека, конечно, мало, нужно обобщать опыт сотен людей из разных сфер программирования. Я вношу в это обобщение свой небольшой вклад.

Читать далее

ИИ замедляет разработчиков? Почему промты съедают столько же времени, сколько код, и что с этим делать

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

Я верил, что с приходом ИИ жизнь разработчика превратится в сказку. ИИ будет писать код, а я — придумывать фичи и строить продукт. В реальности я полдня пишу промты, а еще полдня трачу на правки за Copilot. Быстрее написать код самому.

Почему промты занимают так много времени и как компании учат сотрудников использовать ИИ, чтобы он не портил никому жизнь — рассказываю в статье.

Читать, как быть с промтами

Шаблоны и принципы деления кода на классы

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

За 9 лет разработки ПО  я периодически выступал в  роли ментора и сталкивался с проблемой, которую недавно озвучил начинающий программист после онлайн-курсов: 

«Не понимаю, как делить код на классы».

Оказалось, на курсах учили языку, но не программированию. А ведь язык — лишь инструмент, и принципы проектирования кода универсальны для разных языков программирования.

Я показал студенту несколько готовых шаблонов классов, чтобы он мог сразу применить, и хотел дать методичку по теории, но под рукой не оказалось ни заметок, ни статей, ни книг. Поиск в интернете и запросы к ИИ выдавали только материалы по ООП и принципам SOLID, которые мало касались нужной темы. Выходило так, что вся нужная для такой методички информация, лежит у меня в голове.  

Так и родилась идея написать эту статью.

Читать далее

Теория тестирования ПО простыми словами: от основ до практики

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

Тестирование — это не просто поиск ошибок. Это способ убедиться, что продукт действительно работает так, как должен, и делает жизнь пользователей проще, а не сложнее. Хорошее тестирование начинается задолго до первого нажатия кнопки “Run tests” — с понимания логики продукта, требований и рисков.

Читать далее

Великий крах качества программного обеспечения: как мы нормализовали катастрофу

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

Мы переживаем величайший кризис качества программного обеспечения в истории вычислительной техники. Калькулятор теряет 32 ГБ оперативной памяти. ИИ-помощники удаляют рабочие базы данных. Компании тратят 364 миллиарда долларов, чтобы избежать решения фундаментальных проблем.

Читать далее

Анализ дампа: с чего начать

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

Всем привет! Меня зовут Виктор, и я программист. Восемь лет работаю в команде Т-Банка и все это время вместе с коллегами занимаюсь проектом «Т-Телефония». Моя команда разрабатывает сервисы, которые обеспечивают голосовую коммуникацию внутри и вне банка. 

Звонки — один из основных способов связи с нами, поэтому система критична для бизнеса с высоким требованием к доступности. Она обрабатывает более 2 млн звонков в день. Если происходит сбой в любой пользовательской системе и нашим клиентам плохо, количество звонков сразу увеличивается, а нагрузка на систему повышается в два-три раза.

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

В статье покажу, что такое дампы, какие есть инструменты для работы с ними и какие у них особенности, покажу наши примеры проблем, расскажу, как мы их решали.

Читать далее

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

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

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

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

Читать далее

Стоицизм как база для TDD: страданиями код совершенствуется

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

Когда тест проходит с первого раза — это пугает. Стоицизм в TDD — не методология, а форма выживания.

Читать далее

Дэвид Л. Парнас «О критериях для разбиения систем на модули»

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

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

Читать далее

Петух на проекте

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

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

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

Ко-ко

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

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

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

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

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

Читать далее

Мне жаль, но вы используете подсветку кода неправильно

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

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

Как и любой инструмент, её можно использовать правильно или неправильно. Чаще всего дефолтная подсветка выглядит как новогодняя елка, что делает текст трудночитаемым. Давайте посмотрим, как изменить это.

Читать далее

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

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

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

Читать далее

Python шпильки: как заменить многоэтажные if-else на изящный словарь функций

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

Блог Михаила | Python | Разработка | Best Practices

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

Читать далее

Вайб-кодинг уязвимостей или как AI роняет безопасность

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

Писать код с LLM — очень легко, просто и весело. Не нужно мучаться с документацией, не нужно фиксить баги. Вообще ничего не нужно. Только инструкцию в чат написать. Раз-два — и всё готово. Заманчиво? Да. Но у всего есть цена — и про неё важно помнить.

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

Читать далее

Как я создала аккаунт с именем «NULL» и мне стали приходить уведомления о покупке доменов другими пользователями

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

Всем привет. Меня зовут Аня (SavAnna) я работаю AppSec и как хобби занимаюсь багбаунти. Багбаунти - отличный способ отдохнуть от своих сервисов и сменить фокус с "защиты" на "нападение". Не всегда баги ищутся целенаправленно - иногда это происходит случайно. Хочу показать, что много странных и простых багов может найти каждый.

Читать далее

Ловушка ИИ-кодинга

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

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

Если коротко, процесс выглядит примерно так: сначала думаем — потом пишем. Но с приходом ИИ-кодинга всё изменилось.

Читать далее

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