Saya selalu mendukung gagasan memiliki aturan pengkodean untuk pengembang di perusahaan atau proyek tertentu. Apalagi jika ukuran perusahaan lebih besar dari 10. Semakin besar perusahaan semakin besar kebutuhan. Saya tahu banyak orang akan tidak setuju, tetapi saya telah melihat proyek yang tidak memilikinya dan kode ini terlihat seperti bencana total.
Masalah sebenarnya yang datang dari ini adalah bagaimana membuat mereka yang keras kepala yang tidak suka menggunakan tanda kurung di dalam pernyataan, atau menggunakan string koneksi yang sama di mana-mana dalam kode, atau apa pun, untuk menggunakan aturan pengkodean tanpa membuat mereka menentang ide?
coding
coding-standards
coding-style
company
TheBoyan
sumber
sumber
Jawaban:
Libatkan mereka dalam memperbaiki masalah alih-alih melawan aturan. Saya pribadi lebih suka ide "panduan gaya", "standar pengkodean" atau sesuatu yang serupa, dengan harapan dapat mencegah reaksi "aturan = buruk".
Tetapi bahkan jika itu terjadi - saya cenderung berpikir bahwa aturan itu ada karena suatu alasan, dan cara untuk membuat orang berkepala keras berbalik adalah untuk membuat mereka menyadari bahwa dengan mengikuti pedoman, mereka membantu membuat kode lebih mudah untuk baca untuk semua orang.
Terkadang tekanan teman sebaya adalah solusi terbaik untuk ini.
sumber
Di pekerjaan saya, kami menggunakan ketiga solusi berikut:
1) Mengadopsi pemeriksa gaya kode seperti Checkstyle yang sangat baik (untuk Java) atau StyleCop (untuk C #). Ini adalah alat yang mudah dikonfigurasi yang dapat secara otomatis menyoroti penyimpangan gaya / aturan koding. Ini memberi semua orang pihak ketiga yang netral untuk menentukan apa yang bisa dan tidak bisa diterima.
2) Mengadopsi templat kode memformat simpan otomatis (inilah contoh menggunakan Eclipse) (dan yang lain untuk Visual Studio) yang akan secara otomatis memformat kode Anda saat disimpan. Ini bagus untuk memungkinkan seseorang untuk kode sesuai keinginan mereka, tetapi memiliki semua kode diformat dengan cara yang sama pada save / commit. Saya sangat suka yang ini dan kode kami tidak pernah lebih konsisten.
3) Ulasan kode. Semoga Anda tetap melakukan ini, tetapi satu hal yang harus disorot adalah di mana aturan pengkodean / gaya melanggar konvensi.
Selain hal di atas, penting bahwa setiap orang berada di kapal yang sama dan telah menyetujui gaya / aturan yang sedang mereka upayakan. Jelaskan bahwa Anda tidak akan mendapatkan persetujuan dari semua orang dalam segala hal, tetapi mintalah komitmen dari tim untuk berpegang teguh pada apa yang diputuskan tim. Pastikan untuk sesekali meninjau gaya / aturan yang dipilih untuk menjelaskan pengalaman dunia nyata menggunakannya dan pergantian tim.
sumber
Apakah mereka "keras kepala" dengan tidak menggunakan tanda kurung atau ini permintaan "keras kepala"?
Pilih pertempuran Anda. Saya ragu ini adalah salah satu yang layak dipetik. Saya tidak akan menikmati bekerja di mana pun yang diharapkan mendekati tingkat detail ini pada "kode masuk pertama". Ini adalah indikator bendera merah bahwa tim tidak memahami refactoring.
OO 101 : "Refactor ketika produk melakukan apa yang perlu dilakukan". Tidak sebelum.
sumber
Cukup sulit untuk duduk di pundak setiap pengembang tunggal dalam tim besar, memastikan mereka menempatkan penyangga di mana Anda pikir mereka harus pergi - percayalah pada yang satu itu;).
Jika itu sesuatu yang Anda benar-benar rasakan menghambat perkembangan Anda, maka Anda akan membutuhkan "penjaga gerbang". Jangan biarkan orang-orang check-in tanpa ulasan kode misalnya. Mintalah arsitek teknis atau pemimpin tim untuk meninjau kode dan menolaknya sampai mereka "memperbaiki" gaya kode. Mereka akan segera bosan dengan ini dan menyesuaikan dengan aturan, meskipun, mungkin hanya selama mereka diperiksa.
Tentu saja, beberapa perusahaan mengambil hak akses masuk sepenuhnya dari programmer junior. Ketika mereka akhirnya mempelajari aturan pengkodean perusahaan, maka mereka mendapatkan hak istimewa.
sumber
Saya pikir Anda berbicara tentang masalah pada tingkat yang sangat berbeda:
Itu sebagian besar masalah gaya / keterbacaan, kecuali ada masalah prioritas operator yang diutamakan. Yang terakhir seharusnya tidak terlalu umum, dan masih dapat diuji unitnya, sehingga mudah untuk diperbaiki. Yang pertama dapat dengan mudah mundur ke dalam Perang Suci dengan sedikit untuk mendapatkan, tetapi konsekuensi negatif yang parah terhadap semangat tim. Jadi berhati-hatilah - hanya push yang mencoba dan menguji aturan, yang telah diterima oleh setidaknya beberapa tim / komunitas dan terbukti berhasil.
Jika yang Anda maksud adalah Magic Constants, itu memang masalah pemeliharaan (plus berpotensi keamanan), dan dengan demikian IMHO, pengembang berpengalaman mana pun akan memahami dan menerima bahwa itu adalah Masalah Buruk.
Anda tidak dapat memaksa orang untuk setuju dengan aturan pengkodean apa pun - satu-satunya kesempatan Anda adalah mencapai pemahaman bersama dan persetujuan dari anggota tim melalui diskusi dan (kadang-kadang sengit) debat . Anda perlu menggunakan argumen logis dan meyakinkan , menunjukkan nilai di balik setiap aturan, dan menjelaskan bagaimana mengikuti akan membayar untuk ketidaknyamanan menyesuaikan kebiasaan yang sudah tertanam. Di sisi lain, berusaha untuk membuat transisi semudah mungkin , dengan misalnya memperkenalkan pemformatan kode otomatis saat check-in, sesuai dengan aturan yang berlaku.
Namun, kadang-kadang Anda hanya perlu menerima bahwa orang memiliki pendapat yang berbeda , sehingga aturan pengkodean yang dapat diterima setiap orang akan lebih lunak dalam hal tertentu. Terima itu dan fokuslah pada bidang-bidang di mana Anda dapat meningkatkan hal-hal dengan sedikit usaha.
sumber
Libatkan mereka dalam membuat aturan. Ini biasanya membantu mendorong orang untuk mengikuti mereka.
sumber
Inilah tujuan dari tinjauan kode. Peninjau kode tidak boleh membiarkan kode lulus yang tidak memenuhi standar. Pastikan untuk tidak mengendurkan aturan untuk perbaikan yang mendesak. Harus mengulang beberapa kali di bawah tekanan untuk menyelesaikannya akan memperbaiki mereka yang enggan untuk melakukan pekerjaan mereka dengan benar pertama kali.
sumber
String koneksi yang sama di mana-mana? Solusi untuk itu adalah melakukan refactor hingga Anda telah menghapus semua duplikasi. Copy-paste coders harus masuk ke penjara programmer. (Jangan tertawa! Steve Ballmer adalah sipir.)
Tapi masalah sebenarnya di sini adalah kata kerja "make" Anda . Anda tidak dapat membuat programmer melakukan apa pun, dan jika Anda melakukannya, Anda menyia-nyiakan karakteristik mereka yang paling berharga: keterlibatan intelektual yang dalam yang berasal dari mengerjakan sesuatu yang Anda pedulikan.
Cara saya menyelesaikannya:
Pemrograman adalah olahraga tim, atau karya artistik kolektif. Apa yang disepakati orang tidak terlalu penting seperti yang mereka sepakati, dan pandai mencapai kesepakatan baru jika diperlukan.
sumber