Sebep etmesi kolay, kültürel olarak özel bir terimdir, bu yüzden somut örnekler bulmak çok zor. Akıl yürütmeyi yapan insanlara bağlanan bir terimdir.
"Kolayca anlaşılması kolay" aslında çok açıklayıcı bir ifadedir. Eğer biri koda bakıyorsa ve ne yaptığını düşünmek istiyorsa, bu kolay =)
Tamam, kırılıyor. Koduna bakıyorsanız, genellikle bir şey yapmasını istersiniz. Yapması gerektiğini düşündüğün şeyi yaptığından emin olmak istiyorsun. Böylece, kodun ne yapılması gerektiğine dair teoriler geliştiriyorsunuz ve sonra neden kodun gerçekten işe yaradığını tartışmaya çalışmak için nedeniniz var. Kod gibi bir insan gibi (bir bilgisayar gibi değil) düşünmeye çalışın ve kodun yapabilecekleri hakkındaki argümanları rasyonelleştirmeye çalışın.
“Mantıklı sebep” için en kötü durum, kodun ne yaptığını anlamanın tek yolunun, tüm girişler için bir Turing makinesi gibi kod boyunca satır satır gitmesidir. Bu durumda, kodla ilgili herhangi bir şeye neden olmanın tek yolu, kendinizi bir bilgisayara dönüştürmek ve kafanızda çalıştırmaktır. Bu en kötü durum örnekleri RSA'nın şifresini çözen bu 3 PERL satırı gibi engelli programlama yarışmalarında kolayca görülebilir:
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
Akla kolay gelince, yine terimi çok kültürel. Düşünmeniz gerekir:
- Muhasebecinin hangi becerileri var? Ne kadar tecrübe?
- Muhasebecinin kodla ilgili ne gibi soruları olabilir?
- muhabir ne kadar kesin olmalıdır?
Bunların her biri farklı "mantıklı olması kolay" ı etkiler. Muhakemin becerilerini örnek olarak alın. Şirketime başladığımda senaryolarımı MATLAB'da geliştirmem önerildi, çünkü “mantıklı olması kolay”. Neden? Şirketteki herkes MATLAB'ı tanıyordu. Farklı bir dil seçersem, birinin beni anlaması daha zor olur. Boşuna MATLAB'ın okunabilirliğinin bazı görevler için acımasız olduğu , çünkü onlar için tasarlanmadı. Daha sonra kariyerim ilerledikçe Python gittikçe daha popüler hale geldi. Birden MATLAB kodu "mantıklı olması zor" oldu ve Python, kolay anlaşılması kolay kod yazmayı tercih etti.
Ayrıca okuyucunun hangi adlara sahip olduğunu da düşünün. Belirli bir sözdiziminde bir FFT'yi tanımak için okuyucunuza güveniyorsanız, sözdizimine sadık kalırsanız, kod hakkında "mantıklı olması daha kolaydır". Nitty kumlu detaylarına girmek yerine metin dosyasına FFT çizdiğiniz kanvas olarak bakmalarını sağlar. C ++ kullanıyorsanız, okuyucularınızın std
kitaplıkta ne kadar rahat olduğunu öğrenin . İşlevsel programlamayı ne kadar seviyorlar? Konteynır kütüphanelerinden çıkan deyimlerin bazıları, tercih ettiğiniz idomatik stile bağlıdır.
Ayrıca okuyucunun cevaplamakla ne kadar soru ile ilgilenebileceğini anlamak da önemlidir. Okuyucularınız çoğunlukla kodun yüzeysel anlayışıyla mı ilgileniyor veya bağırsakların derinliklerinde böcek mi arıyorlar?
Okuyucunun ne kadar kesin olması gerektiği aslında ilginçtir. Pek çok durumda, puslu mantık, ürünü kapıdan çıkarmak için aslında yeterlidir. FAA uçuş yazılımı gibi diğer durumlarda, okuyucunun ironclad gerekçesine sahip olmak isteyecek. RAII'yi belirli bir görev için kullanmayı tartıştığım bir olaya karıştım, çünkü "Sadece kurabilir ve unutabilirsin ... doğru olanı yapacak." Bu konuda yanıldığımı söylediler. Bu yasaya gerek duyacak olanlar, "sadece detayları unutmak isteyen" insanlar değildi. Onlar için, RAII daha çok bir asma çağı gibiydi, onları kapsamdan ayrıldığınızda olabilecekler hakkında düşünmeye zorladı.