Rozhovory

Peter McKee, Head of Developer Relations at Sonar – Interview Series

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Peter McKee je Head of Developer Relations ve společnosti Sonar, platformy, která řeší trillionový problém špatného kódu. Sonar vybavuje vývojáře a organizace, aby systematicky dosáhli stavu Clean Code, takže veškerý kód je vhodný pro vývoj a produkci. Používáním metodologie Sonar Clean as You Code mohou organizace minimalizovat rizika, snížit technický dluh a získat více hodnoty ze svého softwaru předvídatelným a udržitelným způsobem.

Co vás最初 přitáhlo k počítačovým vědám?

Byl jsem vždy fascinován počítači už od mladého věku. I když jsem zpočátku sledoval jinou kariéru, neustále jsem se vracel k počítačům a programování. V jednom okamžiku můj otec řídil ocelářskou společnost ve Virginii a ztratili svou poradenskou skupinu. Protože jsem se naučil programovat, když jsem byl mladší, pozval mě, abych pro něj pracoval a vytvořil systémy. Nevěděl jsem, upřímně, co dělám 100% na začátku, ale naučil jsem se z knih a práce na místě a stal se úplně samoukem. To dále pohánělo můj zájem o kódování a počítače a opravdu upevnilo můj zájem o počítačové vědy.

Můžete vysvětlit, jak byste definovali Clean Code a proč je tak důležitý?

Říká se to už roky, že software sní světa, a já bych řekl, že jsme nyní v bodě, kdy je to oficiální – svět je postaven na softwaru a každá společnost je vlastně softwarová společnost. Na základě dobrého softwaru je kvalitní kód, protože kód je jádrem všech softwarů a určuje jeho chování a výkon. Proto je Clean Code — kód, který je konzistentní, úmyslný, přizpůsobitelný a zodpovědný — tak důležitý. Čistý kód je snadno pochopitelný a měnitelný, funguje hladce během runtime a neobsahuje žádný technický dluh, a proto je vhodný pro účel. Clean Code je standard, který by organizace měly přijmout, aby zajistily, že jejich software zůstane aktivem – ne pasivem – a je klíčovým faktorem pro dnešní obchodní úspěch.

Clean Code přináší výhody týmům a organizacím všech velikostí a úrovní zralosti a zvyšuje hodnotu softwaru jako výsledku. Některé konkrétní výhody jsou:

  • Zvyšuje vývojové dovednosti — Vývojáři mohou detekovat, rozumět a řešit problémy, zatímco také se učí nejlepší postupy
  • Zvyšuje efektivitu a produktivitu — Snížení kontinuální přepracování a dlouhých zpětných vazeb, výsledkem je vyšší produktivita
  • Snížení reputačního a obchodního rizika — Clean Code zajišťuje méně bezpečnostních rizik tím, že umožňuje týmům proaktivně řešit problémy, než dosáhnou produkce
  • Snížení technického dluhu na úrovni kódu — Clean Code postupně řeší dluh kódu bez potřeby masivní přestavby a přerušení aplikace
  • Zvyšuje rychlost vývoje softwaru — Clean Code standardy a proudové toky zlepšují DevOps rychlost, podporují rychlejší čas na trh

Můžete diskutovat o důležitosti konzistence a struktury v kódu a jaké jsou některé příklady konzistentního a Clean Code?

Konzistentní kvalita kódu je něco, co každý manažer nebo technický ředitel cílí na udržení. Konsistence je zásadní, když jde o kvalitu kódu, protože konzistence vede k předvídatelnosti. Je napsán v jednotném a konvenčním způsobu – veškerý kód vypadá podobně a následuje pravidelný vzorec, i s několika přispěvateli v různých časech. Konsistentní kód je formátován, konvenční a identifikovatelný. Když jsou přijaty konzistentní standardy kódu, vývojáři se stávají efektivnějšími a jsou schopni splnit své dodací očekávání s rychlostí a přesností.

Můžete diskutovat o důležitosti kódu, který může zpracovat neočekávané podmínky, a proč by to nemělo být přehlíženo?

Vývojáři se vždy snaží předvídat a připravit se na neočekávané události během návrhového a vývojového procesu, ale to nelze zabránit ve všech případech. Neočekávané stavy mohou vzniknout v důsledku neúmyslného zneužití nebo úmyslně spuštěných útoků. Tyto neočekávané stavy mohou neúmyslně zavést bezpečnostní zranitelnosti, které mohou útočníci využít. Proto by vývojáři měli vždy usilovat o zlepšení kvality a stability svého kódu a testovat na neočekávané podmínky. Dodržováním Clean as You Code přístupu mohou týmy lépe urychlit nové funkce, vyhnout se zbytečným nákladům na přepracování a podporovat růst a udržení talentů. Clean Code podporuje bezpečnost, udržovatelnost a spolehlivost a může umožnit vývojářům předvídat a lépe zpracovat neočekávané stavy a dostat software zpět do provozu rychleji.

Můžete diskutovat o výhodách používání Generative AI pro generování kódu?

Zahrnutí AI do životního cyklu softwarového vývoje má své výhody, jako je umožnění vývojářům pracovat efektivněji. Skutečně, GitHub výzkum zjistil, že vývojáři mohou dokončit úkoly o více než 50% rychleji pomocí AI. GenAI může také generovat kód rychleji a přenést břemeno více jednotvárných, rutinních úkolů – jako je dokumentace nebo generování kódu – z jejich desky, aby se mohli lépe soustředit na vyšší hodnotu, odměňující práci pro řešení složitějších problémů. Bez ohledu na to, jak je kód vytvořen, je zásadní, aby byl zkontrolován proti standardům Clean Code, aby se zajistilo, že kód je bezpečný, spolehlivý a udržovatelný.

Jaké jsou některé potenciální pasti a rizika generovaného kódu?

 Zatímco AI může uvolnit čas vývojářům, aby pracovali na vyšších projektech a zvýšit produktivitu, není to bez rizika. To je důvod, proč poptávka po vývojářích nezmizí ve věku AI. Protože nástroje GenAI mohou generovat大量 kódu rychle, existuje potenciál pro chyby. Zde jsou beberapa konkrétních pastí:

  • Odpovědnost: AI-generovaný kód snižuje schopnost držet lidi odpovědné za vytvořený kód, což může řešit/problémy řešit obtížněji.
  • Zranitelnosti: Protože je to vytvořeno z velké části z crowdsourcových informací, není žádná záruka, že vytvořený kód je bezpečný nebo čistý. Může existovat chyby nebo bezpečnostní problémy, které mohou ohrozit podnikání.
  • Kvalita: AI nekontroluje kvalitu a pouze proto, že je generován z AI, neznamená to, že je efektivní nebo vysoce kvalitní.
  • Žádný kontext: Ztráta lidského prvku přirozeně znamená, že ztrácíte kontext problému nebo projektu. AI-generovaný kód musí být přezkoumán, aby se zajistilo, že dokončuje práci v plném rozsahu.

Když vývojáři používají Clean as You Code přístup se svým kódem – lidským nebo AI-generovaným – mohou zajistit, že je vhodný pro vývoj a produkci a splňuje stanovené standardy jejich organizace.

Jaké jsou některé další proměnné, které by měly být zvažovány v kódu vhodném pro produkci?

 Vývojáři, kteří píší kód, který dodržuje principy Clean Code, mohou být přesvědčeni, že jejich kód je vhodný pro vývoj a produkci, což znamená, že kód následuje určitá charakteristika:

  • Konzistentní: Kód by měl být konzistentní a následovat společný styl. I když je kód pracován několika různými vývojáři v průběhu času, měl by mít podobný vzhled a dodržovat dříve stanovené vzorce.
  • Úmyslný: Úmyslný kód by měl vypadat, jako by byl napsán s pozorností a péčí, aby vyjádřil svůj účel; měl by mít pouze jednu dostupnou interpretaci.
  • Přizpůsobitelný: Přizpůsobitelný kód je segmentován a organizován způsobem, který usnadňuje jeho správu a vidění vztahů mezi každou řádkou kódu. To činí kód strukturovaným pro snadnou a jistou evoluci.
  • Zodpovědný: Kód a jeho vývojáři by měli být vědomi svých etických povinností týkajících se dat a jejich potenciálního vlivu na společenské normy. Kód by nakonec neměl představovat pokračující riziko neúmyslného poškození třetích stran.

Můžete diskutovat o některých různých nabídkách Sonar a o tom, jak pomáhá kodérům budovat zodpovědný, bezpečný, vysoce kvalitní kód rychle a systematicky?

 Pomocí našich průmyslově vedoucích analyzátorů Sonar identifikuje problémy s kódováním komplexním způsobem a doporučuje opravy s krátkými zpětnými vazbami, zatímco vzdělává vývojáře v kontextu, ultimately umožňující organizacím budovat zodpovědný, bezpečný, vysoce kvalitní kód rychle a systematicky. Základní prvky Sonar řešení jsou SonarLint, SonarQube (samoobslužný; open source) a SonarCloud (SaaS), s rozsáhlým pokrytím, které podporuje více než 30 programovacích jazyků, rámců a infrastruktur, 11 IDE a více než 5 000 pravidel pro kódování a jazykové specifické.

SonarLint, rozšíření IDE, poskytuje první řadu kontrol pro nalezení problémů v reálném čase od okamžiku, kdy je kód napsán. Chytá velkou část problémů na začátku a pomáhá vývojářům objevit a opravit chyby, jako je kontrola pravopisu pro kód. SonarQube a SonarCloud, statické analytické nástroje pro kontrolu kódu Sonar, neustále prohlíží a analyzují kód, se SonarLint integrací. Používáním kvalitních bran pro určení, zda kód splňuje stanovené standardy kvality, bezpečnosti a spolehlivosti pro produkci, SonarQube a SonarCloud prohlíží kód na chyby, zranitelnosti, bezpečnostní horká místa a kódové pachy.

Spárováním našeho řešení s naší Clean as You Code metodologií – přístupem, který následuje stanovené standardy pro udržení nového, přidáného nebo upraveného kódu čistého – mohou vývojáři a organizace dodávat Clean Code a odstraňovat existující kód organicky, aby se mohli soustředit na nové, inovativní projekty, které přinášejí obchodní hodnotu.

Jak Sonar pomáhá zajišťovat, aby kód splňoval normy a standardy průmyslu?

Sonar pomáhá vývojářům získat okamžitou a kontextualizovanou zpětnou vazbu, zdůrazňující problémy, kde jsou v kódové bázi, v rámci vývojového pracovního postupu na základě let zkušeností s analyzátory jazyků. Vývojáři získávají přístup k jasným vysvětlením, proč problém nastane a jak jej rychle opravit, jakož i další zdroje pro hlubší učení. Máme vzdělání postavené prostřednictvím celého pracovního postupu, od IDE do CI/CD. Například Sonar má specifická MISRA C++ 2023 pravidla dostupná v SonarLint, aby pomohly týmům vytvořit kód, který je nejlépe připraven na budoucí certifikaci. Nabízí kodérské pokyny, vysvětluje proč je problém označen a jak jej opravit, aby se zajistilo, že kód, který je psán, je MISRA-kompatibilní.

Jaké je vaše vize pro to, jak AI transformuje kódování v budoucnosti?

 Myslím, že AI bude pokračovat v poskytování velké hodnoty při řešení vyhoření vývojářů. Zatímco si nemyslím, že AI bude moci कभí převzít myšlení a lidský dotek vývojářů, myslím, že i za několik měsíců uvidíme zcela novou sadu GPT – natož co to bude vypadat za několik let. Nemyslím, že technici nebo vývojáři zmizí, ale povaha, jakou dělají svou práci každý den, se určitě změní. Způsob, jakým vývojáři používají AI, bude tak jednoduchý a všudypřítomný jako vyhledávání na Google (GOOGL ) jako zkratka. Existuje mnoho co prozkoumat o použití AI, ale musíme stále zvažovat lidský prvek na předním místě, aby se kontrolovaly nedostatky AI. Existuje transformační potenciál pro softwarový vývoj, ale nesmíme dovolit, aby to běželo bez kontrol – zejména když digitální podniky dnes závisí na softwaru, který je podkladem.

Děkuji za skvělý rozhovor, čtenáři, kteří si přejí dozvědět se více, by měli navštívit Sonar.

Antoine je vizionářský líder a spoluzakladatel Unite.AI, který je poháněn neotřesitelnou vášní pro formování a propagaci budoucnosti umělé inteligence a robotiky. Jako sériový podnikatel věří, že umělá inteligence bude mít na společnost stejně disruptivní vliv jako elektřina, a často se chvála na potenciál disruptivních technologií a AGI.