Apa yang harus Anda lakukan, jika rekan kerja mengedit kode Anda?
Tanpa tujuan menambahkan fungsionalitas atau memperbaiki bug, hanya untuk mengubah tampilannya ...
Apa yang harus Anda lakukan, jika rekan kerja mengedit kode Anda?
Tanpa tujuan menambahkan fungsionalitas atau memperbaiki bug, hanya untuk mengubah tampilannya ...
Jawaban:
Bicaralah dengan mereka tentang hal itu. Pergilah ke percakapan dengan sikap "Mereka tidak melakukan ini untuk mengganggu saya atau karena mereka memiliki semacam gangguan obsesif-kompulsif; mereka berusaha membuat kode saya lebih baik."
Karena kamu bisa saja salah. Itu bisa menjadi perbaikan bug halus dan Anda tidak menemukannya.
Atau, bisa jadi ada standar pengkodean yang Anda tidak tahu tentang yang Anda langgar, dan mereka hanya memperbaikinya.
Atau, bisa jadi mereka mencoba mengganggu Anda, atau mereka memiliki semacam gangguan obsesif-kompulsif. Jika itu masalahnya, mintalah mereka dengan baik untuk berhenti, dan jika itu tidak berhasil, bawalah bersama bos Anda.
Tetapi Anda tidak akan pernah tahu kecuali jika Anda bertanya.
Saya tidak begitu menikah dengan bagaimana kode saya terlihat mengganggu saya. :) Saya mencoba belajar dari perubahan. Apakah rekan kerja saya menyesuaikan nama variabel? Tulis loop yang lebih efisien? Membuat kode lebih mudah dibaca?
Jika saya tidak dapat melihat bagaimana perubahan meningkatkan apa yang sudah ada di sana, saya biasanya bertanya kepada rekan kerja yang membuat perubahan apa motivasi di balik mereka. Mungkin saja keuntungannya tidak jelas bagi saya. Dan jika saya benar dan mereka salah, maka mungkin saya bisa menjelaskan mengapa saya menulisnya seperti yang saya lakukan.
Jika semuanya gagal, kembalikan check-in. ;)
Sunting: Semua taruhan dibatalkan jika keinginan untuk melakukan perubahan kosmetik memperkenalkan bug.
Bagaimanapun, Anda dan tim Anda harus menggunakan standar pengkodean. Jika demikian, maka pertanyaannya adalah 'apakah kode asli Anda sesuai dengan standar?' Jika 'ya' maka kolega Anda tidak boleh menyentuh kode Anda kecuali mengubahnya secara fungsional. Jika 'tidak' maka saya khawatir kolega Anda memiliki hak untuk merapikan kode Anda. Sebagai pemimpin proyek saya mendapati diri saya melakukannya sepanjang waktu.
Jika Anda tidak menggunakan standar pengkodean maka seluruh argumen dari apa yang merupakan 'kode yang baik' menjadi terlalu subyektif. Karenanya mengapa Anda harus menggunakan standar pengkodean :)
Sebagai salah satu dari orang - orang itu (orang-orang yang sesekali memformat ulang kode orang lain), alasan utama saya melakukannya adalah keterbacaan. Beberapa orang hanya sangat ceroboh dengan lekukan mereka atau dengan tab dan spasi pencampuran.
Hal utama yang saya punya kebiasaan untuk mengubah adalah mengurangi garis panjang sehingga saya bisa membaca semuanya tanpa menggulir secara horizontal. Saya akan memecah pernyataan kompleks menjadi pernyataan terpisah atau memformat ulang pemanggilan / pernyataan metode untuk membuat daftar satu parameter per baris jika tidak semua cocok dengan nyaman pada satu baris. Saya juga akan mengedit komentar, baik untuk memperbaiki kesalahan bahasa Inggris atau hanya untuk membuat semuanya lebih jelas.
Ya, saya bisa membiarkannya sendiri, tetapi saya lebih suka mengurangi upaya mental yang diperlukan untuk membaca kode.
Apa yang harus Anda lakukan? Pertama, pertimbangkan bahwa mungkin orang ini membuat kode Anda lebih baik. Juga, Anda harus memastikan bahwa Anda memiliki beberapa konsensus di tim Anda tentang bagaimana kode harus diformat. Jika setiap orang memiliki kebiasaan yang berbeda, itu akan memperlambat semua orang. Jika mereka tidak membuat kode Anda lebih baik dan mereka menentangnya, maka Anda perlu menghadapi mereka tentang hal itu. Jika itu tidak berhasil maka Anda mungkin perlu melibatkan orang lain.
Tanyakan kepada mereka mengapa mereka melakukannya; penjelasan yang valid dapat mengurangi frustrasi Anda, tetapi Anda harus memberi tahu mereka betapa hal itu mengganggu Anda. Siapa tahu, mungkin mereka mengira mereka melakukan sesuatu untuk Anda dan akan berhenti ketika mereka tahu itu menyinggung Anda. Atau Anda mungkin berurusan dengan seseorang yang benar-benar menderita kondisi medis.
Apakah dia diizinkan? Apakah perubahan meningkatkan kode? Jika demikian, telan harga diri Anda. Jika Anda merasa kualitas kode diperburuk, bawalah bersama rekan kerja dan tanyakan kepada mereka mengapa mereka merasa perlu mengubah kode Anda tanpa manfaat yang jelas. Jika itu dilakukan karena dendam atau karena orang itu secara keliru merasa mereka lebih baik daripada Anda, dan Anda tidak bisa menyelesaikannya dengan mereka, bawalah itu dengan bos Anda.
IDE Studio seperti Visual memiliki opsi yang disebut Format Document
yang akan memformat kode sesuai dengan aturan yang telah ditetapkan pengguna dalam IDE. Bisa jadi rekan kerja Anda menggunakan ini (baik secara otomatis tanpa mengetahui, atau dengan aplikasi yang disengaja). Mungkin IDE mereka menggunakan spasi alih-alih tab, atau sebaliknya, dan ini diterapkan secara otomatis tanpa sepengetahuan? Tetapi Anda perlu berbicara dengan mereka untuk mengetahuinya.
Kebetulan, saya akan sering memformat ulang kode rekan kerja jika jelas tidak mengikuti semacam skema format (yaitu semuanya ada di mana-mana). Semoga cara halus membuat mereka memperhatikan. (Namun, saya tidak akan memformat ulang jika rapi, tetapi tidak sesuai dengan keinginan saya).
Jika dia mengubahnya sehingga memenuhi standar pengkodean tim Anda, Anda harus mengikuti standar di waktu berikutnya.
Jika dia mengubahnya sedemikian rupa sehingga tidak lagi mengikuti standar pengkodean tim Anda, beri tahu dia apa yang dia lakukan salah dan minta dia mengubahnya kembali.
... Tim Anda memang memiliki seperangkat standar pemformatan kode yang digunakan oleh semua orang, bukan?
Saya sesekali menyusun ulang kode yang ditulis oleh rekan kerja yang berantakan (atau memperbaiki kesalahan ketik dalam komentar). Mereka tahu bahwa saya terobsesi dalam memformat dan memesan kode dan karena itu mereka membiarkan saya melakukan itu tanpa mengeluh terlalu banyak. Terkadang mereka juga memberi saya soda atau kue gratis.
Tentu saja ini adalah pekerjaan sesekali , karena melanggar fungsi "menyalahkan" di SVN.
Ini juga merupakan cara yang sangat mendasar untuk melakukan semacam review kode (saya biasanya membaca sebagian besar kode yang dilakukan oleh rekan kerja saya di modul yang saya kerjakan).
Konvensi kode adalah yang jawabannya. Anda harus punya satu di tempat kerja. Jika tidak, mulailah sekarang (titik awal yang baik adalah panduan gaya google ). Ketika ada aturan tertulis (atau paling tidak diketahui secara umum), jawaban untuk pertanyaan Anda sepele.
Saya merasa Anda berpikir itu ofensif untuk melakukannya ...? Sebagai contoh, saya sendiri akan segera memperbaiki kode ini
int myFunction( ) {
int i ;
return 0;
}
untuk menjadi
int myFunction() {
int i;
return 0;
}
jadi ... haruskah saya dihukum karena tindakan saya? Dalam kehidupan nyata, saya sebenarnya memiliki banyak log SVN yang membaca 'Format'. ;-)
Mulai menggunakan StyleCop atau yang serupa dan menegakkan aturan gaya kode dan juga menjadikannya kewajiban bagi semua pengembang untuk menggunakannya. Semua kode akan terlihat sama tanpa kecuali. Dan bertemu dengan orang bijak untuk membahas aturan paling tepat untuk organisasi Anda. Meskipun aturan default sudah sangat mirip dengan kode kerangka kerja bersih itu sendiri.
Ini cara termudah untuk melakukannya. Saya menemukan diri saya memperbaiki kode orang lain di salah satu majikan saya sebelumnya karena orang ini sedang menulis kode dengan jumlah baris kosong yang berlebihan dan tidak ada aturan lekukan sama sekali. Kode sebenarnya tidak dapat dibaca oleh pengembang rata-rata. Jika StyleCop akan ada kembali maka itu akan membuat banyak dari kita benar-benar bahagia.
ini adalah pemikiran yang saya lihat di internet berbicara tentang refactoring dan mungkin menjelaskan mengapa seseorang menyentuh kode Anda untuk membuatnya lebih baik:
Mengapa?
Ada dua alasan utama untuk refactor:
Untuk meningkatkan kode / desain sebelum membangun di atasnya: Sangat sulit untuk membuat kode yang bagus pada upaya pertama. Percobaan pertama untuk mengimplementasikan desain awal apa pun akan menunjukkan kepada kita bahwa kita salah menafsirkan atau melupakan beberapa logika.
Untuk beradaptasi dengan perubahan persyaratan. Perubahan terjadi dalam pengembangan perangkat lunak; untuk responsif terhadap perubahan lebih baik memiliki basis kode yang baik. Kami memiliki dua opsi untuk kedua skenario, jalur kode atau refactor itu. Menambal kode akan membawa kita ke kode yang tidak dapat dipelihara, dan akan meningkatkan hutang teknis kita, selalu lebih baik untuk melakukan refactor.
Kapan?
Semakin cepat semakin baik semakin mudah.
lebih cepat dan lebih tidak berisiko untuk melakukan refactor terhadap kode yang baru saja di-refactored daripada menunggu refactor agar kode tersebut hampir selesai.
Apa?
Semua kode dan semua desain adalah kandidat untuk refactoring.
Pengecualian untuk tidak refactoring sesuatu bisa menjadi potongan kode kerja yang kualitasnya rendah, tetapi karena mendekati tenggat waktu, kami lebih memilih untuk menjaga hutang teknis kami daripada mempertaruhkan rencana.
Anda hanya harus membiarkan dia melakukan yang terbaik, jika itu akan bagus untuk keduanya dan menghemat waktu Anda di masa depan!
Bersulang