Seberapa penting gaya pengkodean yang baik untuk keputusan untuk menyewa seorang programmer? [Tutup]

15

Bahkan sebagai mahasiswa saya diminta untuk meninjau kode programer yang telah (belum) lulus ujian (membuat daftar angka Fibonacci di android).

Sementara saya sangat ketat pada gaya pengkodean saya hanya membaca tentang "blok" gaya yang digunakan seseorang (baca komentar!) .

Dalam posisi saya, saya akan merekomendasikan untuk tidak mempekerjakan seorang pria menggunakan gaya semacam ini. Kode ini sepenuhnya berlawanan dengan gaya pengkodean yang digunakan di perusahaan saya.

Saat mencari gaya pengkodean dan cara menghadapinya, saya ingin tahu tentang satu hal: Haruskah saya mempekerjakan seorang pria yang akan memilikimasalah serius mengadaptasi gaya pengkodean yang digunakan di perusahaan?

Tolong: Ini seharusnya tidak menjadi diskusi tentang gaya pengkodean secara umum dan mana yang lebih baik. Ini tentang pentingnya gaya pengkodean untuk keputusan untuk mempekerjakan seseorang!

Informasi lebih lanjut:

Saya bukan orang yang membuat keputusan, saya hanya memberikan pendapat saya berdasarkan kode. Pria itu harus lulus wawancara di mana kepala kita apa pun memeriksa keterampilan lunak. Jika dia lulus ini, dia harus lulus tes keterampilan kecil kita dan di situlah kadang-kadang saya diminta untuk meninjau kode tertulis. Saya tidak dalam posisi untuk mengatakan ya atau tidak. Saya hanya ingin tahu betapa pentingnya gaya pengkodean untuk ulasan saya ...

Warren Faith
sumber
9
Pintar. Alih-alih menghapus "masalah serius beradaptasi" (yang tidak didukung oleh fakta-fakta) menempatkan garis melalui itu. Seolah-olah itu benar-benar mengubah pernyataan tidak berdasar tentang sikap orang lain.
S.Lott
2
Gaya pengkodean adalah hal yang paling tidak penting yang harus Anda perhatikan. Bagaimanapun, itu hanya kode.
SK-logic
7
Saya mencoba membaca pertanyaan Anda, tetapi ternyata format Anda sulit untuk diikuti. Bisakah Anda menambahkan indentasi awal ke paragraf Anda. 'K THX BAI
dietbuddha
2
Konsistensi kode (atau kurang dari itu) adalah indikator. Misalnya jika seseorang tidak punya waktu untuk mengatur kode mereka, mereka mungkin juga tidak punya waktu untuk mencari tahu tempat yang tepat untuk melakukan proyek baru dalam subversi. Mereka mungkin tidak punya waktu untuk refactor. Daftarnya berlanjut.
Kevin
10
Gaya pengkodean sangat mudah disesuaikan. Ini seperti bertanya, "Orang ini memakai jas hitam, tapi di perusahaan kami, kami lebih suka karyawan memakai jas abu-abu gelap. Haruskah saya mempekerjakan mereka?" Katakan saja aturan gaya yang Anda miliki di perusahaan Anda. Masalah terpecahkan.
lucy berair

Jawaban:

41

Bagaimana Anda tahu bahwa dia akan kesulitan beradaptasi? Hanya karena mereka menggunakan gaya pengkodean yang berbeda? Itu cukup lancang. Saya telah menjadi kontraktor untuk waktu yang lama, dan tidak peduli apa gaya pengkodean yang digunakan, Anda beradaptasi. Mungkin butuh waktu, tetapi kebiasaan terbentuk cukup cepat.

Saya berharap bahwa dengan gaya pengkodean Anda tidak hanya berarti lekukan dan tata letak kode. Itu mudah ditangani dengan menggunakan pemformat kode dan mengintegrasikannya ke dalam sistem kontrol versi Anda.

Mengambil gaya pengkodean untuk mengartikan hal-hal seperti penamaan, pemesanan umum, pemisahan unit, dan segala sesuatu yang berkaitan dengan keterbacaan dan pemeliharaan, hal terpenting tentang gaya pengkodean adalah Anda memilikinya. Bukan yang mana. Tidak memiliki gaya pengkodean adalah tanda yang pasti.

Hal terpenting kedua tentang gaya pengkodean apa pun yang digunakan seseorang, adalah mereka menggunakannya secara konsisten. Ketika seseorang tampaknya menggunakan gaya pengkodean, tetapi sering "berdosa" terhadapnya, itu adalah tanda bahaya yang pasti.

Marjan Venema
sumber
5
+1 tidak memiliki satu, atau tidak menggunakannya secara konsisten adalah 'bendera merah', memiliki gaya yang berbeda tidak.
jv42
1
Saya setuju sepenuhnya pada "setidaknya gunakan secara konsisten". Itulah hal yang paling penting ketika saya meninjau kode. Tetapi Anda harus mengakui, bahwa gaya kode / format kode adalah kesan pertama yang Anda dapatkan ketika Anda melihat kode asing ...
WarrenFaith
3
@ WarrenFaith: jadi Anda menilai buku dari sampulnya? :-) Serius, ya itu memang memberi kesan pertama, tapi saya akan berasumsi bahwa ketika wawancara Anda akan berhati-hati untuk melihat lebih dari itu dan tidak melewatkan pengembang yang mampu hanya karena gayanya saat ini tidak cocok dengan Anda.
Marjan Venema
+1 untuk konsistensi: kurangnya gaya umumnya menunjukkan bahwa mereka belum banyak menulis. Ketika Anda menulis, Anda memilih kebiasaan.
Matthieu M.
1
Saya benci pembuat kode otomatis tetapi saya dapat menerima kebutuhan mereka. Mereka sepertinya hanya mengambil jeda baris di semua tempat yang salah. Ya, saya berbicara tentang gerhana.
Kevin
27

Setelah memprogram di ratusan proyek berbeda untuk hampir seratus pelanggan yang berbeda, izinkan saya menekankan satu hal.

Gaya pengkodean (dan kebawelan atas gaya pengkodean) adalah buang-buang waktu.

Lupakan saja.

Saya telah membaca banyak kode dari banyak programmer yang berbeda. (Asumsikan ukuran tim rata-rata 5 dan 100 tim yang berbeda. Itu 500 rekan kerja.) Gaya tidak masalah.

Saya telah melihat kode yang keliru namun cantik.

[Ada batasnya. Kebingungan yang disengaja adalah alasan untuk pemutusan hubungan kerja. Singkatnya, gaya adalah buang-buang waktu.]

Gaya pengkodean adalah "batas akhir"

Jika Anda telah menyelesaikan semua masalah pengembangan perangkat lunak; jika Anda dapat menghasilkan kode bebas kesalahan lebih atau kurang langsung; jika tingkat kualitas Anda sangat tinggi, Anda tidak lagi memiliki antrian perbaikan bug; jika kegunaan Anda sangat luar biasa, Anda tidak lagi memiliki meja bantuan; jika Anda dapat mengoptimalkan tanpa ampun ke titik di mana Anda tidak memiliki server server, tetapi jalankan perusahaan dari iPad ...

Ketika tidak ada yang tersisa untuk diperbaiki, Anda akhirnya bisa fokus pada gaya pengkodean.

Sampai saat itu, ada banyak masalah yang lebih besar dan lebih berharga daripada gaya.

S.Lott
sumber
2
@ WarrenFaith: Saya tidak bisa mengatakan ini dengan cukup kuat. Tidak masalah. Saya akan mengulangi poin saya. Saya telah membaca kode (secara profesional, untuk bayaran, jam yang dapat ditagih) dari ratusan dan ratusan programmer. Tidak masalah. Itu bukan kesan pertama: kebenaran dan kejelasan adalah kesan pertama.
S.Lott
2
@ WarrenFaith: Ketidakjelasan yang disengaja jarang terjadi. "Jika Anda tidak bisa membaca kode" adalah sesuatu yang mungkin menjadi masalah pembaca seperti halnya penulis. Saya akan mengulangi poin saya. Saya telah membaca kode (secara profesional, untuk bayaran, jam yang dapat ditagih) dari ratusan dan ratusan programmer. "Tidak bisa membaca" tidak pernah terjadi. Gaya tidak masalah.
S.Lott
2
Gaya pengkodean (dan kebawelan atas gaya pengkodean) adalah buang-buang waktu. - Saya setuju 100% pada poin kedua, dan sekitar 40% pada poin pertama. Gaya pengkodean itu penting - jika tidak ada gaya dalam pengkodean Anda sama sekali. Jika ada, tidak masalah seberapa tampilannya.
Treb
4
@ WarrenFaith: Saya sudah melihat sampel, dan saya tidak melihat apa pun di sana yang tidak jelas. Itu tidak diformat bagaimana saya bisa memformatnya, tetapi tidak ada apa pun di sana yang menunjukkan bahwa kode tidak akan berfungsi. Tidak ada yang tidak jelas tentang itu. Tidak ada yang menyarankan bahwa orang yang menulis tidak dapat atau tidak mau menyesuaikan diri dengan standar tim. @ S.Lott benar. Itu tidak masalah.
Joel Etherton
4
Dan menggunakan //Importantdi setiap baris. Ahem. Setiap baris kode penting atau harus dihapus.
S.Lott
7

Menilai programmer berdasarkan gaya pengkodean adalah 50% keangkuhan dan 50% ketidakamanan.

Saya suka kode saya terlihat rapi dan bersih, dan kedengarannya seperti orang yang di OP juga tidak. Kode kami tidak terlihat sama, tetapi kami berdua menggunakan gaya yang membantu kami untuk memahami kode ketika kami kembali ke sana. Saya sama sekali tidak kesulitan memahami kodenya dan saya ragu OP juga. Coding style "advice" tidak lain adalah pukulan murah yang mudah di mana Anda dapat menyampaikan kebijaksanaan besar Anda tentang mengapa kurung kurawal harus berada di baris berikutnya. Tidak masalah sama sekali. Apa yang membuat kode sulit dibaca adalah:

  • konvensi penamaan gila (atau ketiadaan) yang tidak menggambarkan apa yang mereka wakili.
  • aliran program gila yang membuatnya sulit untuk mengatakan apa yang terjadi (kebagian, coba / tangkap dengan logika bisnis, dll.).
  • fungsi sangat panjang yang melakukan lebih banyak hal daripada yang bisa dilacak oleh otak.

Saya kesulitan membayangkan kode apa pun yang tidak melakukan hal-hal yang tercantum di atas, tetapi masih sulit dibaca, terutama dengan alat seperti Style Cop.

Morgan Herlocker
sumber
7

Sangat konyol memiliki format kode menjadi faktor ketika memutuskan untuk mempekerjakan seseorang.

  1. Ada banyak faktor penting yang perlu dipertimbangkan.
  2. Sebagian besar pengembang dapat menyesuaikan gaya mereka.
  3. Jika formatnya penting, gunakan pemformat ulang kode dan pemeriksa serat.

Tidak mempekerjakan pengembang yang baik karena dia tidak menambah ruang setelah koma konyol.

dietbuddha
sumber
4

Saya kira Anda memiliki gaya pemformatan resmi di perusahaan.

Kemudian buatlah sangat mudah untuk memformat ulang sumber apa pun ke gaya resmi, dan lebih baik mewujudkannya secara otomatis setiap kali file sumber disimpan.

Setiap programmer yang menghargai garamnya akan tumbuh untuk mencintai ini karena memastikan kualitas yang lebih tinggi dengan meminimalkan perbedaan untuk komitmen.


sumber
lupa masalah komit ... dan ya, kami memiliki gaya pemformatan resmi dan juga pemformatan otomatis sebelum menyimpan.
WarrenFaith
@ Warren, well, lalu katakan demikian pada saat wawancara dan pastikan bahwa programmer mengerti bahwa ini penting. Maka terserah padanya untuk memenuhi janjinya jika dia ingin mempertahankan pekerjaan itu.
4

Gunakan StyleCop

Jika Anda menggunakan Visual Studio, Anda selalu dapat memaksa aturan StyleCop dengan kompilasi Anda yang akan memastikan bahwa kode Anda setidaknya dapat dibaca.

Saya menolak kode tidak terbaca yang bisa dibilang gaya non-standar , karena akan menjadi sangat sulit untuk mempertahankan di masa depan - bahkan oleh penulis sendiri. Ini telah terbukti berkali-kali di masa lalu.

Pemformatan kode terintegrasi CVS = solusi optimal

Akan sangat bagus jika ada CVS yang akan mendukung pemformatan kode otomatis saat check-in. Anda baru saja menetapkan prioritas gaya Anda, kode akan diformat sebelum disimpan. Itu akan membuat gaya khusus pengembang menjadi usang dalam hal pemformatan kode. Saya dapat melihat masalahnya jika beberapa pengembang menggunakan karakter lekukan yang berbeda. Tidak terlalu bermasalah bagi saya untuk melihat kode yang berbeda (dan saya dapat dengan mudah dan cepat memformatnya) tetapi DIFF menjadi lebih sulit untuk ditangani. Banyak positif palsu di alat DIFF.

Robert Koritnik
sumber
Jadi ... jika beberapa perusahaan menemukan standar kode C # mereka sendiri, apakah itu akan menjadi bendera merah?
Pekerjaan
1
@ Pekerjaan: Tidak harus karena StyleCop memungkinkan penambahan aturan tambahan. Saya tahu saya telah menulis dua dari mereka yang menerapkan TAB atas SPACE yang tidak ada di tempat pertama. Tetapi idenya adalah bahwa gaya pengkodean dapat dipaksakan yang akan membuatnya lebih mudah untuk memiliki kode seragam.
Robert Koritnik
Bagaimana jika gaya mereka pergi lagi dari StyleCop, dan jika mereka tidak menggunakan StyleCop sama sekali - akankah itu?
Ayub
@Pekerjaan. Kecuali seseorang tidak menulis kode C # seolah-olah itu Fortran lama (80 kolom tata letak tetap siapa pun?) Maka saya masih berpikir bahwa gaya pengkodean dapat diminta untuk dipatuhi. Jika seseorang adalah pengembang yang hebat, Anda dapat mengingatkan mereka untuk meningkatkan gaya mereka (atau membiarkan mereka membenarkan gaya mereka daripada gaya kita ). Untuk itulah meninjau kode. Kode apa pun dapat diformat ulang dengan cepat tetapi setidaknya konvensi penamaan harus diikuti. Tapi itu tidak berarti bendera merah untuk disewa. Seharusnya tidak.
Robert Koritnik
3

Jauh di bawah rincian yang jauh lebih penting berikut ini:

  • Team Fit
  • Kemampuan Memecahkan Masalah
  • Komunikasi

Gaya pengkodean dapat dipelajari oleh sebagian besar orang yang memiliki dua daftar terakhir di atas.

Namun, saya biasanya melihat contoh kode sebelum wawancara terakhir, dan jika gaya pengkodean jauh dari apa yang kami gunakan, saya akan fokus pada pertanyaan yang memperlihatkan kemampuan mereka untuk beradaptasi.

pdr
sumber
Dalam kasus saya, sering kali ini satu-satunya hal yang saya lihat dari pria itu ...
WarrenFaith
@ WarrenFaith - Ok, tapi Anda tidak akan pernah membuat keputusan sendiri untuk mempekerjakan seseorang berdasarkan informasi yang begitu sedikit, bukan? Anda hanya dimintai pendapat.
pdr
Benar. Saya memberikan pendapat saya dari sudut pandang teknis dan soft skill juga penting. Dan kami hanya menguji pria yang setidaknya lulus "tes" soft skill dalam wawancara. Tapi saya ingin tahu tentang dampak gaya pengkodean terhadap pendapat saya ...
WarrenFaith
@ WarrenFaith - di posisi Anda, saya akan menyebutkannya, tetapi sebagai sidenote daripada sesuatu yang sangat penting.
pdr
Saya pada dasarnya hanya membuat daftar pro dan kontra dan saya menjelaskan dan membenarkannya untuk CTO kami. Keputusan akhir terserah padanya ...
WarrenFaith
3

Selama gaya itu konsisten dan orang itu mampu beradaptasi (berubah) dengan gaya lain, saya tidak melihat masalah.

Jika gaya saat ini berbeda dari apa yang Anda gunakan, itu tidak berarti buruk. Untuk kandidat, mungkin masuk akal.

Seperti yang dikatakan orang lain, kesulitan beradaptasi mungkin satu-satunya masalah.

Victor Hurdugaci
sumber
0

Saya tidak akan mengatakan bahwa ini adalah tidak ada perekrutan yang pasti, tetapi ini adalah argumen yang kuat terhadap orang ini.

Saya tidak akan benar-benar khawatir tentang gaya pengkodean, tetapi tentang ketidakmampuan ini untuk beradaptasi menjadi gejala dari masalah umum. Saya takut calon akan kesulitan beradaptasi dengan aspek lain dari budaya tim.

Jika Anda tidak dapat menggunakan gaya pascal sebagai ganti casing gaya unta, maka Anda mungkin akan kesulitan mengingat untuk memulai setumpuk kopi baru jika Anda ingin mengambil cangkir terakhir. Hal semacam itu bisa sangat berbahaya bagi tim.

(Dan ya, saya adalah pecandu kafein.)

Treb
sumber
Masalah yang muncul dengan "gaya pengkodean yang buruk" sering kali adalah pengalaman yang kurang. Ketika saya melihat kebanyakan pemula, mereka sering kekurangan apa pun yang bisa disebut gaya pengkodean.
WarrenFaith
?? "argumen kuat terhadap orang ini" ... "sebenarnya tidak perlu khawatir tentang gaya pengkodean". Yang mana itu? Apakah itu penting atau tidak? Sulit untuk menjawab dari jawaban apa saran Anda. Bisakah Anda mengklarifikasi?
S.Lott
@ S.Lott: Yang mana itu? - Ya tentu saja keduanya. Gaya pengkodean yang buruk adalah kebiasaan yang buruk, kebanyakan orang bisa belajar menghilangkannya. Saat itulah mereka tidak dapat (atau tidak mau) mengetahui bahwa Anda memiliki masalah.
Treb
0

Menurut pendapat saya, gaya kode yang baik sangat penting bagi seorang programmer untuk bekerja dengannya.

Memiliki gaya kode yang baik adalah masalah pengembangan pribadi. Ini adalah indikator level mana yang sudah dicapai oleh programmer ini.

Pertanyaannya adalah apakah perusahaan Anda menginginkan "profesional tinggi" atau "karyawan berpotensi besar". Jika Anda membutuhkan "profesional tinggi" dan tidak ada ruang untuk belajar dan berkembang - gaya kode adalah kriteria knock out.

Jika ada ruang untuk pengembangan dan pengembangan programer Anda sebaiknya menjaga kemampuannya untuk belajar cepat atau berpikir kreatif.

florianb
sumber