Συνεντεύξεις

Peter McKee, Head of Developer Relations at Sonar – Συνέντευξη Σειράς

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

O Peter McKee είναι ο Head of Developer Relations στο Sonar, μια πλατφόρμα που λύνει το πρόβλημα του δισεκατομμυρίου δολαρίων της κακής κώδικα. Το Sonar εξοπλίζει τους développers και τις οργανώσεις να επιτύχουν συστηματικά μια κατάσταση Clean Code, ώστε όλος ο κώδικας να είναι κατάλληλος για ανάπτυξη και παραγωγή. Με την εφαρμογή της μεθοδολογίας Clean as You Code του Sonar, οι οργανώσεις ελαττώνουν τον κίνδυνο, μειώνουν το τεχνικό χρέος και εξάγουν περισσότερη αξία από το λογισμικό τους με προβλέψιμο και βιώσιμο τρόπο.

Τι σας έκανε να ενδιαφερθείτε αρχικά για την επιστήμη των υπολογιστών;

Ήμουν πάντα ενδιαφερμένος για τους υπολογιστές από μικρή ηλικία. Ακόμη και όταν ακολουθούσα αρχικά ένα άλλο επαγγελματικό μονοπάτι, με τραβούσε συνεχώς πίσω στους υπολογιστές και την προγραμματιστική. Σε κάποιο σημείο, ο πατέρας μου διηύθυνε μια εταιρεία χάλυβα στη Βιρτζίνια και είχαν χάσει την ομάδα συμβούλων τους.既然 ότι είχα μάθει να προγραμματίζω όταν ήμουν νεότερος, με邀σε να δουλέψω και να χτίσω συστήματα για αυτόν. Δεν ήξερα, αλήθεια, τι έκανα 100% στην αρχή, αλλά έμαθα από βιβλία και κάνοντας τη δουλειά στο χώρο εργασίας, και έγινα τελείως αυτοδίδακτος. Αυτό συνέχισε να διώχνει το ενδιαφέρον μου για την κωδικοποίηση και τους υπολογιστές και πραγματικά σφράγισε το ενδιαφέρον μου για την επιστήμη των υπολογιστών.

Μπορείτε να εξηγήσετε τι είναι Clean Code και γιατί είναι τόσο σημαντικό;

Έχει πει για χρόνια τώρα ότι το λογισμικό θα καταβρώσει τον κόσμο, και θα έλεγα ότι τώρα είναι επίσημο – ο κόσμος είναι χτισμένος στο λογισμικό και κάθε εταιρεία είναι αποτελεσματικά μια εταιρεία λογισμικού. Στο θεμέλιο του καλού λογισμικού είναι η ποιότητα του κώδικα, καθώς ο κώδικας είναι στο κέντρο όλων των λογισμικών και καθορίζει τη συμπεριφορά και την απόδοση του. Αυτός είναι ο λόγος για τον οποίο ο Clean Code — κώδικας που είναι συνεπής, προβλέψιμος, προσαρμόσιμος και υπεύθυνος — είναι τόσο σημαντικός. Ο κώδικας που είναι καθαρός είναι εύκολος να κατανοηθεί και να τροποποιηθεί, λειτουργεί ομαλά κατά τη διάρκεια της εκτέλεσης και δεν περιέχει τεχνικό χρέος, καθιστώντας τον κατάλληλο για τον σκοπό του. Ο Clean Code είναι ο chuẩn που οι οργανώσεις πρέπει να υιοθετήσουν για να διασφαλίσουν ότι το λογισμικό τους συνεχίζει να είναι ένα περιουσιακό στοιχείο — και όχι ένα負担 — και είναι ο βασικός οδηγός για την επιχειρηματική επιτυχία σήμερα.

Ο Clean Code ωφελεί τις ομάδες και τις οργανώσεις όλων των μεγεθών και επιπέδων ωριμότητας, και αυξάνει την αξία του λογισμικού ως αποτέλεσμα. Κάποια συγκεκριμένα οφέλη είναι ότι:

  • Βελτιώνει τις ικανότητες ανάπτυξης — Οι développers peuvent να ανιχνεύουν, να κατανοούν και να επιλύουν προβλήματα όσο κωδικοποιούν, ενώ同時 μαθαίνουν τις καλύτερες πρακτικές
  • Αυξάνει την αποτελεσματικότητα και την παραγωγικότητα — Μειώνει την συνεχή ανακατασκευή και τις μακρές κύκλους ανατροφοδότησης, με αποτέλεσμα μεγαλύτερη παραγωγικότητα
  • Μειώνει τον κίνδυνο φήμης και επιχειρήσεων — Ο Clean Code διασφαλίζει ότι υπάρχουν λιγότερα προβλήματα ασφαλείας, επιτρέποντας στις ομάδες να αντιμετωπίσουν προληπτικά τα προβλήματα πριν φτάσουν στην παραγωγή
  • Μειώνει το τεχνικό χρέος του κώδικα — Ο Clean Code αντιμετωπίζει σταδιακά το χρέος της βάσης κώδικα χωρίς την ανάγκη για μια μεγάλη ανακατασκευή και διακοπή
  • Αυξάνει την ταχύτητα ανάπτυξης λογισμικού — Οι προτυποποιημένες ροές και τα πρότυπα του Clean Code βελτιώνουν την ταχύτητα DevOps, προωθώντας τη γρηγορότερη время-στη-αγορά

Μπορείτε να συζητήσετε τη σημασία της συνεπαγωγής και της δομής στον κώδικα, και τι είναι κάποια παραδείγματα συνεπαγούς και Clean Code;

Η συνεπαγότητα της ποιότητας του κώδικα είναι κάτι που κάθε διευθυντής ή τεχνικός διευθυντής στοχεύει να διατηρήσει. Η συνεπαγότητα είναι κρίσιμη όταν πρόκειται για την ποιότητα του κώδικα, καθώς η συνεπαγότητα οδηγεί στην προβλέψιμη. Γράφεται με einen.uniform και συμβατικό τρόπο — όλος ο κώδικας φαίνεται παρόμοιος και ακολουθεί ένα κανονικό πρότυπο, ακόμη και με πολλούς συντελεστές σε διαφορετικά χρονικά διαστήματα. Ο συνεπαγής κώδικας είναι διαμορφωμένος, συμβατικός και αναγνωρίσιμος. Όταν υιοθετούνται συνεπαγείς πρότυπα κώδικα, οι développers γίνονται πιο αποτελεσματικοί και μπορούν να ανταποκριθούν στις προσδοκίες παράδοσης τους με ταχύτητα και ακρίβεια.

Μπορείτε να συζητήσετε τη σημασία του κώδικα που μπορεί να χειριστεί απροσδόκητες συνθήκες, και γιατί αυτό δεν πρέπει να παραβλεφθεί;

Οι développers προσπαθούν πάντα να προβλέψουν και να προετοιμαστούν για απροσδόκητες περιπτώσεις κατά τη διάρκεια της σχεδίασης και της ανάπτυξης, αλλά αυτό δεν μπορεί να αποφευχθεί σε κάθε περίπτωση. Απρόβλεπτες καταστάσεις possono να προκύψουν λόγω ακούσιου κατάχρησης ή σκόπιμων επιθέσεων. Αυτές οι απρόβλεπτες καταστάσεις possono να εισαγάγουν ακούσια ασφαλείς ευπάθειες που οι επιτιθέμενοι possono να εκμεταλλευτούν. Αυτός είναι ο λόγος για τον οποίο οι développers πρέπει να προσπαθούν πάντα να βελτιώσουν την ποιότητα και τη σταθερότητα του κώδικα τους και να ελέγχουν για απροσδόκητες συνθήκες. Με την εφαρμογή μιας Clean as You Code προσέγγισης, οι ομάδες possono να επιταχύνουν νέες λειτουργίες, να αποφύγουν άσκοπες ανακατασκευές και να προωθήσουν την ανάπτυξη και τη διατήρηση ταλέντων. Ο Clean Code προωθεί την ασφάλεια, τη διατηρησιμότητα και την αξιοπιστία, και μπορεί να επιτρέψει στους développers να προβλέψουν και να χειριστούν απροσδόκητες καταστάσεις πιο αποτελεσματικά και να επαναφέρουν το λογισμικό πιο γρήγορα.

Μπορείτε να συζητήσετε τα οφέλη της χρήσης Γενικής AI για την παραγωγή κώδικα;

Η ενσωμάτωση της AI στο κύκλο ζωής της ανάπτυξης λογισμικού έχει τα οφέλη της, όπως να επιτρέπει στους développers να δουλεύουν πιο αποτελεσματικά. Πράγματι, GitHub έρευνα βρήκε ότι οι développers possono να ολοκληρώσουν εργασίες περισσότερο από 50% γρηγορότερα χρησιμοποιώντας AI. Η GenAI μπορεί επίσης να παράγει κώδικα πιο γρήγορα, και να αφαιρέσει το βάρος των πιο単調ων, ρουτινικών εργασιών — όπως η τεκμηρίωση ή η παραγωγή κώδικα — από το πιάτο τους, ώστε να μπορούν να επικεντρωθούν σε πιο复雑ες, ανταγωνιστικές εργασίες. Όμως, είναι κρίσιμο ότι ο κώδικας πρέπει να ελέγχεται με πρότυπα Clean Code για να διασφαλιστεί ότι ο κώδικας είναι ασφαλής, αξιοπιστός και διατηρήσιμος.

Τι είναι κάποια από τα πιθανά ελαττώματα και κινδύνους του παραγόμενου κώδικα;

 Ενώ η AI μπορεί να απελευθερώσει χρόνο για τους développers να δουλεύουν σε πιο ανταγωνιστικές εργασίες και να αυξήσει την παραγωγικότητα, δεν έρχεται χωρίς κινδύνους. Αυτός είναι ο λόγος για τον οποίο η ζήτηση για développers δεν θα πάψει να υπάρχει στην εποχή της AI. Επειδή τα εργαλεία GenAI possono να παράγουν πολύ κώδικα γρήγορα, υπάρχει η πιθανότητα για λάθη. Εδώ είναι κάποια συγκεκριμένα ελαττώματα:

  • Ευθύνη: Ο κώδικας που παράγεται από AI μειώνει την ικανότητα να κρατήσει τους ανθρώπους υπεύθυνους για τον κώδικα που δημιουργείται, το οποίο μπορεί να κάνει την επίλυση/διόρθωση προβλημάτων πιο δύσκολη.
  • Ευπάθειες: Επειδή λαμβάνει κυρίως πληροφορίες από crowdsourcing, δεν υπάρχει εγγύηση ότι ο παραγόμενος κώδικας είναι ασφαλής ή καθαρός. Μπορεί να υπάρχουν σφάλματα ή προβλήματα ασφαλείας που possono να θέσουν τις επιχειρήσεις σε κίνδυνο.
  • Ποιότητα: Η AI δεν ελέγχει για ποιότητα, και μόνο και μόνο επειδή παράγεται από AI δεν σημαίνει ότι είναι αποτελεσματική ή υψηλής ποιότητας.
  • Χωρίς контекστό: Η απώλεια του ανθρώπινου στοιχείου φυσικά σημαίνει ότι χάνεται ο контекστό του προβλήματος ή του έργου. Ο κώδικας που παράγεται από AI πρέπει να ελέγχεται για να διασφαλιστεί ότι κάνει την δουλειά του πλήρως.

Όταν οι développers ακολουθούν μια Clean as You Code προσέγγιση με τον κώδικα τους — ανθρώπινο ή AI-παραγόμενο — possono να διασφαλίσουν ότι ο κώδικας είναι κατάλληλος για ανάπτυξη και παραγωγή και ανταποκρίνεται στα απαιτούμενα πρότυπα της οργάνωσής τους.

Τι είναι κάποια άλλα μεταβλητά που πρέπει να ληφθούν υπόψη για τον κώδικα που είναι κατάλληλος για παραγωγή;

 Οι développers που γράφουν κώδικα που ακολουθεί τις αρχές του Clean Code possono να είναι βέβαιοι ότι ο κώδικας τους είναι κατάλληλος για ανάπτυξη και παραγωγή, το οποίο σημαίνει ότι ο κώδικας ακολουθεί κάποια χαρακτηριστικά:

  • Συνεπής: Ο κώδικας πρέπει να είναι συνεπής και να ακολουθεί ένα κοινό στυλ. Ακόμη και αν ο κώδικας εργάζεται από πολλούς développers σε διαφορετικά χρονικά διαστήματα, πρέπει να έχει μια παρόμοια εμφάνιση και να ακολουθεί προηγουμένως καθορισμένα πρότυπα.
  • Σκόπιμος: Ο σκόπιμος κώδικας πρέπει να διαβάζεται σαν να γράφτηκε με προσοχή και φροντίδα για να μεταφέρει το σκοπό του. Πρέπει να υπάρχει μόνο μια διαθέσιμη ερμηνεία.
  • Προσαρμόσιμος: Ο προσαρμόσιμος κώδικας είναι τμηματικός και οργανωμένος με έναν τρόπο που κάνει πιο εύκολο να διαχειριστεί και να δει τις σχέσεις μεταξύ κάθε γραμμής κώδικα. Αυτό κάνει τον κώδικα δομημένο για εύκολη και θαρραλέα εξέλιξη.
  • Υπεύθυνος: Ο κώδικας, και οι développers, πρέπει να είναι συνειδητοί των ηθικών τους υποχρεώσεων σχετικά με τα δεδομένα και την πιθανή επιρροή τους στα κοινωνικά πρότυπα. Ο κώδικας πρέπει τελικά να μην παρουσιάζει συνεχιζόμενο κίνδυνο να βλάψει ακούσια τρίτους.

Μπορείτε να συζητήσετε κάποια από τα διάφορα προσφερόμενα από το Sonar, και πώς βοηθούν τους développers να χτίζουν υπεύθυνο, ασφαλές, υψηλής ποιότητας κώδικα γρήγορα και συστηματικά;

 Μέσω των βιομηχανικών αναλυτών μας, το Sonar αναγνωρίζει προβλήματα κώδικα με έναν ολοκληρωμένο τρόπο και προτείνει διορθώσεις με σύντομους κύκλους ανατροφοδότησης, ενώ εκπαιδεύει τον développer στο контέκστο, τελικά επιτρέποντας στις οργανώσεις να χτίζουν υπεύθυνο, ασφαλές, υψηλής ποιότητας κώδικα γρήγορα και συστηματικά. Τα βασικά στοιχεία της λύσης Sonar είναι SonarLint, SonarQube (αυτοδιαχειριζόμενο, ανοικτό κώδικα), και SonarCloud (SaaS), με εκτεταμένη κάλυψη που υποστηρίζει πάνω από 30 γλώσσες προγραμματισμού, πλαίσια και υποδομές, 11 IDE, και περισσότερα από 5.000 κανόνες κώδικα και γλώσσας.

Το SonarLint, μια επέκταση IDE, παρέχει την πρώτη γραμμή ελέγχου για να βρει προβλήματα σε πραγματικό χρόνο από τη στιγμή που ο κώδικας γράφεται. Πιάνει ένα μεγάλο μέρος των προβλημάτων από την αρχή και βοηθά τους développers να ανακαλύψουν και να διορθώσουν σφάλματα σαν ένα spell-check για κώδικα. Το SonarQube και το SonarCloud, τα εργαλεία στατικής ανάλυσης κώδικα, συνεχώς ελέγχουν και αναλύουν την βάση κώδικα, με ενοποίηση του SonarLint. Χρησιμοποιώντας πύλες ποιότητας για να καθορίσουν αν ο κώδικας ανταποκρίνεται στα καθορισμένα πρότυπα ποιότητας, ασφαλείας και αξιοπιστίας για παραγωγή, το SonarQube και το SonarCloud ελέγχουν τον κώδικα για σφάλματα, ευπάθειες, σημεία ασφαλείας και μυρωδιές κώδικα.

Ζευγαρώνοντας τη λύση μας με τη μεθοδολογία Clean as You Code — μια προσέγγιση που ακολουθεί καθορισμένα πρότυπα για να διατηρήσει τον νέο, προστεθέντα ή επεξεργασμένο κώδικα καθαρό — οι développers και οι οργανώσεις possono να παραδώσουν Clean Code και να διορθώσουν τον υπάρχοντα κώδικα οργανικά, ώστε να μπορούν να επικεντρωθούν σε νέες, καινοτόμες εργασίες που οδηγούν την επιχειρηματική αξία

Πώς το Sonar βοηθά να διασφαλιστεί ότι ο κώδικας είναι συμμορφώνεται με τις βιομηχανικές προδιαγραφές;

Το Sonar βοηθά τους développers να έχουν άμεση και περιεκτική ανατροφοδότηση, υπογραμμίζοντας προβλήματα όπου βρίσκονται στην βάση κώδικα, μέσα στη διαδικασία ανάπτυξης με βάση χρόνια εμπειρίας αναλυτών γλώσσας. Οι développers έχουν πρόσβαση σε σαφείς εξηγήσεις για το γιατί ένα πρόβλημα συμβαίνει και πώς να το διορθώσουν γρήγορα, καθώς και πρόσθετες πηγές για πιο sâuστόχαστη μάθηση. Έχουμε εκπαίδευση καθ’ όλη τη διάρκεια της ροής εργασίας, από το IDE στο CI/CD. Για παράδειγμα, το Sonar έχει συγκεκριμένα MISRA C++ 2023 κανόνες διαθέσιμα στο SonarLint για να βοηθήσει τις ομάδες να δημιουργήσουν κώδικα που είναι καλύτερα προετοιμασμένος για τελική πιστοποίηση. Προσφέρει οδηγίες κωδικοποίησης, εξηγώντας το γιατί πίσω από ένα σημειωμένο πρόβλημα, και πώς να το διορθώσει, για να διασφαλιστεί ότι ο κώδικας που γράφεται είναι MISRA-συμμορφώνεται.

Τι είναι η όρασή σας για το πώς η AI θα μεταμορφώσει τον κώδικα στο μέλλον;

 Νομίζω ότι η AI θα συνεχίσει να προσφέρει μεγάλη αξία στην αντιμετώπιση της καύσης των développers. Ενώ δεν νομίζω ότι η AI θα μπορέσει ποτέ να αποφορτίσει την σκέψη και την ανθρώπινη επαφή των développers, νομίζω ότι ακόμη και μέσα σε quelques μήνες θα δούμε ένα εντελώς νέο σύνολο GPTs — ας μην μιλήσουμε για το τι θα δούμε σε quelques χρόνια. Δεν πιστεύω ότι οι τεχνολόγοι ή οι développers θα εξαφανιστούν, αλλά ο τρόπος με τον οποίο κάνουν τη δουλειά τους θα αλλάξει σίγουρα. Ο τρόπος με τον οποίο οι développers χρησιμοποιούν την AI θα είναι τόσο απλός και κοινοπραγμάτος όσο η αναζήτηση με το Google (GOOGL ) για κάτι ως ένα σπάσιμο. Υπάρχει πολύ να εξερευνηθεί σχετικά με τη χρήση της AI, αλλά πρέπει να θεωρήσουμε το ανθρώπινο στοιχείο στο προσκήνιο για να ελέγξουμε τα μειονεκτήματα της AI. Υπάρχει μεταμορφωτικό δυναμικό για την ανάπτυξη λογισμικού, αλλά δεν πρέπει να αφήσουμε να τρέξει χωρίς κανένα έλεγχο —尤其 όταν οι ψηφιακές επιχειρήσεις σήμερα είναι εξαρτημένες από το λογισμικό που τις υποστηρίζει.

Ευχαριστούμε για τη μεγάλη συνέντευξη, οι αναγνώστες που θέλουν να μάθουν περισσότερα πρέπει να επισκεφθούν Sonar.

Ο Antoine είναι ένας οραματιστής ηγέτης και συνιδρυτής της Unite.AI, οδηγείται από μια αμετάβλητη страсть για το σχήμα και την προώθηση του μέλλοντος της τεχνητής νοημοσύνης και της ρομποτικής. Ένας σειριακός επιχειρηματίας, πιστεύει ότι η τεχνητή νοημοσύνη θα είναι τόσο διαταρακτική για την κοινωνία όσο και η ηλεκτρική ενέργεια, και συχνά πιάνεται να μιλάει για το δυναμικό των διαταρακτικών τεχνολογιών και της AGI.

Ως μελλοντολόγος, είναι αφιερωμένος στο να εξερευνήσει πώς αυτές οι καινοτομίες θα σχήματίσουν τον κόσμο μας. Επιπλέον, είναι ο ιδρυτής του Securities.io, μιας πλατφόρμας που επικεντρώνεται στις επενδύσεις σε ακριβές τεχνολογίες που ανασχεδιάζουν το μέλλον και αναμορφώνουν ολόκληρες βιομηχανίες.