Προγραμματισμός

Sourcegraph: Καθολική αναζήτηση κώδικα και ευφυΐα

Το ποσό του κώδικα στον κόσμο εκρήγνυται. Καθώς το λογισμικό γίνεται ο θεμελιώδης μοχλός καινοτομίας σε σχεδόν κάθε κλάδο, οι προγραμματιστές λογισμικού αντιμετωπίζουν μεγαλύτερες, περισσότερο αλληλένδετες βάσεις κώδικα. Οι περισσότεροι οργανισμοί δημιουργούν νέα αρχεία για το μέγεθος της βάσης κωδικών τους κάθε μέρα.

Σε αυτόν τον κόσμο, τα παραδοσιακά εργαλεία προγραμματιστών όπως οι συντάκτες και τα IDE υπολείπονται. Έχουν σχεδιαστεί για μεμονωμένους προγραμματιστές που εργάζονται σε μεμονωμένα κομμάτια κώδικα, και όχι για ομάδες λογισμικού που αναπτύσσουν μεγάλες βάσεις κώδικα σε κλίμακα. Σε σύγχρονους οργανισμούς λογισμικού, η αναζήτηση σε τεράστιες βάσεις κώδικα, η κατανόηση άγνωστου κώδικα και η ανταλλαγή θεσμικών γνώσεων γίνονται ανησυχίες πρώτης τάξεως. Οι ομάδες λογισμικού χρειάζονται ένα εργαλείο που επιτρέπει αυτήν την καθολική ευφυΐα κώδικα.

Η αναζήτηση κώδικα πρέπει να είναι καθολική για να είναι αποτελεσματική - πρέπει να περιλαμβάνει όλες τις γλώσσες, όλα τα αποθετήρια, όλους τους κεντρικούς υπολογιστές κώδικα και όλα τα αρχεία διαμόρφωσης. Η αναζήτηση που περιορίζεται μόνο σε Python ή μόνο στο GitHub μοιάζει με το Google που ευρετηριάζει μόνο ιστότοπους που έχουν δημιουργηθεί με Ruby on Rails ή Apache HTTP Server - ένα μη αρχικό για ομάδες ανάπτυξης που εργάζονται στο σύγχρονο σύμπαν κώδικα.

Κορυφαίες εταιρείες τεχνολογίας όπως η Uber, η Lyft και η Yelp χρησιμοποιούν το Sourcegraph για να αντιμετωπίσουν αυτό το σύμπαν κώδικα. Εταιρείες όπως η Google και το Facebook έχουν ξοδέψει εκατοντάδες εκατομμύρια δολάρια για να δημιουργήσουν εσωτερικά εργαλεία παρόμοια με το Sourcegraph. Η GitLab, η εταιρεία φιλοξενίας κώδικα και devops, ανακοίνωσε πρόσφατα μια συνεργασία με την Sourcegraph για να ενσωματώσει εγγενώς ορισμένες από τις δυνατότητες του Sourcegraph στο περιβάλλον εργασίας του GitLab.

Κορυφαίοι λόγοι για τη χρήση του Sourcegraph

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

Για μεμονωμένους προγραμματιστές, ακολουθούν οι κορυφαίοι λόγοι για τη χρήση του Sourcegraph:

  1. Μείνετε σε ροή, αποφύγετε το θάνατο με χίλιους διακόπτες περιβάλλοντος
  2. Βρείτε τη βελόνα στο άχυρο κωδικών βάσης
  3. Κάντε γρήγορες, εμπεριστατωμένες και λιγότερο οδυνηρές αναθεωρήσεις κώδικα - όχι πλέον TL; DR
  4. Μάθετε με παράδειγμα αντί για κακή ή ανύπαρκτη τεκμηρίωση
  5. Κάντε μεγάλους αντιδραστήρες και αλλαγές κώδικα
  6. Μοιραστείτε και συζητήστε εύκολα τον κώδικα, ειδικά με απομακρυσμένους συναδέλφους
  7. Είναι ανοιχτού κώδικα

Και εδώ είναι οι πιο συνηθισμένοι λόγοι που οι ηγέτες της μηχανικής εισάγουν το Sourcegraph στον οργανισμό τους:

  1. Ενισχύστε την καθημερινή παραγωγικότητα της ομάδας
  2. Ενθαρρύνετε την ανταλλαγή γνώσεων
  3. Προωθήστε την υιοθέτηση νέων εργαλείων σε ολόκληρο τον οργανισμό
  4. Επιταχύνετε την επιβίβαση νέων μηχανικών
  5. Μειώστε το χρόνο απόκρισης συμβάντων
  6. Διατηρήστε και διαδώστε πρότυπα ποιότητας κώδικα
  7. Δημιουργήστε καλύτερα εσωτερικά εργαλεία προγραμματιστή με το API κώδικα-ως-δεδομένων
  8. Είναι εύκολο να αναπτυχθεί και να εναρμονιστεί με την ομάδα και τον κωδικό σας

Μείνετε σε ροή

Ο προγραμματισμός της παραγωγικότητας συχνά πεθαίνει θάνατο από χίλιους διακόπτες περιβάλλοντος. Ένα γνωστό σενάριο είναι εκείνο που ένας προγραμματιστής βρίσκεται στη μέση της εφαρμογής μιας δυνατότητας ή μιας διόρθωσης σφαλμάτων, αλλά ξαφνικά πρέπει να μεταβεί σε ένα διαφορετικό μέρος της βάσης κώδικα. Ίσως πρέπει να αναζητήσουν μια συγκεκριμένη λειτουργία βιβλιοθήκης ή να καταλάβουν πώς να τη χρησιμοποιήσουν. Ίσως ένας συνάδελφος να έχει μια ερώτηση για κάποιο άλλο κομμάτι κώδικα. Τώρα, ο προγραμματιστής πρέπει να ανοίξει αυτά τα αρχεία στο IDE του και, με αυτόν τον τρόπο, να καταστρέψει την τρέχουσα κατάσταση λειτουργίας τους, η οποία θα πρέπει να ανακληθεί και να ανακατασκευαστεί αργότερα.

Αυτές οι διακοπές είναι καταστροφικές, επειδή απομακρύνουν τον προγραμματιστή από το Flow State και ο αρνητικός αντίκτυπος στην παραγωγικότητα είναι σημαντικός. Η διεπαφή αναζήτησης και εξερεύνησης κώδικα που βασίζεται στο πρόγραμμα περιήγησης του Sourcegraph επιτρέπει σε έναν προγραμματιστή να διατηρεί την κατάσταση του επεξεργαστή του ενώ εξερευνά άλλα μέρη του κώδικα. Αυτή η διατήρηση της λειτουργικής κατάστασης καθιστά τους διακόπτες περιβάλλοντος πολύ λιγότερο δαπανηρούς, επιτρέποντας σε μεμονωμένους προγραμματιστές να κάνουν περισσότερα με λιγότερη επιδείνωση.

Πηγή

Βρείτε τις βελόνες στο άχυρο

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

Πηγή

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

Με το Sourcegraph, οι προγραμματιστές έχουν αναζήτηση κώδικα που καλύπτει ολόκληρο το σύμπαν κώδικα, με πλήρη υποστήριξη για κανονικές εκφράσεις και πιο προηγμένη αντιστοίχιση μοτίβων όπως η σύνταξη Comby. Η μηχανή αναζήτησης του Sourcegraph έχει βελτιστοποιηθεί για τον πηγαίο κώδικα, οπότε είναι απίστευτα γρήγορη. Σχεδιάστηκε επίσης από την αρχή έως την κλίμακα σε μεγάλες βάσεις κώδικα και οργανισμούς. Ορισμένοι οργανισμοί έχουν εκατοντάδες χιλιάδες αποθετήρια και το Sourcegraph τα βάζει όλα στα χέρια κάθε προγραμματιστή.

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

Πηγή

Μάθετε με το παράδειγμα

"Πώς το χρησιμοποιώ;" είναι μια ερώτηση που κάνουν οι προγραμματιστές δεκάδες φορές την ημέρα. Τις περισσότερες φορές, η καλύτερη τεκμηρίωση είναι ένα παράδειγμα χρήσης. Η παγκόσμια δυνατότητα εύρεσης αναφορών Sourcegraph επιτρέπει σε έναν προγραμματιστή να αναζητά παραδείγματα χρήσης σε ολόκληρο τον κόσμο του κώδικα, ακόμα κι αν το ιδανικό παράδειγμα χρήσης υπάρχει σε άλλο αποθετήριο. Αυτό είναι ιδιαίτερα χρήσιμο σε βάσεις κώδικα που είναι παλιά, άγνωστα ή δεν έχουν τεκμηριωθεί.

Κάντε γρήγορες και λεπτομερείς αναθεωρήσεις κώδικα

Ένα συνηθισμένο ερώτημα σχετικά με την αναθεώρηση κώδικα λέει ότι αν υποβάλετε ένα σύνολο αλλαγών 10 γραμμών, θα λάβετε 10 σχόλια, αλλά αν υποβάλετε ένα σύνολο αλλαγών σε χιλιάδες γραμμές, δεν θα λάβετε σχόλια και μια αυτόματη έγκριση.

Οι κριτικές κώδικα ποιότητας είναι συχνά επώδυνες και αργές, επειδή τα παραδοσιακά εργαλεία δεν διαθέτουν πολλά βασικά χαρακτηριστικά για να βοηθήσουν τον αναθεωρητή να κατανοήσει γρήγορα τις αλλαγές κώδικα. Το Sourcegraph προσθέτει την πλοήγηση κώδικα και τις συμβουλές εργαλείων τύπου IDE στην υπάρχουσα ροή εργασίας επισκόπησης κώδικα για προγραμματιστές.

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

Πηγή

Το Sourcegraph ενσωματώνει αυτές τις δυνατότητες πλοήγησης κώδικα απευθείας στη διεπαφή χρήστη των δημοφιλών εργαλείων ελέγχου κώδικα, όπως GitHub Pull Requests, GitLab Merge Requests και Phabricator, έτσι ώστε η εμπειρία προγραμματιστή να βελτιώνεται χωρίς κανένα κόστος αλλαγής.

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

Πηγή Πηγή

Φτιάξτε τους μεγάλους αντιδραστήρες

Καθώς αναπτύσσονται οι βάσεις κώδικα, οι μεγάλης κλίμακας αντιδραστήρες καθίστανται αναπόφευκτο εμπόδιο για τη βελτίωση της ποιότητας του κώδικα και την εφαρμογή νέων χαρακτηριστικών. Για παράδειγμα, το API μιας κοινόχρηστης βιβλιοθήκης μπορεί να χρειαστεί να ενημερωθεί για να υποστηρίξει μια νέα δυνατότητα, αλλά κάτι τέτοιο μπορεί να απαιτήσει ενημερώσεις σε δεκάδες ή ακόμα και εκατοντάδες εξαρτώμενα άτομα. Ο αριθμός των θέσεων στον κώδικα που πρέπει να αλλάξουν ως αποτέλεσμα της ενημέρωσης μιας κοινής εξάρτησης μπορεί εύκολα να διογκωθεί σε χιλιάδες πόντους που κατανέμονται σε διαφορετικά στοιχεία που ανήκουν σε διαφορετικές ομάδες.

Το Sourcegraph όχι μόνο βοηθά τους προγραμματιστές να κατανοήσουν τον αντίκτυπο ενός αντιδραστήρα (επιτρέποντάς τους να αναζητήσουν και να ανακαλύψουν όλα τα μέρη που χρησιμοποιείται μια συγκεκριμένη λειτουργία βιβλιοθήκης), παρέχει επίσης μια συσκευή για την εκτέλεση του αντιδραστήρα και τη διαχείριση της καμπάνιας των αλλαγών και των αναθεωρήσεων κώδικα. Το Sourcegraph Campaigns είναι το πρώτο εργαλείο του είδους του προσβάσιμο σε όλες τις επιχειρήσεις λογισμικού. Όπως η αναζήτηση κώδικα Sourcegraph, οι καμπάνιες υποστηρίζουν τη νέα σύνταξη ταιριάσματος μοτίβων Comby, η οποία είναι πιο φιλική προς τον χρήστη και εκφραστική από τις κανονικές εκφράσεις.

Πηγή

Ενθαρρύνετε την ανταλλαγή γνώσεων σε ολόκληρο τον οργανισμό σας

Οι σύγχρονες ομάδες λογισμικού συνεργάζονται για να μοιραστούν τις θεσμικές γνώσεις του κώδικα. Αλλά η συζήτηση του κώδικα είναι συχνά δύσκολη για αυτούς τους λόγους:

  • Δεν μπορείτε να μοιραστείτε υπερσυνδέσμους σε αρχεία που έχετε ανοίξει στο IDE σας
  • Τα παραδοσιακά εργαλεία προβολής κώδικα του προγράμματος περιήγησης δεν έχουν καλή πλοήγηση κώδικα

Το Sourcegraph προσφέρει τα καλύτερα και από τους δύο κόσμους: ακριβή και ακριβή πλοήγηση κώδικα σε μια διεπαφή ιστού. Αυτό καθιστά εύκολο τόσο την κοινή χρήση συνδέσμων όσο και για τον παραλήπτη να αρχίσει να εξερευνά και να κατανοεί αμέσως τον συνδεδεμένο με τον κώδικα, χωρίς την ταλαιπωρία και την τριβή να τον τραβήξει σε ένα τοπικό IDE.

Πηγή

Η κοινή χρήση συνδέσμων κώδικα γίνεται ακόμη πιο σημαντική για απομακρυσμένες ομάδες μηχανικών. Οι σύνδεσμοι Sourcegraph κοινοποιούνται εκατοντάδες φορές την ημέρα μέσω συνομιλίας, σε προγράμματα παρακολούθησης ζητημάτων και σε επίσημη τεκμηρίωση και wiki. Αυτά γίνονται βασικοί αγωγοί γνώσης ειδικά όταν είναι αδύνατο να καλέσετε έναν συνάδελφο στο γραφείο κάποιου.

Είναι ανοιχτού κώδικα

Το Sourcegraph είναι λογισμικό ανοιχτού κώδικα. Το πρόγραμμα παρακολούθησης ζητημάτων είναι δημόσιο και η ομάδα ανταποκρίνεται πολύ σε αναφορές σφαλμάτων και αιτήματα λειτουργιών. Οι σύγχρονοι προγραμματιστές λογισμικού θα πρέπει να προτιμούν τα ανοιχτά εργαλεία για τους ίδιους λόγους που προτιμούν τις βιβλιοθήκες ανοιχτού κώδικα: οι θεμελιώδεις γνώσεις στις οποίες βασίζεται το λογισμικό και η ομάδα σας πρέπει να είναι ανοιχτές σε όλους, έτσι ώστε όλοι να κατανοήσουν πώς λειτουργεί και όλοι μπορούν να βοηθήσουν στη βελτίωσή του.

Ενισχύστε τη συνολική παραγωγικότητα της ομάδας σας

Πώς μπορεί ένα πρόγραμμα λογισμικού να είναι ένα χρόνο πίσω; Μια μέρα τη φορά. Το Sourcegraph βοηθά την ομάδα σας να παραμείνει μπροστά από τις προθεσμίες, εξορθολογίζοντας τις καθημερινές εργασίες. Επιτρέπει στους προγραμματιστές να ελαχιστοποιήσουν τον αντίκτυπο των αλλαγών περιβάλλοντος, να παραμείνουν σε ροή, να κάνουν ταχύτερες κριτικές κώδικα και να βρουν την απάντηση σε ερωτήσεις όπως "Πώς μπορώ να το χρησιμοποιήσω;" που ρωτούνται δεκάδες φορές κάθε μέρα. Αυτές οι βελτιώσεις αποδοτικότητας αυξάνονται γρήγορα.

Προωθήστε την υιοθέτηση νέων εργαλείων σε επίπεδο οργανισμού

Οι περισσότεροι χρήστες Sourcegraph το χρησιμοποιούν πολλές φορές την ημέρα, αλλά πολλά εργαλεία προγραμματιστών χρησιμοποιούνται πολύ λιγότερο συχνά. Μπορεί να είναι μια πρόκληση για τους CIO και τους διευθυντές της παραγωγικότητας προγραμματιστή να οδηγήσουν την υιοθέτηση νέων εργαλείων.

Παρατηρητές παρακολούθησης και απόδοσης, κατανεμημένοι ιχνηλάτες εφαρμογών, αναλυτές κάλυψης κώδικα - αυτά είναι όλα τα εργαλεία που μπορεί να μην είναι εύκολα ανακαλύψιμα ή προσβάσιμα από όλα τα μέλη της ομάδας σας.

Πηγή

Το API επέκτασης του Sourcegraph επιτρέπει στα εργαλεία τρίτων να προσθέσουν σχολιασμούς στο περιβάλλον χρήστη του Sourcegraph στον ιστό και στη διεπαφή χρήστη των κεντρικών υπολογιστών κώδικα όπως το GitHub και το GitLab. Υπάρχουν επεκτάσεις για δημοφιλή εργαλεία εκτός καταστημάτων όπως τα Codecov, Datadog και Sentry, ενώ οι ομάδες εσωτερικών εργαλείων προγραμματιστών μπορούν επίσης να δημιουργήσουν ιδιωτικές επεκτάσεις για εσωτερικά εργαλεία.

Επιτάχυνση επιβίβασης νέων μηχανικών

Μπορεί να είναι ένας αγώνας για την ενσωμάτωση νέων μηχανικών, ειδικά εάν ο μηχανικός μηχανισμός ή ο κωδικός βάσης είναι μεγάλος. Το Sourcegraph μειώνει την ώρα μεταξύ της ημερομηνίας έναρξης και της πρώτης δέσμευσης επιτρέποντας την ταχύτερη κατανόηση του υπάρχοντος κώδικα. Οι νέες προσλήψεις περνούν συχνά την πλειοψηφία του χρόνου τους μεταβαίνοντας σε άγνωστα μέρη της βάσης κώδικα για να δημιουργήσουν ένα νοητικό μοντέλο του κώδικα της εταιρείας. Η καθολική πλοήγηση κώδικα της Sourcegraph τους επιτρέπει να εξερευνήσουν ολόκληρη τη βάση κώδικα με ελάχιστη εναλλαγή περιεχομένου και η δυνατότητα κοινής χρήσης συνδέσμων τους επιτρέπει να υποβάλλουν συγκεκριμένες ερωτήσεις που δεν χάνουν το χρόνο των ανώτερων μηχανικών.

Μειώστε το χρόνο απόκρισης συμβάντων

Κάθε λεπτό μετράει όταν ανταποκρίνεται σε ένα περιστατικό παραγωγής. Η αναζήτηση κώδικα Sourcegraph μειώνει τον χρόνο που απαιτείται για τη ρίζα ενός προβλήματος διευκολύνοντας τον εντοπισμό μηνυμάτων σφάλματος στον πηγαίο κώδικα. Συχνά, το μήνυμα σφάλματος προέρχεται από μια εξάρτηση ανάντη και επομένως είναι δύσκολο να βρεθεί χρησιμοποιώντας ένα εργαλείο αναζήτησης IDE ή γραμμής εντολών. Το Sourcegraph ευρετηριάζει ολόκληρο τον κώδικα που σχετίζεται με τον οργανισμό σας και καθιστά τα μηνύματα σφάλματος άμεσα ανιχνεύσιμα.

Το Sourcegraph επέκταση API επιτρέπει επίσης την ενσωμάτωση εργαλείων devops στο Sourcegraph. Για παράδειγμα, η επέκταση Sentry εμφανίζει τον αριθμό των ειδοποιήσεων παραγωγής που δημιουργεί μια συγκεκριμένη γραμμή κώδικα οργάνων. Αυτό παρέχει πολύτιμες γνώσεις περιβάλλοντος κατά τον εντοπισμό σφαλμάτων περιστατικών.

Πηγή

Διατηρήστε και διαδώστε πρότυπα ποιότητας κώδικα

Το Sourcegraph επιτρέπει στους οργανισμούς να διατηρούν και να διαδίδουν πρότυπα ποιότητας κώδικα μέσω μερικών φορέων:

  • Η αποτελεσματική αλλά διεξοδική αναθεώρηση κώδικα, με την πλοήγηση κώδικα Sourcegraph και τις συμβουλές εργαλείων, αποτρέπει τη συγχώνευση κώδικα κακής ποιότητας.
  • Οι αυτοματοποιημένοι ελεγκτές ποιότητας κώδικα (π.χ. Codecov) μπορούν να ενσωματωθούν σε έλεγχο κώδικα μέσω του API επέκτασης Sourcegraph. Το Sourcegraph προσθέτει αυτούς τους σχολιασμούς στο υπάρχον εργαλείο ελέγχου κώδικα.
  • Η κοινή χρήση κωδικών συνδέσμων και η πλοήγηση κώδικα στο πρόγραμμα περιήγησης επιτρέπουν στους προγραμματιστές να αναφέρουν παραδείγματα μοτίβων που πρέπει να προσομοιωθούν και να αποθαρρυνθούν τα αντί-μοτίβα.

Εκθέστε τη βάση κώδικα ως σύνολο δεδομένων μέσω API

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

Πηγή
$config[zx-auto] not found$config[zx-overlay] not found