Интервью
Peter McKee, руководитель отдела разработки в Sonar – Серия интервью

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












