Sourcegraph: Pencarian dan perisikan kod sejagat

Jumlah kod di dunia meletup. Oleh kerana perisian menjadi pemacu asas inovasi di hampir setiap industri, pembangun perisian mendapati mereka berurusan dengan pangkalan data yang lebih besar dan saling bergantung. Sebilangan besar organisasi menetapkan rekod baru untuk ukuran pangkalan kod mereka setiap hari.

Di dunia ini, alat pemaju tradisional seperti editor dan IDE tidak lagi berfungsi. Mereka direka untuk pemaju individu yang bekerja pada kod individu, dan bukan untuk pasukan perisian yang mengembangkan pangkalan kode besar pada skala besar. Dalam organisasi perisian moden, mencari di pangkalan data yang banyak, memahami kod yang tidak dikenali, dan berkongsi pengetahuan institusi menjadi perhatian utama. Pasukan perisian memerlukan alat yang membolehkan kecerdasan kod universal ini.

Pencarian kod mesti bersifat universal agar berkesan - mesti merangkumi semua bahasa, semua repositori, semua host kod, dan semua fail konfigurasi. Carian yang hanya terhad kepada Python atau hanya GitHub adalah seperti Google yang hanya mengindeks laman web yang dibina dengan Ruby on Rails atau Apache HTTP Server - bukan untuk pasukan pembangunan yang bekerja di alam semesta kod moden.

Syarikat teknologi terkemuka seperti Uber, Lyft, dan Yelp menggunakan Sourcegraph untuk merungkai kod semesta ini. Syarikat seperti Google dan Facebook telah menghabiskan ratusan juta dolar untuk membina alat dalaman yang serupa dengan Sourcegraph. GitLab, syarikat hosting kod dan devops, baru-baru ini mengumumkan kerjasama dengan Sourcegraph untuk menggabungkan sebilangan ciri Sourcegraph ke UI GitLab.

Sebab utama untuk menggunakan Sourcegraph

Sourcegraph adalah platform pengembang yang dirancang untuk mengatasi masalah yang dihadapi oleh pasukan perisian moden. Sourcegraph membahas masalah kritikal yang dirasakan oleh jurutera perisian dan pemimpin kejuruteraan.

Untuk pembangun individu, berikut adalah sebab utama untuk menggunakan Sourcegraph:

  1. Tetap dalam arus, hindari kematian dengan seribu pertukaran konteks
  2. Cari jarum di tumpukan jerami pangkalan kod
  3. Buat ulasan kod dengan cepat, teliti, dan kurang menyakitkan — tidak lebih TL; DR
  4. Belajar dengan teladan dan bukannya dokumentasi yang buruk atau tidak ada
  5. Jadikan refaktor besar dan perubahan kod dapat dilaksanakan
  6. Berkongsi dan membincangkan kod dengan mudah, terutamanya dengan rakan sekerja yang jauh
  7. Ini sumber terbuka

Dan inilah sebab-sebab yang paling biasa pemimpin kejuruteraan memperkenalkan Sourcegraph kepada organisasi mereka:

  1. Meningkatkan produktiviti harian pasukan
  2. Galakkan perkongsian pengetahuan
  3. Dorong penggunaan alat baru di seluruh organisasi
  4. Mempercepat penggunaan jurutera baru
  5. Kurangkan masa tindak balas kejadian
  6. Mengekalkan dan menyebarkan standard kualiti kod
  7. Bina alat pembangun dalaman yang lebih baik dengan API kod-seperti-data
  8. Sangat mudah untuk menggunakan dan menimbang tim dan pangkalan data anda

Kekal dalam aliran

Produktiviti pengaturcaraan sering kali mati dengan seribu pertukaran konteks. Senario yang biasa dilakukan adalah di mana pembangun berada di tengah-tengah melaksanakan ciri atau perbaikan bug, tetapi tiba-tiba perlu melompat ke bahagian yang berbeza dari pangkalan data. Mungkin mereka perlu mencari fungsi perpustakaan tertentu atau mengetahui cara menggunakannya. Mungkin rakan sekerja mempunyai pertanyaan mengenai beberapa kod lain. Sekarang, pembangun harus membuka fail-fail tersebut di IDE mereka dan, dengan berbuat demikian, menghancurkan keadaan kerjanya sekarang, yang harus ditarik balik dan disusun semula kemudian.

Gangguan ini merosakkan, kerana membawa pembangun keluar dari Flow State, dan kesan negatif terhadap produktiviti adalah ketara. Antara muka carian dan penerokaan kod berasaskan penyemak imbas Sourcegraph membolehkan pembangun mengekalkan keadaan penyunting mereka sambil meneroka bahagian lain kod tersebut. Pemeliharaan keadaan kerja ini menjadikan pertukaran konteks jauh lebih murah, membiarkan setiap pembangun menyelesaikan lebih banyak perkara dengan lebih sedikit masalah.

Sourcegraph

Cari jarum di tumpukan jerami

Tugas biasa dalam kejuruteraan perisian sehari-hari adalah mencari rentetan atau corak tertentu dalam kod. Ini mungkin merupakan mesej ralat yang muncul di log pengeluaran, anti-corak yang harus dikeluarkan, atau hanya beberapa tali unik yang dikaitkan oleh pembangun dengan tempat menarik tertentu dalam kod sumber.

Sourcegraph

Mencari jarum ini sering menyakitkan. IDE mempunyai kemampuan mencari, tetapi kod yang dimaksud mungkin ada di luar yang telah dibuka oleh IDE. Alat baris perintah juga tidak mempunyai akses ke kod di luar sistem fail tempatan dan boleh digunakan untuk membebankan. Hos kod mencari hanya melalui kod yang mereka hos dan selalunya carian itu perlahan atau berkualiti rendah. Pencarian kod mesti bersifat universal agar berkesan.

Dengan Sourcegraph, pembangun mempunyai carian kod yang merangkumi keseluruhan kod kod mereka, dengan sokongan penuh untuk ungkapan biasa dan padanan corak yang lebih maju seperti sintaks Comby. Mesin pencari Sourcegraph dioptimumkan untuk kod sumber, jadi sangat cepat. Ia juga dirancang dari bawah hingga skala besar hingga pangkalan kode besar dan organisasi. Beberapa organisasi mempunyai ratusan ribu repositori, dan Sourcegraph meletakkan semuanya di hujung jari setiap pemaju.

Sintaks carian yang ekspresif dan kuat membolehkan pengguna menapis hasil mengikut fail, bahasa, repositori, dan pelbagai atribut lain. Sourcegraph juga menyedari semantik kod dan membolehkan mencari simbol secara langsung.

Sourcegraph

Belajar dengan teladan

"Bagaimana saya menggunakan ini?" adalah soalan yang diajukan oleh pembangun berpuluh-puluh kali sehari. Lebih kerap daripada tidak, dokumentasi terbaik adalah contoh penggunaan. Ciri rujukan penemuan global Sourcegraph memungkinkan pembangun mencari contoh penggunaan di seluruh kod, walaupun contoh penggunaan ideal ada di repositori lain. Ini sangat berguna dalam pangkalan data yang lama, tidak dikenali, atau tidak didokumentasikan dengan baik.

Buat tinjauan kod dengan cepat dan teliti

Satu petikan umum mengenai tinjauan kod mengatakan bahawa jika anda menyerahkan kumpulan perubahan 10 baris, anda akan mendapat 10 komen, tetapi jika anda menyerahkan kumpulan perubahan seribu baris, anda tidak akan mendapat komen — dan kelulusan automatik.

Ulasan kod kualiti sering menyakitkan dan lambat, kerana alat tradisional tidak mempunyai banyak ciri penting untuk membantu pengulas memahami perubahan kod dengan cepat. Sourcegraph menambah navigasi kod seperti IDE dan petua alat ke aliran kerja tinjauan kod yang ada pada pemaju.

Petua alat kursor Sourcegraph memungkinkan pengulas melihat sekilas definisi fungsi dan dokumentasi dengan cepat tanpa perlu mengubah set perubahan menjadi IDE tempatan. Tanpa meninggalkan antara muka tinjauan kod, Sourcegraph membolehkan anda beralih ke definisi untuk memahami dengan lebih lengkap bagaimana sekeping kod yang dirujuk berfungsi.

Sourcegraph

Sourcegraph mengintegrasikan ciri navigasi kod ini terus ke UI alat ulasan kod popular seperti Permintaan Tarik GitHub, Permintaan Gabungan GitLab, dan Phabricator, sehingga pengalaman pemaju bertambah baik tanpa perlu menukar kos.

Ulasan kod yang lebih baik mengurangkan bug, menegakkan standard kualiti kod, dan meningkatkan penyebaran pengetahuan institusi di seluruh organisasi kejuruteraan.

Sourcegraph Sourcegraph

Jadikan reaktor besar boleh dikendalikan

Seiring berkembangnya pangkalan kod, reaktor skala besar menjadi hambatan yang tidak dapat dielakkan untuk meningkatkan kualiti kod dan menerapkan ciri baru. Sebagai contoh, API pustaka bersama mungkin perlu dikemas kini untuk menyokong ciri baru, tetapi melakukannya mungkin memerlukan kemas kini kepada puluhan atau bahkan ratusan tanggungan hiliran. Jumlah tempat dalam kod yang mesti berubah sebagai hasil daripada mengemas kini satu pergantungan bersama dapat dengan mudah melonjak ke ribuan mata yang tersebar di berbagai komponen yang dimiliki oleh pasukan yang berbeza.

Sourcegraph tidak hanya membantu pengembang dalam memahami kesan refaktor (dengan membiarkan mereka mencari dan menemui semua tempat fungsi perpustakaan tertentu digunakan), ia juga menyediakan alat untuk melaksanakan refaktor dan menguruskan kempen perubahan dan tinjauan kod. Sourcegraph Campaigns adalah alat pertama seumpamanya yang dapat diakses oleh semua perusahaan perisian. Seperti carian kod Sourcegraph, Campaigns menyokong sintaks pencocokan corak Comby baru, yang lebih mesra pengguna dan ekspresif daripada ungkapan biasa.

Sourcegraph

Galakkan perkongsian pengetahuan di seluruh organisasi anda

Pasukan perisian moden bekerjasama untuk berkongsi pengetahuan institusi mengenai kod. Tetapi membincangkan kod sering sukar kerana alasan ini:

  • Anda tidak boleh berkongsi pautan hiper ke fail yang anda buka di IDE anda
  • Alat melihat kod penyemak imbas tradisional tidak mempunyai navigasi kod yang baik

Sourcegraph menawarkan yang terbaik dari kedua-dua dunia: navigasi kod yang tepat dan tepat dalam antara muka web. Ini memudahkan kedua-duanya untuk berkongsi pautan dan bagi penerima untuk mula meneroka dan memahami kod yang dipautkan dengan segera, tanpa kerumitan dan gesekan untuk menariknya di IDE tempatan.

Sourcegraph

Perkongsian pautan kod menjadi lebih penting bagi pasukan kejuruteraan jauh. Pautan Sourcegraph dikongsi beratus-ratus kali sehari melalui sembang, pelacak masalah, dan dalam dokumentasi rasmi dan wiki. Ini menjadi saluran pengetahuan yang penting terutama apabila mustahil untuk memanggil rakan sekerja ke meja seseorang.

Ini sumber terbuka

Sourcegraph adalah perisian sumber terbuka. Penjejak masalah adalah umum dan pasukan sangat responsif terhadap laporan pepijat dan permintaan ciri. Pembangun perisian moden semestinya menggemari alat terbuka dengan alasan yang sama kerana mereka menyukai perpustakaan sumber terbuka: pengetahuan asas di mana perisian dan pasukan anda dibina harus terbuka untuk semua, sehingga semua dapat memahami cara kerjanya dan semua dapat membantu memperbaikinya.

Tingkatkan produktiviti keseluruhan pasukan anda

Bagaimana projek perisian dapat menjadi satu tahun yang lalu? Satu hari pada satu masa. Sourcegraph membantu pasukan anda tetap menjelang tarikh akhir dengan menyelaraskan tugas sehari-hari. Ini membolehkan pemaju meminimumkan kesan pertukaran konteks, tetap dalam aliran, melakukan tinjauan kod yang lebih pantas, dan mencari jawapan untuk soalan seperti "Bagaimana saya menggunakannya?" yang diminta berpuluh-puluh kali setiap hari. Kecekapan ini meningkat dengan cepat. 

Dorong penggunaan alat baru di seluruh organisasi

Sebilangan besar pengguna Sourcegraph menggunakannya berkali-kali sehari, tetapi banyak alat pembangun digunakan lebih jarang. Ini boleh menjadi cabaran bagi CIO dan Pengarah Produktiviti Pembangun untuk mendorong penggunaan alat baru.

Monitor pemerhatian dan prestasi, pelacak aplikasi yang diedarkan, penganalisis liputan kod - ini semua alat yang mungkin tidak mudah dijumpai atau diakses oleh semua anggota pasukan anda.

Sourcegraph

API pelanjutan Sourcegraph membolehkan alat pihak ketiga menambahkan anotasi ke UI web Sourcegraph dan UI host kod seperti GitHub dan GitLab. Sambungan ada untuk alat luar rak yang popular seperti Codecov, Datadog, dan Sentry, dan pasukan alat pembangun dalaman juga boleh membuat sambungan peribadi untuk alat dalaman.

Mempercepat penambahan jurutera baru

Ini boleh menjadi perjuangan untuk menaiki jurutera baru, terutama jika organisasi kejuruteraan atau pangkalan data besar. Sourcegraph mengurangkan masa antara tarikh mula dan komitmen pertama dengan membolehkan pemahaman kod yang ada lebih cepat. Pekerja baru sering menghabiskan sebahagian besar masa mereka untuk melompat-lompat di bahagian pangkalan kod yang tidak dikenali untuk membina model mental kod organisasi. Navigasi kod universal Sourcegraph membolehkan mereka menjelajahi keseluruhan pangkalan data dengan pertukaran konteks yang minimum, dan kemampuan untuk berkongsi pautan membolehkan mereka mengajukan soalan khusus yang tidak membuang masa jurutera kanan.

Kurangkan masa tindak balas kejadian

Setiap minit dikira ketika bertindak balas terhadap kejadian produksi. Pencarian kod Sourcegraph mengurangkan masa yang diperlukan untuk menimbulkan masalah dengan memudahkan untuk mencari mesej ralat dalam kod sumber. Sering kali, mesej ralat berasal dari pergantungan hulu dan oleh itu sukar dicari menggunakan IDE atau alat carian baris perintah. Sourcegraph mengindeks semua kod yang berkaitan dengan organisasi anda dan membuat mesej ralat dapat dijumpai serta-merta.

API peluasan Sourcegraph juga membolehkan penyatuan alat devops ke Sourcegraph. Sebagai contoh, sambungan Sentry memaparkan jumlah amaran pengeluaran yang dihasilkan oleh kod instrumen tertentu. Ini memberikan pengetahuan kontekstual yang berharga semasa menyahpepijat kejadian.

Sourcegraph

Mengekalkan dan menyebarkan standard kualiti kod

Sourcegraph membolehkan organisasi mengekalkan dan menyebarkan standard kualiti kod melalui beberapa vektor:

  • Ulasan kod yang cekap tetapi teliti, dengan navigasi kod Sourcegraph dan petua alat, menghalang kod berkualiti rendah daripada digabungkan.
  • Pemeriksa kualiti kod automatik (misalnya, Codecov) dapat disatukan ke dalam tinjauan kod melalui API pelanjutan Sourcegraph. Sourcegraph menambahkan anotasi ini ke alat semakan kod yang ada.
  • Perkongsian pautan kod dan navigasi kod dalam penyemak imbas membolehkan pemaju merujuk contoh corak yang harus dicontohi dan anti-pola tidak digalakkan.

Paparkan pangkalan data anda sebagai set data melalui API

Sourcegraph memaparkan API GraphQL yang kuat. API digunakan oleh pasukan alat pembangun dalaman untuk membina alat dalaman yang memanfaatkan keupayaan Sourcegraph seperti carian kod universal, navigasi kod, dan statistik kod. Token akses membolehkan alat yang dipercayai dapat mengesahkan ke Sourcegraph dengan selamat. Sourcegraph dihantar dengan penjelajah API interaktif, yang memudahkan belajar dan bereksperimen dengan API.

Sourcegraph