Интервью
Петер Макки, руководитель отдела разработки в Sonar – Интервью

Петер Макки является руководителем отдела разработки в Sonar, платформой, решающей задачу плохого кода стоимостью триллион долларов. Sonar оснащает разработчиков и организации для систематического достижения состояния Чистого Кодирования, чтобы весь код был пригоден для разработки и производства. Применяя методологию Sonar “Чистый Код на лету”, организации минимизируют риски, снижают технический долг и получают больше ценности от своего программного обеспечения предсказуемым и устойчивым образом.
Что изначально привлекло вас к информатике?
Я всегда интересовался компьютерами с раннего возраста. Даже когда я изначально выбирал другую карьерную траекторию, я постоянно возвращался к компьютерам и программированию. В один момент мой отец управлял сталелитейной компанией в Вирджинии, и они потеряли свою консалтинговую группу. Поскольку я научился программировать в молодости, он пригласил меня работать и создавать системы для него. Я не знал, честно говоря, что я делал 100% сначала, но я научился из книг и делая работу на работе, и стал полностью самоучкой. Это продолжало стимулировать мой интерес к кодированию и компьютерам и действительно укрепило мой интерес к информатике.
Можете ли вы уточнить, как вы бы определили, что такое Чистый Код, и почему он так важен?
Говорят уже много лет, что программное обеспечение съест мир, и я бы сказал, что мы теперь находимся на том этапе, когда это официально – мир построен на программном обеспечении, и каждая компания по сути является программной компанией. В основе хорошего программного обеспечения лежит качественный код, поскольку код находится в ядре всего программного обеспечения и определяет его поведение и производительность. Это почему Чистый Код — код, который последовательный, намеренный, адаптируемый и ответственный — так важен. Код, который чист, легко понять и изменить, работает гладко во время выполнения и не содержит технического долга, поэтому он пригоден для использования. Чистый Код — это стандарт, который организации должны принять, чтобы обеспечить, что их программное обеспечение продолжает быть активом — а не обязательством — и является ключевым фактором успеха бизнеса сегодня.
Чистый Код приносит пользу командам и организациям всех размеров и уровней зрелости, и увеличивает ценность программного обеспечения в результате. Некоторые конкретные преимущества заключаются в том, что он:
- Повышает навыки разработки — разработчики могут обнаруживать, понимать и решать проблемы во время кодирования, а также изучать лучшие практики
- Увеличивает эффективность и продуктивность — снижая постоянную переделку и длинные циклы обратной связи, в результате чего увеличивается продуктивность
- Снижает репутационные и деловые риски — Чистый Код обеспечивает меньше рисков безопасности, позволяя командам проактивно решать проблемы до того, как они достигнут производства
- Снижает технический долг на уровне кода — Чистый Код постепенно решает проблему долга кодовой базы без необходимости массового переделывания и нарушения
- Увеличивает скорость разработки программного обеспечения — стандарты Чистого Кодирования и оптимизированные потоки улучшают скорость DevOps, способствуя более быстрому выводу на рынок
Можете ли вы обсудить важность последовательности и структуры в коде, и какие примеры последовательного и Чистого Кодирования?
Последовательное качество кода — это то, к чему стремится каждый менеджер или технический директор. Последовательность имеет решающее значение, когда речь идет о качестве кода, поскольку последовательность приводит к предсказуемости. Он написан в унифицированном и конвенциональном виде — весь код выглядит одинаково и следует регулярному шаблону, даже с несколькими участниками в разное время. Последовательный код отформатирован, конвенционален и идентифицируем. Когда принимаются последовательные стандарты кодирования, разработчики становятся более эффективными и могут выполнить свои ожидания с быстротой и точностью.
Можете ли вы обсудить важность кода, который может справиться с неожиданными условиями, и почему это не должно быть упущено?
Разработчики всегда пытаются предвидеть и подготовиться к неожиданным событиям во время проектирования и разработки, но это не может быть предотвращено в каждом случае. Неожиданные состояния могут возникнуть из-за непреднамеренного неправильного использования или намеренно вызванных атак. Эти неожиданные состояния могут непреднамеренно ввести уязвимости безопасности, которые могут быть использованы атакующими. Это почему разработчики должны стремиться всегда улучшать качество и стабильность своего кода и тестировать на неожиданные условия. Следуя подходу Чистый Код на лету, команды могут лучше ускорить новые функции, избежать ненужных затрат на переделку и способствовать росту и удержанию талантов. Чистый Код способствует безопасности, поддерживаемости и надежности и может позволить разработчикам предвидеть и справиться с неожиданными состояниями более эффективно и быстро восстановить программное обеспечение.
Можете ли вы обсудить преимущества использования Генеративного ИИ для генерации кода?
Включение ИИ в жизненный цикл разработки программного обеспечения имеет свои преимущества, такие как возможность разработчикам работать более эффективно. Фактически, GitHub исследования показали, что разработчики могут выполнить задачи более чем на 50% быстрее с помощью ИИ. ГенИИ также может генерировать код быстрее, и, в свою очередь, снять бремя более скучных, рутинных задач — таких как документация или генерация кодовых фрагментов — с их плеч, чтобы они могли лучше сосредоточиться на более высокоценных, наградных работах для решения более сложных проблем. Однако, независимо от того, как код создается, важно, чтобы он проверялся на соответствие стандартам Чистого Кодирования, чтобы обеспечить, что код безопасен, надежен и поддерживаем.
Какие потенциальные ловушки и риски сгенерированного кода?
Хотя ИИ может освободить время разработчиков для работы над более высокоценными проектами и повысить производительность, он не обходится без рисков. Это почему спрос на разработчиков не исчезнет в эпоху ИИ. Поскольку инструменты ГенИИ могут генерировать много кода быстро, существует потенциал для ошибок. Вот несколько конкретных ловушек:
- Ответственность: сгенерированный код ИИ снижает возможность привлечения людей к ответственности за созданный код, что может затруднить решение проблем.
- Уязвимости: поскольку он использует в основном краудсорсинговую информацию, нет гарантии, что сгенерированный код безопасен или чист. Там могут быть даже ошибки или проблемы безопасности, которые могут поставить бизнес под угрозу.
- Качество: ИИ не проверяет качество, и только потому, что он сгенерирован ИИ, не означает, что он эффективен или высококачествен.
- Нет контекста: потеря человеческого элемента естественным образом означает, что вы теряете контекст проблемы или проекта. Сгенерированный код ИИ должен быть рассмотрен, чтобы обеспечить, что он выполняет свою работу полностью.
Когда разработчики применяют подход Чистый Код на лету к своему коду — будь то человеческий или сгенерированный ИИ — они могут обеспечить, что он пригоден для разработки и производства и соответствует необходимым стандартам их организации.
Какие другие переменные следует учитывать при кодировании, готовом к производству?
Разработчики, которые пишут код, соответствующий принципам Чистого Кодирования, могут быть уверены, что их код пригоден для разработки и производства, что означает, что код следует определенным характеристикам:
- Последовательный: код должен быть последовательным и следовать общему стилю. Даже если код работает с несколькими разработчиками в разное время, он должен иметь похожий вид и следовать ранее установленным шаблонам.
- Намеренный: намеренный код должен читаться так, как если бы он был написан с вниманием и заботой, чтобы передать свою цель; он должен иметь только одно возможное толкование.
- Адаптируемый: адаптируемый код сегментирован и организован так, чтобы его было легче управлять и видеть отношения между каждой строкой кода. Это делает код структурированным для легкой и уверенной эволюции.
- Ответственный: код и его разработчики должны быть осведомлены об своих этических обязательствах в отношении данных и их потенциального влияния на социальные нормы. Код в конечном итоге не должен представлять постоянный риск непреднамеренного вреда третьим лицам.
Можете ли вы обсудить некоторые из различных предложений Sonar и то, как они помогают кодерам создавать ответственный, безопасный, высококачественный код быстро и систематически?
Через наши ведущие анализаторы Sonar определяет проблемы кодирования всесторонним образом и рекомендует исправления с короткими циклами обратной связи, обучая разработчика в контексте, в конечном итоге позволяя организациям создавать ответственный, безопасный, высококачественный код быстро и систематически. Основные элементы решения Sonar — это SonarLint, SonarQube (самостоятельно управляемый; с открытым исходным кодом), и SonarCloud (SaaS), с обширным покрытием, поддерживающим более 30 языков программирования, фреймворков и инфраструктур, 11 IDE и более 5 000 правил кодирования и языков.
SonarLint, расширение IDE, предоставляет первую линию проверок для обнаружения проблем в режиме реального времени с момента написания кода. Он обнаруживает большую часть проблем заранее и помогает разработчикам обнаруживать и исправлять ошибки, как проверка орфографии для кода. SonarQube и SonarCloud, статические инструменты анализа кода, непрерывно проверяют и анализируют кодовую базу, с интеграцией SonarLint. Используя ворота качества для определения того, соответствует ли код определенным стандартам качества, безопасности и надежности для производства, SonarQube и SonarCloud проверяют код на наличие ошибок, уязвимостей, горячих точек безопасности и запахов кода.
Сопоставляя наш набор решений с нашей методологией Чистый Код на лету — подход, следующий установленным стандартам для поддержания нового, добавленного или отредактированного кода чистым — разработчики и организации могут создавать Чистый Код и устранять существующий код органично, чтобы они могли сосредоточиться на новых, инновационных проектах, которые приносят бизнес-ценность
Как Sonar помогает обеспечить, что код соответствует отраслевым стандартам?
Sonar помогает разработчикам получить немедленную и контекстуализированную обратную связь, подчеркивая проблемы, где они находятся в кодовой базе, в рамках рабочего процесса разработки на основе лет опыта анализа языков. Разработчики получают доступ к ясным объяснениям того, почему возникает проблема, и как быстро ее исправить, а также к дополнительным ресурсам для более глубокого обучения. У нас есть образование, построенное на протяжении всего рабочего процесса, от IDE до CI/CD. Например, Sonar имеет конкретные правила MISRA C++ 2023, доступные в SonarLint, чтобы помочь командам создавать код, который лучше всего подготовлен для будущей сертификации. Он предлагает рекомендации по кодированию, объясняя, почему возникает проблема, и как ее исправить, чтобы обеспечить, что код, который пишется, соответствует стандартам MISRA.
Каково ваше видение того, как ИИ изменит кодирование в будущем?
Я думаю, что ИИ продолжит приносить большую ценность в решении проблемы выгорания разработчиков. Хотя я не думаю, что ИИ сможет полностью снять с разработчиков ответственность за их работу, я считаю, что даже через несколько месяцев мы увидим совершенно новый набор GPT — не говоря уже о том, что будет через несколько лет. Я не верю, что технологи или разработчики исчезнут, но то, как они работают каждый день, обязательно изменится. Использование ИИ разработчиками будет таким же простым и обычным, как поиск в Google (GOOGL ) для чего-то в качестве сокращения. Есть многое, что можно изучить об использовании ИИ, но мы должны все равно учитывать человеческий элемент на переднем плане, чтобы проверить недостатки ИИ. Есть трансформационный потенциал для разработки программного обеспечения, но мы не должны позволить ему работать без каких-либо проверок — особенно когда цифровые бизнесы сегодня зависят от программного обеспечения, которое лежит в их основе.
Спасибо за отличное интервью, читателям, которые хотят узнать больше, следует посетить Sonar.












