Bisakah ada terlalu banyak keseragaman dalam standar pengkodean?

12

Apakah ada keseragaman yang terlalu banyak? Di mana saya bekerja, kita tentu saja memiliki standar termasuk konvensi penamaan, arsitektur, kerangka kerja untuk meningkatkan dll. Namun belakangan ini ada banyak mengkritik hal-hal yang saya anggap lebih gaya.

Misalnya menulis ifpernyataan dalam banyak baris vs satu baris, menggunakan ??operator c # null-coalescing alih-alih mengatakan == null, jumlah jarak untuk indentasi dll.

Tampaknya bagi saya ini mulai lebih ke pilihan gaya pribadi dan tidak perlu seragam di tim atau perusahaan. Apa yang satu orang pikir baca lebih jelas orang lain mungkin tidak. Apakah ada nilai keseragaman "ekstra" ini?

Gratzy
sumber
2
Hai Gratzy, Programmers.SE bukan papan diskusi ; kami di sini untuk menyelesaikan masalah nyata yang mungkin Anda hadapi. Apakah Anda memiliki masalah aktual yang ingin Anda selesaikan? Jika demikian, dapatkah Anda menulis ulang pertanyaan Anda untuk menjaga jawaban tetap konstruktif dan keluar dari perangkap menjadi sebuah diskusi?
1
@ Straty dengan kata lain, mengingat situasi yang Anda hadapi secara pribadi, apa yang akan menjadi kriteria untuk jawaban yang benar?
2
@ Mark Trapp menurut FAQ, ini adalah kriteria untuk sebuah pertanyaan. Semua pertanyaan subjektif diharapkan bersifat membangun. Bagaimana kita mendefinisikannya? Pertanyaan subyektif yang konstruktif ... 1. menginspirasi jawaban yang menjelaskan "mengapa" dan "bagaimana". 2. cenderung memiliki jawaban yang panjang, tidak pendek. 3. memiliki nada yang konstruktif, adil, dan tidak memihak. 4. mengundang berbagi pengalaman tentang pendapat. 5. bersikeras agar opini didukung dengan fakta dan referensi. 6. lebih dari sekadar kesenangan sosial yang tidak ada artinya. Saya percaya pertanyaan saya mencakup 4 pertama setidaknya
Gratzy
2
@Gratzy juga dari FAQ: "Anda seharusnya hanya mengajukan pertanyaan yang praktis dan dapat dijawab berdasarkan masalah aktual yang Anda hadapi. Pertanyaan yang cerewet dan terbuka akan mengurangi kegunaan situs kami dan mendorong pertanyaan lain dari halaman depan."
2
@ Mark Trapp Saya sudah menyatakan kriteria untuk jawaban yang dapat diterima dan ya karena saya sudah mengatakan ini adalah masalah aktual dan terus terang dari minat pada pertanyaan dan jawaban yang saya katakan orang lain setuju.
Gratzy

Jawaban:

16

Keseragaman bukanlah masalah (itu baik) tetapi kekakuan atau ketidakfleksibelan bisa terjadi. Jika dalam berjuang untuk keseragaman Anda menjadi dogmatis maka kerugian yang Anda lakukan kepada tim mungkin lebih besar daripada kebaikan yang datang dari (mungkin) keseragaman yang dihasilkan.

Yang terbaik adalah hanya menetapkan gaya dasar untuk hal-hal yang paling penting (standar penamaan dan kapitalisasi, indentasi, penempatan baris baru dan braket, dll.), Tetapkan rekomendasi untuk hal-hal yang kurang penting (jika format pernyataan, spasi putih lain di sekitar tanda kurung, dll.) , dan kemudian tidak khawatir tentang sisanya.

Nicole
sumber
1
Saya pernah ke sana
+1, mengatakan apa yang saya maksudkan, tetapi lebih baik!
FrustratedWithFormsDesigner
@Pierre, mengapa sekarang Anda menjadi freelance? :)
Nicole
tidak juga, tapi saya sudah bertemu beberapa orang yang obsesif tentang pedoman. Menakutkan bagaimana ini bisa ekstrem. Saya pikir Anda mendefinisikan batas dengan cukup baik.
7

Ketika berpuluh-puluh orang berpotensi mengerjakan proyek selama bertahun-tahun masa pakainya, kadang-kadang membingungkan ketika Anda harus melompat gaya. Bayangkan membaca buku di mana berbagai bab ditulis oleh penulis yang berbeda yang hanya agak mempertahankan gaya penulisan. Itu mungkin, tapi itu menjengkelkan.

Sebagian besar IDE dapat menerapkan gaya hari ini, jadi jika perlu Anda dapat mendistribusikan (sebagai bagian dari kode sumber proyek) file preferensi IDE yang menentukan gaya pengkodean yang dipilih dan meminta semua orang menginstalnya dan menggunakannya untuk memformat kode yang mereka tulis . Saya bertaruh bahkan ada cara untuk memformat ulang kode / gaya saat check-in (meskipun saya belum harus menyelidikinya).

FrustratedWithFormsDesigner
sumber
Ya, Anda mungkin bisa menempelkan skrip semut di sana di suatu tempat.
Michael K
1
IntelliJ, setidaknya, memiliki opsi untuk memformat ulang kode sebelum checkin.
Nicole
3

Satu kasus keseragaman berlebih yang pernah saya lihat adalah memiliki standar tunggal yang berlaku untuk semua bahasa pemrograman terlepas dari kesesuaian:

  • Mengecilkan gotobahkan dalam bahasa seperti C tanpa try... catch.
  • Menggunakan InitialCapsnama (seperti dalam MFC dan C #) Microsoft dalam JavaScript tempat pustaka standar initialLowerCase.
dan04
sumber
2

Saya tidak berpikir ada yang namanya keseragaman terlalu banyak. Namun, saya sering menemukan bahwa terlalu banyak SPESIFIKASI dalam standar pengkodean. Manfaat setiap orang yang memasang brace pembuka pada jalur yang terpisah meragukan dan tidak melebihi waktu yang dihabiskan untuk berdebat tentang hal itu atau memperbaiki masalah kosmetik dalam kode.

JohnFx
sumber
2
@ Tungano saya sangat setuju. Paradoks dari standar pengkodean adalah bahwa mereka layak dimiliki, tetapi mereka tidak layak diperdebatkan.
Charles E. Grant
3
Saya tidak melihat bagaimana memaksa gaya tertentu ke tenggorokan programmer akan membantu Anda menghindari argumen itu. Bahkan, saya berpendapat bahwa membuat seorang programmer beradaptasi dengan gaya yang mereka tidak suka MENDORONG argumen itu, atau setidaknya kebencian.
JohnFx
1
@JohnFx, karena sebagian besar programmer akan menyadari bahwa konsistensi gaya membuat kontribusi yang jauh lebih besar untuk kualitas kode dan pemeliharaan daripada pilihan gaya tertentu. Dalam pengalaman saya, Anda dapat melakukan penghitungan cepat tim, melihat apa yang disukai dan tidak disukai orang, dan dengan cepat mencapai konsensus. Kadang-kadang seseorang akan memiliki bugaboo aneh dan Anda mengakomodasi mereka, kemudian mereka menghasilkan bugaboo orang lain. Jika saya mendapati diri saya mengancam tim selama lima menit tentang mengapa unta itu jahat, saya menyerah saja dan menyerah sebagai ujian atas fleksibilitas pribadi saya.
Charles E. Grant
1
Saya berpendapat, bahwa kebanyakan programmer BERPIKIR bahwa konsistensi gaya memberikan kontribusi besar, tetapi sebenarnya tidak. Sepertinya memang seharusnya begitu, sangat menyebalkan melihat kode yang tidak cocok dengan gaya hewan peliharaan Anda, dan melalui serangkaian kode "membersihkannya" untuk masalah kosmetik kecil adalah cara yang baik untuk menunda-nunda. Begini, dulu saya juga ikut-ikutan sampai saya sadar saya fokus pada penyepuhan emas dan bukan penyampaiannya.
JohnFx
1
Saya bekerja dengan kode dari tim Jerman kami, beberapa proyek OSS dan beberapa kode kuno yang kami miliki serta barang-barang kami saat ini. Beberapa C, beberapa C ++, beberapa C #. Jadi saya harus bekerja dengan beberapa gaya kode yang berbeda sepanjang waktu. Ketika Anda melakukan itu, Anda menyadari betapa kecilnya pedoman gaya yang diamanatkan dalam standar. Jika saya dapat beralih dari satu proyek ke proyek lain, saya dapat menangani seseorang meletakkan {} mereka di tempat yang berbeda. Inilah mengapa saya pikir satu-satunya standar yang layak adalah standar dengan 1 aturan: "konsistensi dalam setiap proyek".
gbjbaanb
2

Saya punya 2 argumen untuk keseragaman:

  • Mempromosikan kepemilikan kolektif. Bahwa seseorang dapat mengedit kode orang lain tanpa takut bahwa "bayi" seseorang akan terluka oleh perubahan itu. Semacam mentalitas "Kita semua bersama-sama ini".

  • Kemudahan menambahkannya. Jika sesuatu telah dilakukan di tempat lain maka ini dapat diambil dan digunakan kembali mungkin. Kebiasaan tertentu dapat membantu membuat hal-hal lebih mudah dibaca atau diubah kadang-kadang jadi ini adalah manfaat lain bagi pikiran saya.

JB King
sumber