Apakah ada ulasan kode dalam proyek opensource? Jika demikian, alat apa yang digunakan untuk melakukan ini?


10

Saya tahu ada dorongan besar untuk ulasan kode dalam pengembangan komersial. Namun, apakah tinjauan kode digunakan dalam perangkat lunak sumber terbuka atau didasarkan pada kepercayaan? Jika demikian, lalu bagaimana kinerjanya? [Apakah ini komit yang ditunda, "lingkungan sebelum komit", apakah ada alat yang memungkinkan patch dikirim ke pengembang lain]?

Apakah ada proyek yang menggunakan ulasan kode?

Dari pemahaman saya, kernel Linux sebagian besar didasarkan pada kepercayaan dari committer. MySQL didasarkan pada persetujuan penulis utama dan dampak kinerja.


4
Linux sebenarnya menggunakan sistem + letnan diktator.
alternatif

Jawaban:


13

Hampir semua proyek open source menggunakan semacam alur kerja penjaga gerbang, di mana seseorang atau sekelompok orang harus menandatangani semua perubahan untuk masuk ke gedung resmi. Beberapa proyek yang lebih besar, seperti kernel Linux, memiliki lapisan penjaga gerbang. Anda mengirim perubahan kepada seseorang yang mengelola area suatu subsistem, mereka mengirim perubahan mereka kepada seseorang yang mengelola seluruh subsistem, dan mereka mengirim perubahan mereka ke Linus Torvalds, yang terkadang meninjau kode itu sendiri atau terkadang mempercayai para letnannya. Ulasan ini biasanya tidak memiliki struktur formal. Itu hanya seseorang yang melihat kode sebelum digabungkan.

Sejauh alat, lihat mekanisme permintaan tarik di github untuk contoh yang baik. Anda membuat permintaan tarikan, dan pada halaman web yang didedikasikan untuk permintaan tarikan itu orang membuat komentar dan penulis membuat revisi sampai cukup baik untuk menerima. Penjaga gerbang lainnya hanya menggunakan git biasa untuk menerapkan tambalan dari milis atau menggabungkan permintaan tarikan dari repositori publik, yang merupakan salah satu alasan utama DVCSes seperti git diciptakan.


5

Proyek-proyek sumber terbuka sering kali memiliki (dan seharusnya, jika tidak) seperangkat "pedoman komunitas" yang diterbitkan dengan jelas, yang sering kali mencakup uraian alur kerja proyek dan bagaimana kontribusi diterima (dan dengan demikian bagaimana mereka diuji), juga sebagai proses untuk menjadi committer inti.

Sejauh tinjauan kode, sekali lagi itu tergantung pada komunitas tetapi pedoman sering dibuat jelas. Beberapa contoh pedoman untuk kontribusi oleh non-penumpang berkisar dari "menang kode kerja" hingga "kontribusi harus memiliki cakupan uji penuh dan dokumentasi, dengan tes yang dilakukan pada saat yang sama dengan kode" dan segala sesuatu di antaranya; terlepas dari pedoman ini, satu pedoman yang tersirat adalah bahwa komuter inti akan meninjau setiap dan semua kontribusi dari bukan komuter sebelum menerimanya.

Proyek-proyek sumber terbuka dengan kelompok-kelompok pengumpul inti juga sering mengadakan pertemuan virtual atau waktu khusus untuk membahas kontribusi apa pun yang mungkin memerlukan perhatian ekstra - mirip dengan proses SE dari banyak suara dekat oleh pengguna dari reputasi tertentu sebelum sebuah pertanyaan ditutup, dan diskusi tentang hal-hal yang dipertanyakan melalui meta atau obrolan.

Berikut adalah beberapa tautan cepat ke beberapa contoh dokumen komunitas untuk proyek yang paling saya ketahui, di mana Anda dapat menemukan jawaban untuk pertanyaan Anda yang spesifik untuk proyek-proyek ini (Anda akan segera melihat tema):


Anda menyebutkan tes unit. Saya akan senang melihat laporan bug dikirimkan sebagai unit test. :) Saya tidak tahu tentang panduan itu. Terima kasih!
monksy

3

Proyek OSS yang lebih besar akan memiliki sejumlah committer inti. Jadi saya kira mereka adalah "peninjau kode" de-facto.

Juga, karena kode OSS pada dasarnya terbuka untuk semua orang, ada kemungkinan akan lebih banyak diskusi seputar kode yang Anda tulis. Meskipun ini mungkin tidak dalam bentuk tinjauan kode formal, Anda pasti akan mengetahui apakah kode Anda dianggap tidak sesuai dengan proyek OSS tertentu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.