Vernetzen Sie sich mit uns

Interviews

Peter McKee, Leiter Developer Relations bei Sonar – Interviewreihe

mm

Peter McKee ist Leiter der Entwicklerbeziehungen bei Echolot, eine Plattform, die die Billionen-Dollar-Herausforderung von schlechtem Code löst. Sonar versetzt Entwickler und Organisationen in die Lage, systematisch den Status „Clean Code“ zu erreichen, sodass der gesamte Code für die Entwicklung und Produktion geeignet ist. Durch die Anwendung der Clean as You Code-Methodik von Sonar minimieren Unternehmen Risiken, reduzieren technische Schulden und schöpfen auf vorhersehbare und nachhaltige Weise mehr Wert aus ihrer Software.

Was hat Sie ursprĂĽnglich an der Informatik interessiert?

Ich habe mich schon in jungen Jahren für Computer interessiert. Auch als ich zunächst einen anderen Berufsweg einschlug, fühlte ich mich immer wieder zu Computern und Programmierung zurückgezogen. Irgendwann leitete mein Vater ein Stahlunternehmen in Virginia, und das Unternehmen hatte seine Beratergruppe verloren. Da ich schon in jungen Jahren das Programmieren gelernt hatte, lud er mich ein, für ihn zu arbeiten und Systeme zu bauen. Um ehrlich zu sein, wusste ich anfangs nicht zu 100 %, was ich tat, aber ich lernte aus Büchern und der Arbeit am Arbeitsplatz und wurde völlig Autodidakt. Das hat mein Interesse am Programmieren und an Computern weiter geweckt und mein Interesse an der Informatik wirklich gefestigt.

Könnten Sie klarstellen, wie Sie Clean Code definieren würden und warum er so wichtig ist?

Schon seit Jahren heißt es, dass Software die Welt verschlingen wird, und ich würde sagen, wir sind jetzt an dem Punkt angelangt, an dem es offiziell ist – die Welt basiert auf Software und jedes Unternehmen ist praktisch ein Softwareunternehmen. Die Grundlage guter Software ist qualitativ hochwertiger Code, da Code das Herzstück jeder Software ist und ihr Verhalten und ihre Leistung bestimmt. Deshalb Code bereinigen – konsistenter, zielgerichteter, anpassungsfähiger und verantwortungsvoller Code – ist so wichtig. Sauberer Code ist leicht zu verstehen und zu ändern, funktioniert zur Laufzeit reibungslos und enthält keine technischen Schulden, sodass er seinen Zweck erfüllt. Clean Code ist der Standard, den Unternehmen annehmen sollten, um sicherzustellen, dass ihre Software weiterhin ein Vermögenswert – und keine Belastung – und der Schlüsselfaktor für den heutigen Geschäftserfolg ist.

Von Clean Code profitieren Teams und Organisationen aller Größen und Reifegrade und steigern dadurch den Wert von Software. Ein paar spezifische Vorteile sind:

  • Fördert die Entwicklungsfähigkeiten — Entwickler können beim Codieren Probleme erkennen, verstehen und lösen und gleichzeitig Best Practices erlernen
  • Steigert Effizienz und Produktivität — Reduzierung ständiger Nacharbeiten und langer Feedback-Zyklen, was zu einer höheren Produktivität fĂĽhrt
  • Reduziert Reputations- und Geschäftsrisiken — Clean Code sorgt fĂĽr weniger Sicherheitsrisiken, indem es Teams ermöglicht, Probleme proaktiv anzugehen, bevor sie in die Produktion gelangen
  • Reduziert technische Schulden auf Codeebene — Clean Code beseitigt schrittweise die Schulden der Codebasis, ohne dass eine umfassende Ăśberarbeitung und Unterbrechung der Anwendung erforderlich ist
  • Erhöht die Geschwindigkeit der Softwareentwicklung — Clean-Code-Standards und optimierte Abläufe verbessern die DevOps-Geschwindigkeit und fördern so eine schnellere MarkteinfĂĽhrung

Können Sie die Bedeutung von Konsistenz und Struktur im Code erläutern und einige Beispiele für konsistenten und sauberen Code nennen?

Eine konsistente Codequalität ist etwas, das jeder Manager oder technische Direktor aufrechterhalten möchte. Konsistenz ist für die Codequalität von entscheidender Bedeutung, da Konsistenz zu Vorhersehbarkeit führt. Es ist einheitlich und konventionell geschrieben – der gesamte Code sieht ähnlich aus und folgt einem regelmäßigen Muster, auch wenn mehrere Mitwirkende zu unterschiedlichen Zeiten beteiligt sind. Konsistenter Code ist formatiert, konventionell und identifizierbar. Durch die Einführung konsistenter Codierungsstandards werden Entwickler effizienter und können ihre Liefererwartungen schneller und präziser erfüllen.

Können Sie die Bedeutung von Code erläutern, der mit unerwarteten Bedingungen umgehen kann, und warum dies nicht übersehen werden sollte?

Entwickler versuchen während des Entwurfs- und Entwicklungsprozesses immer, unerwartete Ereignisse vorherzusehen und sich darauf vorzubereiten, aber dies kann nicht in jedem Fall verhindert werden. Durch unbeabsichtigten Missbrauch oder absichtlich ausgelöste Angriffe kann es zu unerwarteten Zuständen kommen. Diese unerwarteten Zustände können unbeabsichtigt Sicherheitslücken schaffen, die Angreifer ausnutzen können. Aus diesem Grund sollten Entwickler stets danach streben, die Qualität und Stabilität ihres Codes zu verbessern und auf unerwartete Bedingungen zu testen. Indem Sie a folgen Sauber, während Sie programmieren Mit diesem Ansatz können Teams neue Funktionen besser beschleunigen, unnötige Nacharbeitskosten vermeiden und das Wachstum und die Bindung von Talenten fördern. Clean Code fördert Sicherheit, Wartbarkeit und Zuverlässigkeit und kann es Entwicklern ermöglichen, unerwartete Zustände besser zu antizipieren und zu bewältigen und die Software schneller wieder zum Laufen zu bringen.

Können Sie die Vorteile der Verwendung generativer KI für die Codegenerierung erläutern?

Die Einbindung von KI in den Softwareentwicklungslebenszyklus hat seine Vorteile, z. B. ermöglicht es Entwicklern, effizienter zu arbeiten. Tatsächlich, GitHub Untersuchungen haben ergeben, dass Entwickler Aufgaben mithilfe von KI um mehr als 50 % schneller erledigen können. GenAI kann Code auch schneller generieren und nimmt ihnen dadurch die Last mühsamerer Routineaufgaben wie Dokumentation oder Generierung von Codeausschnitten ab, sodass sie sich besser auf höherwertige, lohnende Aufgaben konzentrieren können, um mehr zu lösen komplexe Probleme. Unabhängig davon, wie Code erstellt wird, ist es jedoch wichtig, dass er anhand der Clean-Code-Standards überprüft wird, um sicherzustellen, dass der Code sicher, zuverlässig und wartbar ist.

Was sind einige der potenziellen Fallstricke und Risiken von generiertem Code?

 Während KI den Entwicklern mehr Zeit fĂĽr die Arbeit an höherwertigen Projekten verschaffen und die Produktivität steigern kann, ist sie nicht ohne Risiken. Deshalb wird der Bedarf an Entwicklern auch im Zeitalter der KI nicht verschwinden. Da GenAI-Tools schnell viel Code generieren können, besteht die Gefahr von Fehlern. Hier sind einige spezifische Fallstricke:

  • Rechenschaftspflicht: KI-generierter Code verringert die Fähigkeit, Menschen fĂĽr den erstellten Code zur Verantwortung zu ziehen, was die Lösung/Bewältigung von Problemen erschweren kann.
  • Schwachstellen: Da es sich größtenteils um Crowdsourcing-Informationen handelt, gibt es keine Garantie dafĂĽr, dass der erzeugte Code sicher oder sauber ist. Möglicherweise gibt es sogar Fehler oder Sicherheitsprobleme, die das Geschäft gefährden können.
  • Qualität: KI prĂĽft die Qualität nicht noch einmal, und nur weil sie aus KI generiert wurde, heiĂźt das nicht, dass sie effizient oder hochwertig ist.
  • Kein Kontext: Der Verlust des menschlichen Elements bedeutet natĂĽrlich, dass Sie den Kontext eines Problems oder Projekts verlieren. Der von der KI generierte Code muss ĂĽberprĂĽft werden, um sicherzustellen, dass er seine Aufgabe vollständig erfĂĽllt.

Wenn Entwickler bei ihrem Code – ob von Menschen oder KI generiert – den „Clean as You Code“-Ansatz verfolgen, können sie sicherstellen, dass er für die Entwicklung und Produktion geeignet ist und die erforderlichen Standards ihrer Organisation erfüllt.

Welche anderen Variablen sollten fĂĽr den Produktionscode berĂĽcksichtigt werden?

 Entwickler, die Code schreiben, der den Clean-Code-Prinzipien entspricht, können sicher sein, dass ihr Code fĂĽr die Entwicklung und Produktion geeignet ist, was bedeutet, dass der Code bestimmte Merkmale aufweist:

  • Konsistent: Der Code sollte konsistent sein und einem gemeinsamen Stil folgen. Auch wenn der Code im Laufe der Zeit von mehreren verschiedenen Entwicklern bearbeitet wird, sollte er ein ähnliches Aussehen haben und sich an zuvor festgelegte Muster halten.
  • Absicht: Absichtlicher Code sollte sich so lesen, als wäre er mit Aufmerksamkeit und Sorgfalt geschrieben worden, um seinen Zweck zu vermitteln. Es sollte nur eine Interpretation verfĂĽgbar sein.
  • Anpassungsfähig: Anpassbarer Code ist so segmentiert und organisiert, dass es einfacher ist, die Beziehungen zwischen den einzelnen Codezeilen zu verwalten und zu erkennen. Dadurch wird der Code fĂĽr eine einfache und sichere Weiterentwicklung strukturiert.
  • Verantwortlich: Der Kodex und seine Entwickler sollten sich ihrer ethischen Verpflichtungen in Bezug auf Daten und ihres potenziellen Einflusses auf gesellschaftliche Normen bewusst sein. Letztlich soll der Kodex keine dauerhafte Gefahr darstellen, Dritte unbeabsichtigt zu schädigen.

Können Sie einige der verschiedenen Angebote von Sonar erläutern und erläutern, wie es Programmierern dabei hilft, schnell und systematisch verantwortungsvollen, sicheren und qualitativ hochwertigen Code zu erstellen?

 Durch unsere branchenfĂĽhrenden Analysegeräte identifiziert Sonar Codierungsprobleme auf umfassende Weise und empfiehlt Korrekturen mit kurzen Feedbackschleifen, während der Entwickler gleichzeitig ĂĽber den Kontext informiert wird, was letztendlich dazu fĂĽhrt, dass Unternehmen schnell und systematisch verantwortungsvollen, sicheren und qualitativ hochwertigen Code erstellen können. Die Kernelemente der Sonar-Lösung sind SonarLint, SonarQube (selbstverwaltet; Open Source) und SonarCloud (SaaS) mit umfassender Abdeckung, die ĂĽber 30 Programmiersprachen, Frameworks und Infrastrukturen, 11 IDEs und mehr als 5,000 Codierungs- und sprachspezifische Regeln unterstĂĽtzt.

SonarLint, eine IDE-Erweiterung, bietet die erste Prüfzeile, um Probleme in Echtzeit zu finden, sobald der Code geschrieben wird. Es erkennt einen großen Teil der Probleme im Voraus und hilft Entwicklern, Fehler zu erkennen und zu beheben, beispielsweise durch eine Rechtschreibprüfung für Code. SonarQube und SonarCloud, die Codeüberprüfungstools für die statische Analyse von Sonar, prüfen und analysieren kontinuierlich die Codebasis mit SonarLint-Integration. SonarQube und SonarCloud prüfen mithilfe von Quality Gates, ob der Code die definierten Standards für Qualität, Sicherheit und Zuverlässigkeit für die Produktion erfüllt, den Code auf Fehler, Schwachstellen, Sicherheits-Hotspots und Code-Gerüche.

Durch die Kombination unseres Lösungspakets mit unserer Clean as You Code-Methodik – einem Ansatz, der festgelegten Standards folgt, um neuen, hinzugefügten oder bearbeiteten Code sauber zu halten – werden Entwickler und Organisationen in die Lage versetzt, sauberen Code bereitzustellen und vorhandenen Code organisch zu korrigieren, sodass sie sich auf neues konzentrieren können , innovative Projekte, die den Geschäftswert steigern

Wie trägt Sonar dazu bei, sicherzustellen, dass der Code konform ist und den Industriestandards entspricht?

Sonar hilft Entwicklern, Zugriff auf unmittelbares und kontextualisiertes Feedback zu erhalten und Probleme dort hervorzuheben, wo sie sich in der Codebasis befinden, innerhalb des Entwicklungsworkflows, basierend auf jahrelanger Erfahrung mit Sprachanalysatoren. Entwickler erhalten Zugriff auf klare Erklärungen, warum ein Problem auftritt und wie es schnell behoben werden kann, sowie auf zusätzliche Ressourcen für tiefergehendes Lernen. Wir bieten Schulungen für den gesamten Workflow an, von der IDE bis zum CI/CD. Sonar hat beispielsweise spezifische MISRA C++ 2023-Regeln Verfügbar in SonarLint, um Teams bei der Erstellung von Code zu unterstützen, der optimal auf eine eventuelle Zertifizierung vorbereitet ist. Es bietet Codierungsanleitungen, erklärt die Gründe für ein gemeldetes Problem und wie man es beheben kann, um sicherzustellen, dass der geschriebene Code MISRA-konform ist.

Was ist Ihre Vision, wie KI die Codierung in Zukunft verändern wird?

 Ich denke, dass KI weiterhin einen groĂźen Beitrag zur Bekämpfung des Entwickler-Burnouts leisten wird. Obwohl ich nicht glaube, dass KI jemals in der Lage sein wird, das Denken und die menschliche Note der Entwickler zu entlasten, glaube ich doch, dass wir schon in ein paar Monaten eine völlig neue Reihe von GPTs sehen werden – ganz zu schweigen davon, in ein paar Jahren von jetzt an wird es so aussehen. Ich glaube nicht, dass Technologen oder Entwickler verschwinden werden, aber die Art und Weise, wie sie jeden Tag ihre Arbeit erledigen, wird sich sicherlich ändern. Die Art und Weise, wie Entwickler KI verwenden, wird so einfach und alltäglich sein wie die Suche von Google nach einer VerknĂĽpfung. Ăśber den Einsatz von KI gibt es noch viel zu erforschen, aber wir mĂĽssen immer noch den menschlichen Faktor im Vordergrund berĂĽcksichtigen, um die Nachteile der KI zu prĂĽfen. Es gibt transformatives Potenzial in der Softwareentwicklung, aber wir dĂĽrfen sie nicht ohne Kontrolle laufen lassen – insbesondere wenn digitale Unternehmen heute auf die Software angewiesen sind, die ihr zugrunde liegt.

Vielen Dank für das tolle Interview, Leser, die mehr erfahren möchten, sollten vorbeischauen Echolot.

Antoine ist ein visionärer Leiter und Gründungspartner von Unite.AI, angetrieben von einer unerschütterlichen Leidenschaft für die Gestaltung und Förderung der Zukunft von KI und Robotik. Als Serienunternehmer glaubt er, dass KI für die Gesellschaft ebenso umwälzend sein wird wie Elektrizität, und schwärmt oft vom Potenzial disruptiver Technologien und AGI.

Als Futuristwidmet er sich der Erforschung, wie diese Innovationen unsere Welt prägen werden. Darüber hinaus ist er der Gründer von Wertpapiere.io, eine Plattform, deren Schwerpunkt auf Investitionen in Spitzentechnologien liegt, die die Zukunft neu definieren und ganze Branchen umgestalten.