Saya telah menjadi pembuat kode profesional selama beberapa tahun. Komentar tentang kode saya pada umumnya sama: menulis kode yang bagus, teruji dengan baik, tetapi bisa lebih cepat .
Jadi, bagaimana cara menjadi pembuat kode yang lebih cepat, tanpa mengorbankan kualitas? Demi pertanyaan ini, saya akan membatasi cakupan ke C #, karena itulah yang saya kode (untuk bersenang-senang) - atau Java, yang cukup mirip dalam banyak hal.
Hal-hal yang sudah saya lakukan:
- Tulis solusi minimal yang akan menyelesaikan pekerjaan
- Tulis banyak tes otomatis (cegah regresi)
- Tulis (dan gunakan) perpustakaan yang dapat digunakan kembali untuk semua jenis hal
- Gunakan teknologi terkenal di mana mereka bekerja dengan baik (mis. Hibernate)
- Gunakan pola desain yang sesuai dengan tempatnya (mis. Singleton)
Ini semua hebat, tetapi saya tidak merasa kecepatan saya meningkat seiring waktu. Saya melakukan perawatan, karena jika saya bisa melakukan sesuatu untuk meningkatkan produktivitas saya (bahkan oleh 10%), yang 10% lebih cepat dari pesaing saya. (Bukan berarti aku punya.)
Selain itu, saya secara konsisten mendapatkan balasan ini dari manajer saya - apakah itu pengembangan Flash skala kecil atau pengembangan Java / C ++ perusahaan.
Sunting: Tampaknya ada banyak pertanyaan tentang apa yang saya maksud dengan cepat, dan bagaimana saya tahu saya lambat. Izinkan saya mengklarifikasi dengan lebih detail.
Saya bekerja di tim kecil dan menengah (5-50 orang) di berbagai perusahaan di berbagai proyek dan berbagai teknologi (Flash, ASP.NET, Java, C ++). Pengamatan manajer saya (yang mereka katakan langsung kepada saya) adalah bahwa saya "lambat."
Sebagian dari ini adalah karena sejumlah besar teman saya mengorbankan kualitas untuk kecepatan; mereka menulis kode yang bermasalah, sulit dibaca, sulit dirawat, dan sulit untuk menulis tes otomatis. Kode saya pada umumnya terdokumentasi dengan baik, dapat dibaca, dan dapat diuji.
Di Oracle, saya secara konsisten akan menyelesaikan bug lebih lambat daripada anggota tim lainnya. Saya tahu ini, karena saya akan mendapatkan komentar untuk efek itu; ini berarti bahwa pengembang lain (ya, yang lebih senior dan berpengalaman) dapat melakukan pekerjaan saya dalam waktu yang lebih singkat daripada yang saya perlukan, dengan kualitas yang hampir sama (mudah dibaca, rawatan, dan dapat diuji).
Mengapa? Apa yang saya lewatkan? Bagaimana saya bisa menjadi lebih baik dalam hal ini?
Tujuan akhir saya sederhana: jika saya dapat membuat produk X dalam 40 jam hari ini, dan saya dapat meningkatkan diri saya sehingga saya dapat membuat produk yang sama pada 20, 30, atau bahkan 38 jam besok, itu yang ingin saya ketahui - bagaimana saya sampai di sana? Proses apa yang dapat saya gunakan untuk terus meningkatkan? Saya pikir itu tentang menggunakan kembali kode, tapi sepertinya itu tidak cukup.