Beberapa waktu yang lalu, saya mengajukan pertanyaan pada SO tentang sesuatu yang ditulis dalam C ++, tetapi alih-alih mendapatkan jawaban atas masalah yang ada, komentarnya menjadi gila pada gaya pengkodean saya, bahkan ketika saya menunjukkan bahwa itu adalah sepotong kode WIP dan aku bermaksud membersihkannya nanti ketika base case-ku berjalan. (Saya mendapat begitu banyak suara sehingga saya memutuskan untuk menarik pertanyaan, karena perwakilan saya pada SO sudah hampir-hampir buruk)
Itu membuat saya bertanya-tanya mengapa orang mengadopsi sikap keras seperti "Anda seorang noob, pergi bercinta sendiri". Saya dituduh menulis C ++ seolah-olah itu Java. Sesuatu yang tidak bisa saya mengerti, dan itu masih membingungkan saya.
Saya telah memprogram dalam beberapa bahasa OOP selama beberapa tahun sekarang, meskipun secara berkala. Saya memilih bahasa yang akan digunakan dalam hal perpustakaan yang tersedia dan lingkungan eksekusi yang optimal untuk pekerjaan yang dihadapi. Saya mengadopsi pola desain dalam kode OOP dan saya cukup yakin bahwa penggunaan pola saya adalah suara dan bahwa OO bijaksana, saya dapat menahan saya sendiri. Saya mengerti kotak alat OOP, tetapi memilih untuk menggunakan alat hanya ketika saya pikir itu benar-benar diperlukan, bukan hanya menggunakan trik yang rapi untuk menunjukkan kecerdasan kode saya. (Yang saya tahu bukan kedudukan tertinggi, tapi saya pikir juga tidak di level n00b).
Saya mendesain kode saya sebelum menulis satu baris. Untuk menentukan tes, saya mencantumkan tujuan dari kelas tertentu, dan kriteria tes yang harus dipatuhi. Karena lebih mudah bagi saya untuk membuat diagram urutan dan kemudian menulis kode, saya memilih untuk menulis tes saya setelah antarmuka menjadi jelas.
Saya harus mengakui bahwa dalam bagian kode yang saya posting dalam pertanyaan, saya masih menggunakan pointer, daripada menggunakan pointer pintar. Saya menggunakan RAII kapan pun saya bisa. Saya tahu RAII yang tepat berarti melindungi terhadap nullpointers, tetapi saya bekerja secara bertahap. Itu adalah pekerjaan yang sedang berjalan dan saya bermaksud untuk membersihkannya nanti. Cara kerja ini sangat dikecam.
Dalam pandangan saya, saya harus memiliki contoh kerja terlebih dahulu sehingga saya dapat melihat apakah kasus dasar adalah cara berpikir yang layak. Saya juga kebetulan berpikir bahwa membersihkan kode adalah sesuatu yang khas dari fase refactoring lincah, setelah kasus dasar telah terbukti. Saya harus mengakui bahwa walaupun saya perlahan mendapatkan standar Cxx, saya lebih suka menggunakan apa yang saya pahami, daripada mengambil risiko menggunakan konsep yang belum saya kuasai dalam kode produksi. Saya mencoba hal-hal baru sesekali, tetapi biasanya dalam proyek bermain yang saya miliki di samping, hanya untuk tujuan itu.
[Sunting] Saya ingin mengklarifikasi bahwa saran nyamuk [1] tidak muncul dalam pencarian yang saya lakukan sebelum saya mulai mengajukan pertanyaan saya. Namun, meskipun sarannya mencakup satu aspek pertanyaan, pertanyaan yang ia kaitkan tidak menjawab inti pertanyaan saya, hanya sebagian saja. Pertanyaan saya adalah lebih lanjut tentang respons yang saya dapatkan pada gaya pengkodean saya dan aspek profesional dalam menangani berbagai gaya pengkodean dan (jelas) tingkat keterampilan. Dengan pertanyaan saya sebelumnya pada SO dan itu respons sebagai kasus yang tepat. [/ edit]
Pertanyaannya kemudian adalah: mengapa mencemooh seseorang yang tidak menggunakan gaya pengkodean Anda?
Hal-hal / subdivisi yang tersedia bagi saya adalah:
- Mengapa praktik pemrograman yang buruk menggunakan lebih banyak kode rawan kesalahan dalam situasi prototipe, jika refactoring membuatnya lebih kuat sesudahnya?
- Bagaimana program yang ditulis dalam C ++ dapat seperti itu ditulis dalam Java? Apa yang menjadikannya program yang buruk, (mengingat saya menunjukkan maksud gaya saat ini dan pekerjaan yang direncanakan untuk ditingkatkan?)
- Bagaimana saya akan menjadi profesional yang buruk jika saya memilih untuk menggunakan konstruk yang digunakan dalam paradigma pemrograman tertentu (misalnya OOP / DP)?
int
variabel terpisah untuk melacak panjang sebenarnya.