Grafik sumber: Pencarian kode universal dan kecerdasan

Jumlah kode di dunia sedang meledak. Karena perangkat lunak menjadi pendorong dasar inovasi di hampir setiap industri, pengembang perangkat lunak mendapati diri mereka berurusan dengan basis kode yang lebih besar dan lebih saling bergantung. Sebagian besar organisasi membuat rekor baru untuk ukuran basis kode mereka setiap hari.

Di dunia ini, alat pengembang tradisional seperti editor dan IDE gagal. Mereka dirancang untuk pengembang individu yang mengerjakan bagian kode individu, bukan untuk tim perangkat lunak yang mengembangkan basis kode besar dalam skala besar. Dalam organisasi perangkat lunak modern, mencari di seluruh basis kode besar, memahami kode asing, dan berbagi pengetahuan institusional menjadi perhatian urutan pertama. Tim perangkat lunak membutuhkan alat yang memungkinkan kecerdasan kode universal ini.

Pencarian kode harus universal agar efektif — pencarian kode harus mencakup semua bahasa, semua repositori, semua host kode, dan semua file konfigurasi. Penelusuran yang dibatasi hanya untuk Python atau GitHub saja seperti Google yang hanya mengindeks situs web yang dibuat dengan Ruby on Rails atau Apache HTTP Server — nonstarter untuk tim pengembangan yang bekerja di dunia kode modern.

Perusahaan teknologi terkemuka seperti Uber, Lyft, dan Yelp menggunakan Sourcegraph untuk mengatasi dunia kode ini. Perusahaan seperti Google dan Facebook telah menghabiskan ratusan juta dolar untuk membangun alat internal yang mirip dengan Sourcegraph. GitLab, perusahaan hosting kode dan pengembang, baru-baru ini mengumumkan kemitraan dengan Sourcegraph untuk mengintegrasikan beberapa fitur Sourcegraph ke dalam UI GitLab.

Alasan teratas untuk menggunakan Sourcegraph

Sourcegraph adalah platform pengembang yang dirancang untuk mengatasi masalah yang dihadapi oleh tim perangkat lunak modern. Sourcegraph membahas poin-poin penting yang dirasakan oleh para insinyur perangkat lunak dan pemimpin teknik.

Untuk pengembang individu, berikut adalah alasan utama untuk menggunakan Sourcegraph:

  1. Tetap mengalir, hindari kematian dengan seribu sakelar konteks
  2. Temukan jarum di tumpukan jerami basis kode
  3. Jadikan peninjauan kode cepat, menyeluruh, dan tidak terlalu menyakitkan — tidak ada lagi TL; DR
  4. Belajar dengan contoh daripada dokumentasi yang buruk atau tidak ada
  5. Jadikan refaktor besar dan perubahan kode mudah diatur
  6. Bagikan dan diskusikan kode dengan mudah, terutama dengan rekan jarak jauh
  7. Ini open source

Dan berikut adalah alasan paling umum para pemimpin teknik memperkenalkan Sourcegraph ke organisasi mereka:

  1. Tingkatkan produktivitas tim sehari-hari
  2. Dorong berbagi pengetahuan
  3. Mendorong penggunaan alat baru di seluruh organisasi
  4. Mempercepat orientasi insinyur baru
  5. Kurangi waktu respons insiden
  6. Menjaga dan menyebarkan standar kualitas kode
  7. Buat alat pengembang internal yang lebih baik dengan API kode sebagai data
  8. Mudah untuk menerapkan dan menskalakan dengan tim dan basis kode Anda

Tetap mengikuti arus

Produktivitas pemrograman sering kali mati karena ribuan sakelar konteks. Skenario yang sudah dikenal adalah saat developer sedang mengimplementasikan fitur atau perbaikan bug, tetapi tiba-tiba perlu beralih ke bagian lain dari basis kode. Mungkin mereka perlu mencari fungsi perpustakaan tertentu atau mencari cara untuk menggunakannya. Mungkin seorang kolega memiliki pertanyaan tentang beberapa bagian kode lainnya. Sekarang, pengembang harus membuka file-file tersebut di IDE mereka dan, dengan melakukan itu, menghancurkan status kerja mereka saat ini, yang harus ditarik kembali dan dibangun kembali dengan susah payah nanti.

Gangguan ini merusak, karena membawa pengembang keluar dari Flow State, dan dampak negatif pada produktivitas signifikan. Pencarian kode dan antarmuka eksplorasi berbasis browser Sourcegraph memungkinkan pengembang mempertahankan status editor mereka sambil menjelajahi bagian lain dari kode. Pelestarian status kerja ini membuat pengalihan konteks jauh lebih murah, memungkinkan pengembang individu menyelesaikan lebih banyak dengan sedikit gangguan.

Grafik sumber

Temukan jarum di tumpukan jerami

Tugas umum dalam rekayasa perangkat lunak sehari-hari adalah mencari string atau pola tertentu dalam kode. Ini bisa menjadi pesan kesalahan yang muncul di log produksi, anti-pola yang harus dihapus, atau hanya beberapa string unik yang diasosiasikan oleh pengembang dengan tempat menarik tertentu dalam kode sumber.

Grafik sumber

Menemukan jarum ini seringkali menyakitkan. IDE memiliki kemampuan pencarian, tetapi kode yang dipermasalahkan mungkin ada di luar apa yang telah dibuka IDE. Alat baris perintah juga tidak memiliki akses ke kode di luar sistem file lokal dan dapat merepotkan untuk digunakan. Kode host hanya mencari kode yang mereka host dan seringkali pencarian itu lambat atau berkualitas rendah. Pencarian kode harus universal agar efektif.

Dengan Sourcegraph, pengembang memiliki penelusuran kode yang mencakup seluruh semesta kode mereka, dengan dukungan penuh untuk ekspresi reguler dan pencocokan pola lanjutan seperti sintaks Comby. Mesin pencari Sourcegraph dioptimalkan untuk kode sumber, sehingga sangat cepat. Itu juga dirancang dari awal hingga skala ke basis kode dan organisasi besar. Beberapa organisasi memiliki ratusan ribu repositori, dan Sourcegraph menempatkan semuanya di ujung jari setiap pengembang.

Sintaks pencarian yang ekspresif dan kuat memungkinkan pengguna memfilter hasil berdasarkan file, bahasa, repositori, dan berbagai atribut lainnya. Sourcegraph juga mengetahui semantik kode dan memungkinkan pencarian simbol secara langsung.

Grafik sumber

Belajar dengan contoh

“Bagaimana cara menggunakan ini?” adalah pertanyaan yang sering diajukan pengembang setiap hari. Lebih sering daripada tidak, dokumentasi terbaik adalah contoh penggunaan. Fitur referensi pencarian global Sourcegraph memungkinkan pengembang mencari contoh penggunaan di seluruh semesta kode, bahkan jika contoh penggunaan yang ideal ada di repositori lain. Ini sangat membantu dalam basis kode yang lama, tidak dikenal, atau tidak terdokumentasi dengan baik.

Buat peninjauan kode dengan cepat dan menyeluruh

Sebuah gurauan umum tentang peninjauan kode mengatakan bahwa jika Anda mengirimkan kumpulan perubahan 10 baris, Anda akan mendapatkan 10 komentar, tetapi jika Anda mengirimkan kumpulan perubahan seribu baris, Anda tidak akan mendapatkan komentar — dan persetujuan otomatis.

Tinjauan kode kualitas sering kali menyakitkan dan lambat, karena alat tradisional tidak memiliki banyak fitur penting untuk membantu pengulas dengan cepat memahami perubahan kode. Sourcegraph menambahkan navigasi kode seperti IDE dan tooltips ke alur kerja tinjauan kode yang sudah ada oleh pengembang.

Tip alat hover sourcegraph memungkinkan reviewer dengan cepat mengintip definisi fungsi dan dokumentasi tanpa harus menarik set perubahan ke dalam IDE lokal. Tanpa meninggalkan antarmuka peninjauan kode, Sourcegraph memungkinkan Anda beralih ke definisi untuk lebih memahami cara kerja bagian kode yang direferensikan.

Grafik sumber

Sourcegraph mengintegrasikan fitur navigasi kode ini langsung ke UI alat peninjau kode populer seperti GitHub Pull Requests, GitLab Merge Requests, dan Phabricator, sehingga pengalaman pengembang meningkat tanpa biaya pengalihan apa pun.

Tinjauan kode yang lebih baik mengurangi bug, menjunjung standar kualitas kode, dan meningkatkan penyebaran pengetahuan institusional di seluruh organisasi teknik.

Sourcegraph Sourcegraph

Buatlah refaktor besar mudah diatur

Seiring berkembangnya basis kode, refaktor skala besar menjadi penghambat yang tak terhindarkan untuk meningkatkan kualitas kode dan menerapkan fitur baru. Misalnya, API pustaka bersama mungkin perlu diperbarui untuk mendukung fitur baru, tetapi hal itu mungkin memerlukan pembaruan ke lusinan atau bahkan ratusan dependen hilir. Jumlah tempat dalam kode yang harus berubah sebagai akibat dari pembaruan satu dependensi bersama dapat dengan mudah membengkak menjadi ribuan poin yang tersebar di berbagai komponen yang dimiliki oleh tim berbeda.

Sourcegraph tidak hanya membantu pengembang dalam memahami dampak refactor (dengan membiarkan mereka mencari dan menemukan semua tempat fungsi perpustakaan tertentu digunakan), ia juga menyediakan peralatan untuk mengeksekusi refactor dan mengelola kampanye perubahan dan tinjauan kode. Sourcegraph Campaigns adalah alat pertama dari jenisnya yang dapat diakses oleh semua perusahaan perangkat lunak. Seperti pencarian kode Sourcegraph, Kampanye mendukung sintaks pencocokan pola Comby baru, yang lebih ramah pengguna dan ekspresif daripada ekspresi reguler.

Grafik sumber

Dorong berbagi pengetahuan di seluruh organisasi Anda

Tim perangkat lunak modern bekerja sama untuk berbagi pengetahuan institusional tentang kode. Tetapi mendiskusikan kode seringkali sulit karena alasan berikut:

  • Anda tidak dapat membagikan hyperlink ke file yang telah Anda buka di IDE Anda
  • Alat tampilan kode browser tradisional tidak memiliki navigasi kode yang baik

Sourcegraph menawarkan yang terbaik dari kedua dunia: navigasi kode yang tepat dan akurat dalam antarmuka web. Hal ini memudahkan untuk berbagi tautan dan bagi penerima untuk mulai menjelajahi dan memahami kode yang ditautkan dengan segera, tanpa kerumitan dan gesekan untuk menariknya di IDE lokal.

Grafik sumber

Berbagi tautan kode menjadi semakin penting bagi tim teknik jarak jauh. Tautan sourcegraph dibagikan ratusan kali per hari melalui obrolan, pelacak masalah, dan dalam dokumentasi dan wiki resmi. Ini menjadi saluran pengetahuan yang penting terutama ketika tidak mungkin untuk memanggil kolega ke meja seseorang.

Ini open source

Sourcegraph adalah perangkat lunak sumber terbuka. Pelacak masalah bersifat publik dan tim sangat responsif terhadap laporan bug dan permintaan fitur. Pengembang perangkat lunak modern harus menyukai alat terbuka karena alasan yang sama mereka menyukai pustaka sumber terbuka: pengetahuan dasar yang menjadi dasar perangkat lunak dan tim Anda dibangun harus terbuka untuk semua, sehingga semua dapat memahami cara kerjanya dan semua dapat membantu memperbaikinya.

Tingkatkan produktivitas tim Anda secara keseluruhan

Bagaimana proyek perangkat lunak bisa ketinggalan satu tahun? Satu hari pada suatu waktu. Sourcegraph membantu tim Anda tetap terdepan dengan tenggat waktu dengan menyederhanakan tugas sehari-hari. Ini memungkinkan pengembang meminimalkan dampak pengalih konteks, tetap mengikuti, melakukan peninjauan kode lebih cepat, dan menemukan jawaban untuk pertanyaan seperti "Bagaimana cara menggunakan ini?" yang ditanyakan puluhan kali setiap hari. Peningkatan efisiensi ini dengan cepat bertambah. 

Mendorong penggunaan alat baru di seluruh organisasi

Sebagian besar pengguna Sourcegraph menggunakannya beberapa kali per hari, tetapi banyak alat pengembang yang digunakan lebih jarang. Ini dapat menjadi tantangan bagi CIO dan Direktur Produktivitas Pengembang untuk mendorong penerapan alat baru.

Pemantau observasi dan kinerja, pelacak aplikasi terdistribusi, penganalisis cakupan kode — ini semua adalah alat yang mungkin tidak mudah ditemukan atau diakses oleh semua anggota tim Anda.

Grafik sumber

API ekstensi Sourcegraph memungkinkan alat pihak ketiga menambahkan anotasi ke UI web Sourcegraph dan UI host kode seperti GitHub dan GitLab. Ada ekstensi untuk alat siap pakai yang populer seperti Codecov, Datadog, dan Sentry, dan tim alat pengembang internal juga dapat membuat ekstensi pribadi untuk alat internal.

Mempercepat orientasi insinyur baru

Mempekerjakan teknisi baru mungkin sulit, terutama jika organisasi teknik atau basis kode besar. Sourcegraph mengurangi waktu antara tanggal mulai dan komit pertama dengan memungkinkan pemahaman yang lebih cepat dari kode yang ada. Karyawan baru sering menghabiskan sebagian besar waktu mereka melompat-lompat di bagian-bagian yang tidak dikenal dari basis kode untuk membangun model mental kode organisasi. Navigasi kode universal Sourcegraph memungkinkan mereka menjelajahi seluruh basis kode dengan pengalihan konteks minimal, dan kemampuan untuk berbagi tautan memungkinkan mereka mengajukan pertanyaan spesifik yang tidak membuang waktu para insinyur senior.

Kurangi waktu respons insiden

Setiap menit penting saat menanggapi insiden produksi. Pencarian kode grafik sumber mengurangi waktu yang diperlukan untuk mengakar penyebab masalah dengan memudahkan untuk menemukan pesan kesalahan dalam kode sumber. Seringkali, pesan kesalahan berasal dari ketergantungan upstream dan oleh karena itu sulit ditemukan menggunakan IDE atau alat pencarian baris perintah. Sourcegraph mengindeks semua kode yang relevan dengan organisasi Anda dan membuat pesan kesalahan langsung dapat ditemukan.

API ekstensi Sourcegraph juga memungkinkan integrasi alat devops ke Sourcegraph. Misalnya, ekstensi Sentry menampilkan jumlah peringatan produksi yang dihasilkan oleh baris kode instrumentasi tertentu. Ini memberikan pengetahuan kontekstual yang berharga saat men-debug insiden.

Grafik sumber

Menjaga dan menyebarkan standar kualitas kode

Sourcegraph memungkinkan organisasi untuk mempertahankan dan menyebarkan standar kualitas kode melalui beberapa vektor:

  • Peninjauan kode yang efisien namun menyeluruh, dengan navigasi kode Sourcegraph dan keterangan alat, mencegah penggabungan kode berkualitas buruk.
  • Pemeriksa kualitas kode otomatis (misalnya, Codecov) dapat diintegrasikan ke dalam tinjauan kode melalui API ekstensi Sourcegraph. Sourcegraph menambahkan anotasi ini ke alat tinjauan kode yang ada.
  • Berbagi tautan kode dan navigasi kode di browser memungkinkan pengembang merujuk contoh pola yang akan ditiru dan anti-pola tidak disarankan.

Tunjukkan basis kode Anda sebagai kumpulan data melalui API

Sourcegraph memperlihatkan API GraphQL yang kuat. API digunakan oleh tim alat pengembang internal untuk membangun alat internal yang memanfaatkan kemampuan Sourcegraph seperti pencarian kode universal, navigasi kode, dan statistik kode. Token akses memungkinkan alat tepercaya untuk mengautentikasi ke Sourcegraph dengan aman. Sourcegraph dikirimkan dengan penjelajah API interaktif, yang membuatnya mudah untuk belajar dan bereksperimen dengan API.

Grafik sumber