Penafian : Tidak berlebihan seperti judulnya, tapi itu masih membuat saya tidak nyaman. Saya hanya akan mengekspresikannya dengan jujur, jadi ambillah dengan sebutir garam. Hanya berpura-pura bahwa saya sedang berbicara tentang yang standar pengkodean yang Anda tidak suka bekerja dengan.
Sunting : Fakta bahwa saya tidak menyukainya, tidak berarti saya tidak menggunakannya atau menegakkannya.
Saya memutuskan untuk mengajukan pertanyaan ini dengan semangat bagaimana cara melampaui standar yang tidak Anda sukai, untuk tidak mendapatkan bantuan tentang bagaimana cara berdebat yang lebih baik bagaimana hal itu dapat diubah (walaupun ada komentar mengenai bagian terakhir ini dihargai). Selain itu, saya bekerja di perusahaan besar dan perubahan sesuatu yang telah berlangsung begitu lama dan yang sangat kecil tidak mungkin.
Standar tersebut adalah standar pembuka-keriting-kurawal-on-jalur-khusus:
somefunction()
{
//...
}
Alih-alih * jelas superior * (perhatikan nada bercanda / frustrasi):
somefunction() {
//...
}
Argumen pribadi saya yang menentang standar:
- Ini menggembungkan kode : baris tambahan yang tidak perlu
- Sulit diketik : walaupun mungkin ini hanya saya yang berjuang dengan standar, saya tahu satu keystroke tambahan tidak terlalu buruk.
- Tidak mudah dibaca : Saya mulai membaca deklarasi fungsi, jika pernyataan, atau pernyataan susunan ruang lingkup lainnya dan saya sudah tidak perlu mencari penjepit pembuka. Blok bersarang dengan standar ini hanya membuat saya marah karena suatu alasan.
- Digunakan oleh orang-orang yang berasal dari latar belakang Microsoft IDE : Saya pikir harus ada alasan yang diperdebatkan (atau lebih) di belakang standar, tidak hanya menerimanya dengan paradigma.
Argumen mereka (dan cara saya membalas secara internal kepada mereka):
- Lebih mudah dibaca karena Anda dapat melihat di mana blok mulai dan berakhir segera : Saya tidak dapat memahami ini, apa gunanya blok jika Anda tidak tahu apa yang dimilikinya, jadi Anda harus membaca ke belakang.
- Saya menggunakannya dalam Microsoft IDE dan saya menyukainya : Uhh ... ok?
- Ada dalam standar : * ngeri *
Apakah saya satu-satunya yang berjuang dengan pendirian yang tegas terhadap standar tertentu ?, bagaimana Anda bisa mengatasinya ?, apa pendapat Anda tentang standar apa yang seharusnya (hanya untuk bersenang-senang)?
sumber
Used by people who come from a Microsoft IDE background
Ini bukan hal Microsoft, misalnya Kernel Linux dan K&R menggunakan gaya yang sama.Jawaban:
Jika Anda ingin melupakan ini - ada kutipan dari Torvalds:
Sekarang pertimbangkan, di mana itu menempatkan programmer yang khawatir tentang hal sepele seperti gaya menguatkan ditegakkan oleh standar kode mereka? Apakah basis kode Anda sebaliknya begitu murni bahwa menguatkan adalah satu-satunya masalah yang layak untuk diperdebatkan?
sumber
Beberapa orang menyukainya dengan cara Anda dan yang lain tidak. Bagaimanapun seseorang akan merasa terganggu. Sekarang giliran Anda kali ini. Mengisapnya dan melanjutkan pekerjaan.
sumber
Apakah standar tim didokumentasikan? Jika ya, apakah ada alasan dalam panduan gaya? Jujur, saya harus menyedotnya satu ton kali dan menyelesaikan pekerjaan nyata. Ada masalah yang lebih buruk untuk dimiliki, tapi saya rasa Anda - itu masih peringkat (saya setuju dengan Anda pada gaya, omong-omong).
Apa yang membantu saya melewatinya:
sumber
Keunggulan dari satu konvensi di atas yang lain adalah * jelas sewenang-wenang * .
Masalah keterbacaan yang Anda hadapi, atau rekan satu tim Anda akan hadapi dengan standar Anda, hanyalah hambatan psikologis untuk berubah.
Argumen keterbacaan obyektif mendukung * konsistensi * di seluruh basis kode.
sumber
Pikirkan kembali ke masa ketika Anda yakin bahwa Anda benar tentang sesuatu dan selama periode waktu menyadari bahwa Anda salah, atau setidaknya Anda bereaksi berlebihan bertahun-tahun yang lalu. Pertimbangkan kemungkinan bahwa Anda mungkin salah lagi, dan berikan standar pengkodean baru atau waktu proses untuk meyakinkan Anda.
Standar saya sendiri mengamuk ketika saya masih baru dalam pengkodean (katakanlah lima tahun dalam karier saya) adalah apakah pengidentifikasi multi-kata harus
WrittenLikeThis
atau tidakwritten_like_this
. Saya bahkan tidak akan mengatakan yang mana yang saya sukai, tetapi intinya adalah bahwa setelah beberapa waktu saya berganti sisi dan setelah beberapa waktu lagi saya tidak peduli.sumber
Perbedaan standar yang Anda gambarkan dengan kurung kurawal sebagian besar bersifat arbitrer. Kedua cara itu sama-sama cara yang baik dan bagi perusahaan, selama semua orang melakukannya sama, itu semua baik.
"Jelas superior" yang Anda bicarakan adalah jenis superior yang dibicarakan orang ketika mereka membicarakan hal-hal "mereka terbiasa".
Anda akan terbiasa dengan itu segera dan dalam satu tahun atau lebih, cara lain akan "jelas lebih unggul".
Singkatnya: atasi saja.
sumber
Subjek khusus ini merupakan Perang Agama antara mereka yang lebih suka satu gaya daripada yang lain. Sangat sedikit orang yang ambivalen ...
Pada akhirnya, tidak ada yang benar dan tidak ada yang salah.
Panduan gaya dan standar pengkodean ada karena sejumlah alasan - dan satu aspek utama adalah untuk memastikan keseragaman tata letak, yang bertujuan untuk mengurangi jumlah kesalahan yang jelas, dan meningkatkan pemeliharaan.
Jawaban singkatnya adalah "Tidak" Anda bukan satu-satunya. Tetapi ada hal-hal yang lebih penting untuk dikhawatirkan. Bahkan dalam standar yang seseorang masukan, akan selalu ada kompromi - saksikan beberapa aspek yang membuatnya menjadi C99 dan C12 yang tidak masuk akal bagi saya.
Bahkan MISRA-C (yang memiliki pengaruh langsung terhadap saya) berisi hal-hal yang secara pribadi tidak saya setujui - tetapi saya bisa mengerti mengapa orang lain merasakan pembenaran untuk itu.
Dan di situlah letak jawabannya - daripada berfokus pada mengapa Anda tidak suka secara pribadi, coba dan pahami mengapa orang / orang yang menyetujuinya melakukannya.
Aturan biasanya diperkenalkan (di pintu kandang tertutup setelah kuda telah melesat semacam cara) untuk mengatasi masalah sebelumnya. Dan jika aturannya masih tidak masuk akal, bicaralah dengan pemilik standar dan cobalah dan "mendidik" mereka.
sumber
Saya pikir Anda hanya perlu melanjutkan. Saya akan mencoba menjawab catatan Anda dengan pendapat saya sendiri:
Kode bloat
Satu baris kode tambahan sama sekali bukan kode kembung, kecuali jika Anda menulis 100-an metode dalam satu kelas, itu akan menambah ratusan baris tambahan. Kemudian lagi jika Anda memiliki ratusan metode dalam satu kelas, Anda memiliki masalah lain sama sekali.
Sulit Diketik
Saya tidak bisa tidak setuju dengan Anda lagi tentang ini, Anda harus menekan tombol kembali untuk sampai ke baris berikutnya. Bagaimana dengan itu lebih sulit untuk mengetik?
Sulit dibaca
Saya merasa setiap baris dalam satu kode harus memiliki fungsi tertentu. Setelah ini, Anda perlu mendefinisikan nama metode dalam satu baris, kemudian buka dan tutup kurung pada baris mereka sendiri.
Digunakan oleh orang-orang yang berasal dari latar belakang MS IDE
Uhh ..... oke?
Singkatnya sepertinya Anda tertarik untuk menjadi pengembang .Net sebagai lawan dari jenis pengembang lainnya seolah-olah lebih rendah karena mereka menggunakan IDE yang default untuk standar ini.
sumber
Tentu saja tidak. Rapat untuk menentukan standar pengkodean itu mengerikan! Mereka berlarut-larut selama berjam-jam dan peserta secara pribadi diinvestasikan untuk mendapatkan favorit mereka sendiri (dan selalu salah, kecuali milik saya) idiosyncrasies diabadikan dalam standar. Pada akhirnya, tidak ada yang senang dengan hasilnya. Jika ada yang bisa lebih buruk daripada pertemuan standar pengkodean, itu adalah pertemuan tinjauan kode formal dalam beberapa bulan yang mengikuti penentuan standar: beberapa orang mencoba untuk mengadopsi standar, sementara yang lain (dengan sengaja atau tidak) mengabaikannya, dan Anda mendapatkan jam umpan balik seperti: Pada baris 132, 142, 145, 181, 195, dan 221 dari SillyFileConverter.cpp Anda meletakkan brace pembuka pada baris yang sama ketika standar pengkodean dengan jelas mengatakan bahwa itu harus di baris berikut !
Dengan caranya sendiri, pertemuan itu membantu. Sekalipun Anda bersimpati sepenuhnya pada pria yang meninggalkan brace pembuka pada baris yang sama dengan kondisional, atau apa pun, Anda tetap akan jengkel padanya karena membuang-buang waktu dengan tidak hanya menghisapnya dan mengikuti standar bodoh. Jika laki-laki itu adalah orang sok dan melakukan hal yang sama berulang-ulang, itu menjadi lebih menyebalkan. Menjadi jengkel pada perilaku itu membuatnya jauh lebih mudah untuk membenarkan menulis dengan gaya yang sedikit berbeda dari apa yang Anda inginkan - Anda tentu saja tidak ingin menjadi pria itu .
Bahkan jika Anda tidak mengalami tinjauan kode formal yang tak berkesudahan, Anda dapat mencoba meninjau kode Anda sendiri secara khusus untuk kepatuhan dengan standar. Tidak masalah apa yang Anda pikirkan tentang standar, Anda hanya membandingkan apa yang Anda tulis dengan apa yang dikatakan standar. Jika Anda menyalahkan diri sendiri setiap kali Anda gagal untuk mematuhi, itu mungkin memberikan beberapa umpan balik negatif yang Anda butuhkan untuk membantu Anda mengadopsi standar.
sumber
Dengan hal semacam ini saya ingat Gulliver di Lilliput. Para Lilliputian telah berperang untuk mengakhiri telur rebus. (The big endian asli, pertarungan endian kecil).
Ambillah sebagai kesempatan untuk menertawakan diri sendiri, mereka tidak cukup sering datang dalam bisnis.
sumber
Contoh khusus Anda tidak menguntungkan karena merupakan contoh yang disetujui oleh sebagian orang dan sebagian tidak. Saya tidak setuju dengan argumen Anda, misalnya, dan saya yakin begitu banyak orang lain, sama seperti saya yakin banyak orang lain akan setuju dengan mereka. Hampir membuat saya berpikir pertanyaan itu harus ditutup karena sangat subyektif.
Namun pertanyaan tentang cara menangani standar yang tidak Anda setujui mungkin lebih dapat dijawab. Saya pikir jawabannya adalah bahwa di mana pedoman gaya ada dan disepakati dan telah digunakan maka jawabannya hanya untuk menyeringai, menanggungnya dan hanya menghadapinya. Pertimbangkan bahwa memiliki konsistensi lebih penting. Jika pedoman ini tidak akurat atau salah, mungkin ada argumen untuk perubahan, tetapi ini bergaya sehingga tidak ada argumen yang benar-benar terpisah dari preferensi pribadi.
Saya berasal dari latar belakang Java awalnya jadi mengikuti standar yang Anda sebutkan. Saya kemudian pindah ke lebih banyak C ++ dan C # di mana gaya yang Anda benci digunakan. Tetapi tidak ada jawaban benar atau salah. Yang lebih penting adalah memiliki standar yang diikuti oleh semua orang. Jika standar pengkodean seperti ini dan tidak jelas salah maka mencoba untuk berdebat hanya akan menyebabkan gesekan dalam tim.
sumber
Formatter + check in hook adalah awal yang baik. Tapi itu tidak cukup, karena apa yang Anda tulis tidak sepenting apa yang Anda lihat sepanjang hari. Dalam beberapa situasi, pendekatan mode Kacamata Emacs ' - menyimpan file dalam gaya mereka tetapi menampilkan lebih dekat dengan gaya Anda - menarik.
Pengalaman saya dengannya - menghadapi persis masalah yang ditulisnya,
CamelCaps
vsunderscore_separated
- adalah bahwa itu dengan cepat menjadi lebih menjengkelkan daripada membantu, tetapi selama beberapa minggu itu memperlancar transisi saya untuk (dengan enggan) menerima gaya perusahaan, serta menyediakan outlet untuk menyalurkan kemarahan saya ("ah saya benci itu, biarkan saya menyesuaikan pengaturan lagi ... di sana, setidaknya saya melakukan sesuatu ") ;-)Bagaimanapun, mode Kacamata tidak menangani penempatan brace, Anda kemungkinan tidak menggunakan Emacs, dan tidak membaca kode secara eksklusif di editor Anda :-(
Tapi poin terakhir juga merupakan peluang - jika Anda membaca kode sebagian besar waktu di alat terpisah, Anda dapat meretas itu untuk mengubah gaya tanpa khawatir tentang memformat ulang round-trip noise - karena hanya baca! Khususnya, jika Anda membaca kode di beberapa antarmuka web, gunakan Greasemonkey.
Berikut adalah beberapa ide yang lebih mudah untuk mitigasi ringan:
Pilih font yang lebih luas tetapi tidak terlalu tinggi, untuk merebut kembali garis layar yang hilang.
Atur kurung kurawal untuk disorot dalam warna yang halus (dan font yang lebih kecil?), Membuatnya kurang terlihat dibandingkan kode lainnya. Lekukan harus cukup untuk membaca, khususnya. dengan ruang kosong dari
{
garis ...Pastikan editor Anda menyoroti penjepit pembuka yang cocok saat Anda selesai
}
- mungkin sedikit membantu ketika mata Anda secara naluriah pergi ke tempat yang salah.Re "sulit untuk mengetik": dapatkan editor sungguhan, konfigurasikan untuk membuka baris baru secara otomatis saat Anda menekan
{
.sumber
Jalani saja.
Ini jelas kosmetik dan tidak mengubah apa pun tentang kualitas kode atau produktivitas Anda sebagai pengembang. Tidak ada gunanya memulai pertengkaran.
Untuk standar pengkodean semacam itu, saya akan memilih konsistensi di seluruh basis kode dan keterbacaan terhadap pendekatan "keagamaan" tertentu apa pun (bahkan yang beralasan baik) setiap hari.
Memikirkannya sebagai keputusan demokratis dari mayoritas anggota tim tentang masalah yang tidak terlalu penting dapat membantu Anda mengatasinya.
sumber
Ini standar:
http://doh-san.blogspot.com/2005/10/five-monkeys.html
Sebagian besar orang mengatakan "standarnya" mengikuti prinsip "lima monyet".
sumber
Silakan saja dan gunakan gaya yang Anda inginkan. Kemudian gunakan beberapa pembuat kode untuk mengubah kode dalam format standar, atau kanan aplikasi kecil Anda sendiri yang akan mengubah kode dari gaya Anda ke gaya standar yang diberikan. Gunakan ahli kecantikan sebelum memeriksa kode.
Anda juga dapat melakukan sebaliknya untuk mengubah kode check in dari format standar ke format Anda, ketika Anda sedang mengerjakannya.
sumber