Soyle hizli bir review yapmak gerekirse:
Degiskenlerin gereken en kucuk scope’ta tanimlanmalari kodun okunulabilirligini ve degistirilebilirligini artirir. Ornegin yaz
ve yanit
sadece main
’de kullaniliyor, global olmalarina gerek yok. p
tek bir fonksiyonda okunulabilirligi arttirmak icin kullaniliyor, sinif degiskeni olmasina gerek yok.
Okunulabilirligi arttirmak icin degiskenlere daha iyi isim vermek her zaman uygulanabilecek bir adim. (Yani, sonu yok.) Bu kodda cogu yeni baslayandan daha ileride durulmus (daha iyi isimler verilmis). Sadece tek harfli degiskenler, belki de gereken scope’dan daha buyuk yerlerde durduklari icin, goze batiyorlar. Ornegin p
’nin butun amaci setB0
’da yapilan islemi daha okunabilir kilmak. Bu durumda isminin “p” olmasi celiski
Isi yapan kod ile onun surucusu veya kullanici arayuzu bir seviye daha ayrilabilir. Butun isi tasiyan bitmapin (SayilarVectoru
) kendi sinifina ayrilmasi kodu baya rahatlatmis. Bir sonraki adim main
’in kullanicidan girdi alan, bitmapi isleyen ve kullaniciya cikti veren uc kismin uc (veya iki) parcaya ayrilmasi olabilir. Mesela kac
ve yanit
bir fonksiyona parametre olsaydi ve main
birkac satirdan olussaydi, “su satirlari comment edip sununkuleri acarsaniz…” aciklamasina gerek kalmazdi. Suresi olculen kritik kisim, basli basina bir fonksiyon olmali.
Kendi implementasyonuma da geri link vereyim: En kısa kod satırı kullanımı ile asal sayıları bulma - aib tarafından #27 Cunku hem kodlar cok benzer, hem de bir suru insan icin konunun cikis noktasi o.