Apakah boleh memformat ulang kode pengembang lain sambil memodifikasi / menambah modul?

13

Saat berkembang dalam suasana grup dan menambahkan atau memodifikasi fitur di beberapa basis kode. Apakah dianggap ofensif atau tidak sopan untuk memformat ulang kode pengembang sebelumnya untuk membawanya ke standar pengkodean saat ini? Saya memahami bahwa standar telah berubah, dan mungkin akan terus berubah, tetapi apakah ada di antara Anda yang tersinggung jika seseorang datang dan mengubah pemformatan kode Anda?

Untuk lebih jelasnya, saya tidak berbicara tentang mengubah logika apa pun, hanya mengacaukan tab dan spasi dan semacamnya.

EDIT: Saya tidak hanya melakukan ini demi standar pengkodean, itu membantu saya membaca kode mereka dan memperbarui sehingga saya dapat sepenuhnya memahami logika yang telah diterapkan sebelum saya mulai memodifikasi aplikasi penting.

wfoster
sumber
6
Aktifkan "format at save" otomatis untuk semua orang. Semua orang menggunakan pengaturan yang disepakati yang sama. Setelah beberapa saat semua kode dinormalisasi.
1
Mungkin ada titik di mana hal ini berlangsung jauh. Saya memiliki rekan kerja yang memformat ulang semua yang menambahkan linebreaks yang tidak diperlukan atau bahkan relevan sejauh yang saya ketahui. Secara pribadi kecuali itu tidak dapat dibaca atau kode telah menjadi tanggung jawab utama saya, saya membiarkan format saja kecuali saya membuat perubahan lain.
SoylentGray
1
Jika Anda mengode dalam c #, maka tetaplah menggunakan StyleCop. Jika dalam bahasa lain, cobalah mengambil alat yang bagus dan tidak bias.
Pekerjaan
5
Apakah ini "Saya mengubah format ... karena saya pikir itu akan terlihat berbeda" .. atau apakah ini "Saya mengubah format ... juga cocok dengan standar " ... pertanyaan yang sangat berbeda
WernerCD
1
@ Torbjorn Saya tidak akan mempertimbangkan cabang yang memperbaiki pemformatan di setiap file, 1 file per komit, mematikan riwayat. Namun, memperbaikinya selama komit yang sama hanya buruk. (Saya kira mereka dapat menggunakan sesuatu seperti git adduntuk melakukan bagian secara selektif, tetapi tebakan saya adalah bahwa kebanyakan orang menggunakan setara dengan svn commitatau git commit -a)
alternatif

Jawaban:

19

Saya pikir ini OK selama standar disepakati. Namun, ada satu peringatan yang harus diperhatikan; Sadarilah jika ada potensi file sedang dimodifikasi oleh orang lain pada saat yang sama. Jika Anda membuat penggabungan mereka lebih sulit hanya karena Anda mengubah format, Anda tidak akan menjadi sangat populer.

Jeremy Mullin
sumber
10
Kalimat pertama di sini penting. Pastikan Anda benar-benar mengikuti standar yang disepakati, dan tidak hanya melakukan perubahan karena Anda menyukainya.
Thomas Owens
5

Ya, kode tersebut harus menjadi milik proyek. Membawa kode ke standar akan membantu mengurangi defisit teknis proyek. Jika Anda mengubahnya, Anda saat ini bertanggung jawab untuk itu. Untuk kode yang lebih lama, pengembang asli mungkin tidak lagi berada di proyek atau memiliki tugas baru.

Ketika Anda melakukan perubahan semacam ini, ada baiknya menjalankan tes verifikasi setelah memformat ulang. Jika mereka lulus, periksa kode sebelum melakukan perubahan fitur Anda.

EDIT: Dalam konteks pertanyaan ini, format ulang ke standar sesuai. Dengan tidak adanya standar, saya akan merekomendasikan advokasi untuk standar dan tidak memformat ulang sampai ada standar untuk format. Format ulang sesuai selera / standar pribadi tidak boleh dilakukan dengan kode milik proyek.

BillThor
sumber
2
+1 untuk "periksa kode sebelum melakukan perubahan fitur"
bdoughan
1
Beri +1 lagi untuk "memeriksa perubahan format sebelum melakukan perubahan fitur" dan "baik untuk menjalankan tes verifikasi setelah memformat ulang Anda". Idealnya, kita harus menjalankan tes verifikasi sebelum setiap checkin.
leed25d
Sebenarnya, apakah Anda memformat ulang sebelum atau setelah perubahan tidak terlalu penting. Yang penting adalah tambalan estetika harus dipisahkan dari tambalan fungsional -> jika tambalan estetika mengubah fungsionalitasnya, tambalan itu tidak dimaksudkan dan dapat dianggap sebagai bug; itu membuat tambalan fungsional lebih mudah untuk ditinjau (karena lebih kecil).
Matthieu M.
@Matthiew M: Benar, tetapi dalam kebanyakan kasus mereka akan dilakukan terlebih dahulu untuk meningkatkan perawatan sebelum pemeliharaan. Beberapa pengembang punya waktu untuk melakukannya setelah fakta. Juga, jika kode perlu ditingkatkan untuk lulus tes check-in otomatis, harus diformat ulang terlebih dahulu untuk menjaga pemisahan tambalan estetika dan fungsional.
BillThor
3

Saya percaya itu selalu merupakan praktik yang baik untuk refactor kode ketika Anda memodifikasi / menambah file tertentu. Itu termasuk memperbarui gaya kode untuk mencerminkan konvensi penamaan yang tepat untuk variabel / metode dan gaya pengkodean.

Wayne Molina
sumber
OP bertanya tentang memformat ulang, bukan refactoring.
quant_dev
Aku tahu; Saya memang mengatakan saya menganggap itu juga termasuk memformat ulang :)
Wayne Molina
2

Saya melakukan ini sepanjang waktu. Kode lama harus dipegang dengan standar kode yang sama dan jika Anda tidak memperbaikinya saat Anda mengerjakannya, tidak ada yang mau. Saya pikir ini diperhitungkan di bawah Peraturan Pramuka.

RKitty
sumber
2

Saya pikir ini adalah praktik yang baik dan merupakan bagian penting dari pemeliharaan kode.

Saya akan merekomendasikan memeriksa perubahan format dalam satu komit ke sistem kontrol versi dan perubahan fungsional dalam komit terpisah untuk membantu Anda dan orang lain memahami apa yang terjadi.

semaj
sumber
1
+1 untuk komitmen terpisah. Mencoba untuk mencari tahu perubahan kode apa yang dibuat dalam komit ketika kode telah diformat ulang pada saat yang sama adalah PITA. Alat diff Anda tidak berguna jika setiap baris dalam file telah berubah.
Dave Kirby
2

Saya tidak akan memiliki masalah dengan itu dan mungkin akan menghargainya ... selama perubahan tidak "beragama". Tolong jangan melalui semua kelas saya dan memindahkan kurung kurawal ke baris pertama metode ini. Jika pemformatan adalah "stroke yang berbeda untuk orang yang berbeda" yang sah, maka itu agak menjengkelkan ketika seseorang masuk dan memaksakan format pada kode yang paling sering Anda edit. Namun, jika Anda menjadi editor utama dari modul tertentu, maka buat perubahan pemformatan apa pun yang Anda inginkan.

Morgan Herlocker
sumber
1

Iya. Silakan "perbaiki" kode sesuai keinginan Anda. Seperti yang dikatakan Programmer Pragmatis dalam buku mereka Program Pragmatis , tidak ada jendela yang pecah. Jika kodenya tidak normal, saya menganggapnya sebagai jendela yang rusak.

Menembus
sumber
1

Ada berbagai repositori yang secara otomatis akan melakukan pemformatan ulang pada saat check-in dan juga hal-hal kecil seperti mengganti pasangan CR / LF tergantung pada platform yang mendapatkan sumbernya.

Ada kelemahan besar untuk melakukan reformat Anda sendiri karena check in delta Anda akan dikaburkan oleh banyak format ulang dan jika ada masalah regresi, semakin sulit untuk menemukan blok kode yang menyinggung.

Anda dapat menyarankan kepada pimpinan Anda bahwa karena basis kode sudah lama harus dibawa dari dingin dan diformat ulang ke standar saat ini semua dalam satu waktu, yang mengarah ke masa depan baru yang cerah untuk kode di mana-mana.

Patrick Hughes
sumber
1

Karena Anda berbicara masalah "pemformatan" murni (artinya kami tidak memperbaiki bug tetapi membuatnya terlihat sesuai standar Anda sendiri), saya pikir itu tergantung apakah orang asli masih mempertahankan kode atau tidak.

Jika pencetusnya masih mengerjakan proyek - itu tidak sopan. Apa yang mungkin "terlihat" tepat untuk Anda bukanlah apa yang akan "terlihat" tepat untuk mereka dan untuk memodifikasi kode demi memformat tidak sopan. Itu juga bisa membuang banyak waktu.

Saya pernah mengerjakan proyek dengan pengembang SANGAT posesif. Selama bertahun-tahun, saya telah mengembangkan cara yang sangat metodis untuk memformat kode saya yang menurut saya mudah dibaca, kurang rentan terhadap kesalahan implisit, dan mendokumentasikan diri. Orang ini, di sisi lain, lebih suka menggunakan semua fitur implisit dengan garis panjang yang menyebar 300 karakter lebar sehingga Anda harus memiliki monitor 30 "untuk membacanya karena dia percaya jumlah baris lebih penting daripada keterbacaan. Dia menghabiskan setengah hari meniup kode saya mengubahnya ke "standar pilihan" nya ... sementara saya masih mengembangkan secara paralel! Saya datang keesokan paginya untuk menemukan dua hari senilai pekerjaan diformat ke kekacauan-nya. Itu kasar dan buang-buang waktu.

Sekarang jika pengembangnya pergi dan Anda memiliki "gaya yang lebih baik".

Jordan Parmer
sumber
0

Selalu atur sendiri kode secara otomatis jika IDE Anda dapat melakukannya.

  • Mencegah perubahan pemformatan manual dari mengacaukan riwayat versi Anda dalam jangka panjang
  • Profil formatter harus disetujui di antara semua pengembang (pilih default? -)
  • Jadikan kode pemformatan dan atur impor menjadi kebiasaan saat menyimpan file

Misalnya dalam eclipse, Anda dapat menjalankan formatter terlebih dahulu dan mengatur impor untuk seluruh basis kode. Kemudian ingat untuk ctrl + alt + f sebelum Anda menyimpan.

jkj
sumber