Обновить
256K+

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

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

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

Тестировщик и вера в Бога: баг или фича?

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

Привет, Хабр! Меня зовут Михаил Федоров, я руковожу центром компетенций QA. В предыдущих статьях я рассказывал про QA Assist — AI-ассистента для тестирования. Сейчас идёт пилот на реальном проекте, копятся метрики и грабли — но писать об этом пока рано. Результаты будут, а пока давайте поговорим о чём-то другом.

Однажды друг в шутку спросил: «А тестировщики вообще могут верить в Бога? Это же не совместимо, нет?»

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

Эта статья — про границы знания в тестировании: что мы на самом деле знаем, что принимаем на веру, а что — на доверие. И почему разница между этими понятиями важнее, чем кажется.

Читать далее

Новости

Статический анализ кода STM32. Конкретный пример

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

Для такого вот аппаратного ключа администратора нам понадобилось провести статический анализ кода. Как мы это делали - в статье.

Добрый день, уважаемые коллеги!

Хотел бы сегодня рассказать о несколько необычном опыте анализа кода. Предваряю возмущение многих – да, мсье действительно знает толк в извращениях 😊

Итак, о них родимых. В одном нашем изделии понадобилось защитить от несанкционированного доступа администраторскую консоль управления, банальный COM-порт с мостиком USB-UART на основе FT232. К сожалению, классическое решение с логином/паролем было обставлено целым частоколом формальных требований в виде (1) срока жизни паролей, (2) логирования успешных/неуспешных попыток, (3) минимальной длины паролей, (4) минимальным их алфавитом, (5) требований к применению больших и малых букв, и цифр, и спезнаков, именно «И», а не «ИЛИ». Перечислять можно бы и дальше, но зачем?

Объехать все эти требования по обочине было решено нестандартным путём – поскольку все требования относились к программному продукту, а про аппаратные устройства ничего не было сказано, то мы просто применили АКА – аппаратный ключ администратора. Он втыкается в разрыв USB-кабеля, идущего от АРМ администратора к устройству, и по свободным линиям обменивается с Изделием сообщениями по схеме challenge-response, не передавая напрямую через линии связи общий секрет, при этом перехват сообщений злоумышленнику не даёт ровно ничего. Если кому интересно, как конкретно это сделано – пишите в комменты или в личку.

Поскольку к историческому моменту принятия решения мы все были в жёстком цейтноте, изготовление АКА поручили стажёру. А он возьми и выбери за основу для разработки «голубую пилюлю (BluePill)» и STM32. Возмущаться, спорить и учить вечному было уже некогда, и тимлид, махнув рукой, согласился. Забегая вперёд, скажу, что отказов и/или сбоев АКА как с самого начала не наблюдалось, так и не наблюдается по сей день. Да, наверное, ПЛК на Ардуине – это уже слишком, но костыль и велосипед проходит вполне (рискую быть бит жёлтыми тряпками, но что было, то было).

Читать далее

Skaro 2.0: не ещё один AI-инструмент для кода, а среда совместной работы над проектом

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

Ранее я уже рассказывал о Skaro. С тех пор проект заметно изменился: вторая версия получилась не косметическим обновлением, а довольно глубокой переработкой самой модели работы.

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

Читать далее

Как мы перестали молиться на AI и собрали параноидальный конвейер для МРТ (с открытым кодом)

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

На каждой второй конференции по медицинскому AI звучит один и тот же сценарий: «Дообучим мультимодальную модель, скормим ей DICOM, и она сама выдаст диагноз». На практике, когда этот скрипт пытается попасть в реальную клинику, начинаются неожиданности. OOM на GPU, врачи не понимают, где галлюцинация модели, а где финальный отчёт, двухгигабайтные NIfTI-исследования рвут таймауты балансировщика.

Я какое-то время тоже думала, что главное — это модель. А потом пересмотрела собственный код. У меня уже есть MRI Second Opinion. Но это не нейросеть. Это контур с доменной моделью, конвейером приёма данных, циклом обработки, обязательным врачебным рецензированием, финализацией и отдельным репозиторием с открытым кодом. В медицинском IT модель — не главная проблема. Главная проблема — чтобы между входом и выходом ничего не потерялось и не сломалось.

Читать далее

Галлюцинация продуктивности

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

PR утвердили за четыре минуты. Авторизация легла через три дня. 84% разработчиков используют AI-инструменты - 29% доверяют тому, что выкатывают в прод. Разницу между этими числами я назвал «галлюцинация продуктивности».

Читать далее

Возможно ли запустить AI-тестирование за 4 часа?

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

Привет! Это снова Михаил Федоров. В предыдущей статье я рассказал об архитектуре QA Assist — системе из 11 AI-агентов, которая берёт на себя 80% рутины QA-инженера. Среди метрик была строчка: «Подключение тестирования на новый проект — ~4 часа настройки, первые баги уже в бэклоге».

Красиво, правда? Прямо слайд для презентации. Давайте проверим эту цифру на реальном проекте — и посмотрим, насколько я был честен с вами (спойлер: не совсем).

Читать далее

Код без автора

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

Открыл MR на ревью. 847 строк. Тесты зелёные. Линтер чистый. Не понимаю ни одной строчки. GitClear проанализировали 211 миллионов строк - и нашли проблему, которую не видно ни в каких метриках.

Читать далее

Виды тестирования ПО: статика, динамика и 5 уровней, которые работают на практике

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

Когда код уже написан, половина багов уже не исправить. Парадокс? Нет — статическое тестирование. В этой статье разбираю, как находить дефекты ещё на этапе требований, почему «большой взрыв» интеграции — это путь в никуда, и зачем знать про заглушки, драйверы и уровни от компонентного до UAT.

Читать далее

Программирование как построение теории: почему ИИ-агенты усложняют понимание кода

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

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

Читать далее

Вайбкодь потише, пожалуйста! или Пацаны, это и раньше было легко

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

Итак, что мы имеем в моменте

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

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

Читать далее

Кратко о CVSS: как оценивать критичность уязвимостей

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

Разбираем Common Vulnerability Scoring System – что скрывается за цифрой от 0 до 10, как читать базовые, временные и контекстные метрики, и где искать актуальную информацию об уязвимостях.

Читать далее

Как мы построили AI-экзоскелет для QA-инженера: от идеи до 11 автономных агентов

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

Привет! Меня зовут Михаил Федоров, я руковожу центром компетенций QA. Мы решили не нанимать ещё двух тестировщиков, а написать систему AI-агентов, которая берёт на себя 80% рутины QA-инженера – от анализа требований до Merge Request с готовыми автотестами. В этой статье расскажу, как устроена архитектура, какие грабли мы собрали, и что из этого вышло на практике.

Читать далее

Мифы о веб-фреймворке $mol

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

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

Далее идёт развеивание мифов, касательно разработки "на $mol" в сравнении с разработкой "на React", как типичной ситуации в индустрии. Но вместо React вы смело можете подставлять любой другой его аналог.

Развенчать мифы

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

Передаем код правильно

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

Чек-лист для фиксации программного обеспечения. Внедрите эту практику в своем стартапе или студии:

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

В процессе: Перед подписанием акта разработчик делает git bundle

В акте: Укажите имя файла и его SHA-256 хэш

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

Хранение: Сохраните файл дампа в надежном хранилище (не только на рабочем ноутбуке)

Читать далее

РБПО по ГОСТ: где на самом деле ломается безопасность кода

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

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

Меня зовут Александр Сахаров, я директор по работе с партнерами в Диасофт. Мы строим экосистему Digital Q - платформу для enterprise-разработки - и сейчас решаем задачу, которая касается всех: как зашить безопасность внутрь конвейера так, чтобы она работала сама, а не превращалась в бумажный ритуал перед релизом. ГОСТ Р 56939-2024 уже вступил в силу, нейронки залезли в пайплайны, а инциденты почему-то не кончаются. Чтобы понять ожидания рынка я собрал экспертов на обсуждение нового ГОСТа и проблем безопасности. 

Кому удобнее смотреть - полная версия на Rutube. Спорить и задавать вопросы лучше всего в Telegram-канале Департамент разработки. Там уже много реальных разработчиков, можно свободно обсуждать любые темы. 

Читать далее

Оптимизация производительности во Flutter

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

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

В данной статье мы собрали наиболее распространённые ошибки, которые снижают производительность Flutter-приложений, и показали, как их избежать на практике.

Читать далее

Колобок

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

Народные сказки — это не просто фольклор, а старейший в мире архив Post-Mortem отчетов, где за метафорами скрыты фатальные ошибки проектирования, которые мы, по своей наивности, принимаем за магию

Если смотреть на «Колобка» с высоты жизненного опыта и системной архитектуры, то перед взором эпично раскинется поле Spaghetti-кода, написанного на коленке под палящим дедлайном. Знаете это чувство, когда менеджер вбегает в опенспейс с криком «Заказчик голоден, релиз нужен вчера!»? Это не работа. Это агония.

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

Интрига? Читать далее!

Закрытый контур без боли для разработчиков — миф или реальность?

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

Всем привет! Меня зовут Александр Барыков, я руковожу платформенной командой DevOps и являюсь лидером DevOps-комьюнити в нашей компании.

Сегодня хочу поделиться опытом, который мы накопили за последние четыре года. Речь пойдет о достаточно специфической, но знакомой многим теме – организации процесса скачивания и проверки внешних артефактов для размещения во внутреннем закрытом контуре. Эта статья будет полезна разработчикам, DevOps-инженерам и архитекторам, которые сталкиваются с необходимостью соблюдения строгих требований безопасности без потери темпа разработки, особенно в финансовом секторе, где есть регуляторные требования.

Читать далее

SAFe, платформенные команды и ИИ в разработке: как устроен IT в MANGO OFFICE

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

Почему рост IT — это не про новые команды и инструменты, а про структуру, ответственность и управление сложностью

Читать далее

Как создать FEN-to-Image Converter на Java: от шахматных фигур до красивых досок

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

Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data. В Beeline Cloud у нас есть место для экспериментов — и я этим пользуюсь. Недавно я работал над шахматным ботом для игры по переписке в Телеграм. Одна из ключевых задач — генерация изображений шахматной доски из FEN-нотации.

Читать далее
1
23 ...