Питер МакКи, глава отдела взаимодействия с разработчиками в Sonar – совместное интервью.

Совместное интервью с Питером МакКи, главой отдела взаимодействия с разработчиками в Sonar

Peter McKee является главой отдела взаимодействия с разработчиками в Sonar, платформе, которая решает проблему плохого программного кода стоимостью в триллион долларов. Sonar обеспечивает разработчиков и организации систематическим достижением состояния Чистого Кода, так чтобы весь код был пригоден для разработки и эксплуатации. Применяя методологию Clean as You Code от Sonar, организации минимизируют риски, снижают технический долг и получают больше ценности от своего программного обеспечения предсказуемым и устойчивым способом.

Что вас изначально привлекло в компьютерных науках?

Я всегда интересовался компьютерами с самого юного возраста. Даже когда я изначально следовал другой карьере, меня постоянно привлекали компьютеры и программирование. Однажды мой отец вел стальную компанию в Вирджинии, и они потеряли свою консультационную группу. Поскольку я научился программировать в молодости, он позвал меня поработать и создать системы для него. Правда, сначала я не знал на 100%, что делаю, но я учился из книг и выполнял работу на практике, и стал полностью самообученным. Это продолжало поддерживать мой интерес к кодированию и компьютерам и по-настоящему закрепило мой интерес к компьютерным наукам.

Можете ли вы пояснить, как бы вы определили, что такое Чистый Код и почему это так важно?

Со временем все чаще говорят, что программное обеспечение поглощает мир, и я бы сказал, что мы находимся в той точке, когда это официально – мир построен на программной основе, и каждая компания по сути является компанией по разработке программного обеспечения. В основе хорошего программного обеспечения лежит качественный код, так как код является основой всех программ и определяет их поведение и производительность. Именно поэтому Чистый Код – код, который является последовательным, намеренным, адаптируемым и ответственным, настолько важен. Чистый Код легко понять и изменить, работает плавно во время выполнения и не содержит технического долга, делая его пригодным для использования. Чистый Код – это стандарт, которым организации должны придерживаться, чтобы обеспечить то, что их программное обеспечение продолжает быть активом, а не ответственностью, и является ключевым фактором для успешного бизнеса сегодня.

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

  • Повышение навыков разработки — Разработчики могут обнаруживать, понимать и решать проблемы в процессе написания кода, а также изучать передовые практики
  • Повышение эффективности и продуктивности — Снижение непрерывной доработки и длительных циклов обратной связи, что приводит к большей продуктивности
  • Снижение репутационных и бизнес-рисков — Чистый Код обеспечивает меньше рисков безопасности, позволяя командам проактивно решать проблемы до перехода в продуктивную среду
  • Снижение кодового технического долга — Чистый Код позволяет постепенно устранять долг кодовой базы, не требуя масштабной перестройки и сбоев приложения
  • Увеличение скорости разработки программного обеспечения — Стандарты Чистого Кода и улучшенные рабочие процессы улучшают скорость разработки и внедрения, способствуя более быстрому выходу на рынок

Можете ли вы обсудить важность согласованности и структуры кода и привести примеры согласованного и Чистого Кода?

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

Можете ли вы обсудить важность кода, который может обрабатывать неожиданные условия, и почему этому следует уделять внимание?

Разработчики всегда пытаются предвидеть и подготовиться к неожиданным ситуациям в процессе проектирования и разработки, но это невозможно предотвратить в каждом случае. Неожиданные состояния могут возникать из-за непреднамеренного неправильного использования или целенаправленных атак. Эти неожиданные состояния могут случайно приводить к уязвимостям безопасности, которые злоумышленники могут использовать. Поэтому разработчики должны всегда стремиться улучшить качество и стабильность своего кода и тестировать его на неожиданные условия. Следуя подходу Clean as You Code, команды могут лучше ускорять внедрение новых функций, избегать излишних затрат на доработку и способствовать росту и удержанию талантов. Чистый Код повышает безопасность, поддерживаемость и надежность, и позволяет разработчикам более эффективно предвидеть и обрабатывать неожиданные состояния, восстановить работу программного обеспечения быстрее.

Можете ли вы обсудить преимущества использования генеративного искусственного интеллекта для генерации кода?

Внедрение искусственного интеллекта в жизненный цикл разработки программного обеспечения имеет свои преимущества, такие как повышение эффективности работы разработчиков. Фактически, исследование компании GitHub показало, что с использованием искусственного интеллекта разработчики могут выполнять задачи более чем на 50% быстрее. GenAI также может генерировать код быстрее, что позволяет избавиться от более скучных и рутинных задач, таких как документирование или создание фрагментов кода, и тем самым сосредоточиться на более ценном и приятном работе по решению сложных проблем. В любом случае, независимо от того, как создается код, важно проверять его соответствие стандартам чистого кода, чтобы убедиться, что он безопасен, надежен и поддерживаем.

Какие могут быть потенциальные проблемы и риски при использовании сгенерированного кода?

 Несмотря на то, что искусственный интеллект может освободить время разработчиков для работы над более ценными проектами и повысить продуктивность, это не происходит без определенных рисков. Именно поэтому в эпоху искусственного интеллекта спрос на разработчиков не исчезнет. Поскольку инструменты GenAI могут быстро генерировать большой объем кода, возникает потенциал для ошибок. Вот несколько конкретных проблем:

  • Ответственность: Генерируемый искусственным интеллектом код ограничивает возможность удерживать людей ответственными за созданный код, что может усложнить решение и устранение проблем.
  • Уязвимости: Поскольку код разрабатывается на основе информации из различных источников, нет гарантии, что полученный код является безопасным или чистым. Возможны ошибки или проблемы безопасности, которые могут поставить бизнес под угрозу.
  • Качество: Искусственный интеллект не проверяет код на качество, и просто потому, что код сгенерирован с использованием искусственного интеллекта, не значит, что он эффективный или высокого качества.
  • Отсутствие контекста: Потеря человеческого элемента естественным образом означает потерю контекста проблемы или проекта. Сгенерированный искусственным интеллектом код должен быть рассмотрен для проверки его полного соответствия поставленной задаче.

Когда разработчики следуют принципу “Чистый код на ходу” с использованием своего кода – будь то человеческий или сгенерированный искусственным интеллектом, они могут быть уверены, что он подходит для разработки и производства, и соответствует требуемым стандартам их организации.

Какие еще переменные должны быть учтены при создании кода для производства?

 Разработчики, пишущие код, соответствующий принципам Чистого кода, могут быть уверены, что их код подходит для разработки и производства, что означает, что код соответствует определенным характеристикам:

  • Согласованность: Код должен быть согласованным и соответствовать общему стилю. Даже если над кодом работают несколько разных разработчиков со временем, он должен иметь схожий внешний вид и соответствовать ранее установленным шаблонам.
  • Целеполагание: Целеполагательный код должен читаться так, будто он был написан с вниманием и заботой, чтобы передать его назначение; он должен иметь только одну возможную интерпретацию.
  • Адаптивность: Адаптивный код разделен и организован таким образом, чтобы его было легче управлять и видеть связи между каждой строкой кода. Это делает код структурированным для простого и уверенного развития.
  • Ответственность: Код и его разработчики должны быть осознанными своих этических обязательств по отношению к данным и их потенциальному влиянию на общественные нормы. Код в конечном итоге не должен представлять непрерывную угрозу неумышленного вреда третьим лицам.

Можете ли вы обсудить некоторые разные предложения от Sonar и как это помогает программистам быстро и систематически создавать ответственный, безопасный и высококачественный код?

 С помощью наших ведущих в отрасли анализаторов, Sonar выявляет проблемы с кодированием всесторонне и рекомендует исправления с короткими циклами обратной связи, обучая разработчика в контексте и в конечном итоге позволяет организациям быстро и систематически создавать ответственный, безопасный и высококачественный код. Основными элементами решения Sonar являются SonarLint, SonarQube (самостоятельное управление; открытый исходный код) и SonarCloud (SaaS), которые обеспечивают обширное покрытие более 30 языков программирования, фреймворков и инфраструктур, 11 сред разработки и более 5000 правил, связанных с кодированием и языком.

SonarLint, расширение для среды разработки, обеспечивает проверку кода в реальном времени с момента его написания. Он ловит большую часть проблем заранее и помогает разработчикам обнаружить и исправить ошибки, подобно проверке орфографии для кода. SonarQube и SonarCloud – инструменты статического анализа кода Sonar, непрерывно осматривают и анализируют кодовую базу с интеграцией SonarLint. Используя контрольные точки качества для определения соответствия кода заданным стандартам качества, безопасности и надежности для производства, SonarQube и SonarCloud осматривают код на наличие ошибок, уязвимостей, проблем безопасности и плохого кода.

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

Как Sonar помогает обеспечить соответствие кода требованиям и стандартам отрасли?

Sonar помогает разработчикам получить немедленную и контекстуализированную обратную связь, выявляя проблемы там, где они находятся в кодовой базе, в рамках рабочего процесса разработки на основе многолетнего опыта анализа языков. Разработчики получают четкие объяснения причин возникновения проблемы и быстрых способов ее устранения, а также дополнительные ресурсы для более глубокого изучения. У нас имеется образовательная программа, охватывающая весь рабочий процесс, от IDE до CI/CD. Например, в SonarLint доступны конкретные правила MISRA C++ 2023, которые помогают командам создавать код, который лучше всего подготовлен к дальнейшей сертификации. Он предоставляет руководство по написанию кода, объясняет причины возникновения проблемы и предлагает способы ее исправления, чтобы обеспечить соответствие MISRA.

Как вы видите будущее трансформации кодирования с помощью AI?

Я считаю, что AI продолжит приносить большую ценность, направленную на преодоление перегрузки разработчиков. Хотя я не думаю, что AI когда-либо сможет заменить мышление разработчиков и человеческий подход, я считаю, что уже через несколько месяцев мы увидим совершенно новые наборы GPT — не говоря уже о том, как они будут выглядеть через несколько лет. Я не думаю, что технологи и разработчики будут исчезать, но способы, которыми они работают каждый день, определенно изменятся. Способ использования разработчиками AI станет таким же простым и обыденным, как поиск в Google для получения быстрого решения. Есть много аспектов использования AI, но мы все равно должны учитывать роль человека на первом плане, чтобы проверить недостатки AI. В разработке программного обеспечения есть потенциал для трансформации, но мы не должны позволять ему функционировать без контроля, особенно когда современные цифровые бизнесы зависят от программного обеспечения, на котором они основаны.

Спасибо за отличное интервью, читатели, желающие узнать больше, могут посетить Sonar.