Pragmatik Programcı adlı kitapta , yazarlar programlamayı tesadüf kavramı ile belirtirler. Ne olduğunu, neden ortaya çıktığını, karşılaşabileceğiniz tehlikelerin neler olduğunu ve bir savaşta bir mayın tarlasıyla karşılaştığını açıklar.
Hiç eski siyah beyaz savaş filmlerini izledin mi? Yorgun asker, fırçayla dikkatlice ilerler. İleride bir açıklık var: Herhangi bir kara mayını var mı, yoksa geçmesi güvenli mi? Bunun bir mayın tarlası olduğuna dair herhangi bir belirti yok - hiçbir işaret, dikenli tel veya krater yok. Asker süngeriyle önündeki yeri dürter ve bir patlama beklerken kazanır. Bir tane yok. Böylece bir süre boyunca saha boyunca titizlikle ilerler, ilerledikçe ve dürter. Sonunda, alanın güvenli olduğuna ikna etti, sadece parçalara ayrılmak için düzeltir ve gururla ilerler.
Askerin mayın için ilk sondaları hiçbir şey göstermedi, ancak bu sadece şanslıydı. O feci sonuçlarla yanlış bir sonuca götürüldü.
Geliştiriciler olarak mayın tarlalarında da çalışıyoruz. Her gün bizi yakalamayı bekleyen yüzlerce tuzak var. Askerin hikayesini hatırlayarak, yanlış sonuçlar çıkarmaya karşı dikkatli olmalıyız. Programlamanın tesadüf eseri - şansa ve tesadüfi başarılara dayanarak - kasıtlı olarak programlama lehine ...
Ancak, "bunun üstesinden nasıl gelineceği" konusunu tarif ettikleri yöntemden gerçekten memnun değilim. Evet, kodu yazmadan önce ileriyi düşünmek zorundasın, ama bunu nasıl uygulayacaksın? Düşünebildiğim tek şey, hem “şu anda ne yapıyorum” hem de “diğer kod parçalarının nasıl çalıştığı” hakkında bilgi sahibi olmanız gereken mevcut Açık kaynak projelerine özellikler ekleyerek. kendi projelerinizi yazarken.
DÜZENLE:
yayınlarınızdan bir özet:
- Bir sonraki hareketini tahmin etme, doğru olduğunu ispatla
- Birim testi ve refaktör gerektiğinde, gerektiğinde
- Özellik ekleme – derleme – sık sık test
- Kodu bir noob'a açıklayamazsanız, büyük olasılıkla tesadüfen programlıyorsunuzdur.
Btw, cevap kabul etmek zor, gerçekten zor. Tüm cevaplar gerçekten harika :)