Saya baru-baru ini membaca posting blog Three Big Lies dan saya mengalami kesulitan membenarkan kebohongan kedua, yang dikutip di sini:
(KEBOHONGAN # 2) KODE HARUS DIRANCANG DI SELURUH MODEL DUNIA
Tidak ada nilai dalam kode menjadi semacam model atau peta dunia imajiner. Saya tidak tahu mengapa ini sangat menarik untuk beberapa programmer, tetapi ini sangat populer. Jika ada roket di dalam gim, yakinlah bahwa ada kelas "Rocket" (Asumsikan kodenya adalah C ++) yang berisi data untuk tepat satu roket dan melakukan hal-hal rockety. Tanpa memperhatikan sama sekali untuk apa tranformasi data yang benar-benar dilakukan, atau untuk tata letak data. Atau dalam hal ini, tanpa pemahaman dasar bahwa di mana ada satu hal, mungkin ada lebih dari satu.
Meskipun ada banyak hukuman performa untuk desain semacam ini, yang paling signifikan adalah bahwa ia tidak berskala. Sama sekali. Seratus roket berharga seratus kali lipat satu roket. Dan sangat mungkin harganya lebih dari itu! Bahkan untuk non-programmer, itu tidak masuk akal. Skala ekonomi. Jika Anda memiliki lebih banyak sesuatu, itu harus menjadi lebih murah, bukan lebih mahal. Dan cara untuk melakukannya adalah merancang data dengan benar dan mengelompokkan berbagai hal dengan transformasi serupa.
Inilah masalah saya dengan kebohongan ini secara khusus.
Ada nilai dalam kode menjadi model / peta dunia imajiner sebagai pemodelan dunia imajiner membantu (setidaknya saya, secara pribadi) memvisualisasikan dan mengatur kode.
Bagi saya, memiliki kelas "Rocket" adalah pilihan yang sangat valid untuk sebuah kelas. Mungkin "Roket" dapat dipecah menjadi jenis Roket seperti AGM-114 Hellfire, dll. Yang akan mengandung kekuatan payload, kecepatan maks, radius putar maks, tipe penargetan dan sebagainya, tetapi masih setiap roket yang ditembakkan harus memiliki posisi dan kecepatan.
Tentu saja memiliki 100 Rocket harganya lebih dari 1 Rocket. Jika ada 100 Rocket di layar, harus ada 100 perhitungan yang berbeda untuk memperbarui posisi mereka. Paragraf kedua kedengarannya seperti membuat klaim bahwa jika ada 100 Rocket, seharusnya biayanya kurang dari 100 perhitungan untuk memperbarui negara?
Masalah saya di sini adalah bahwa penulis menyajikan model pemrograman "cacat" tetapi tidak menyajikan cara untuk "memperbaiki" itu. Mungkin saya tersandung analogi kelas Rocket, tapi saya benar-benar ingin memahami alasan di balik kebohongan ini. Apa alternatifnya?