Kodcu İçin Hiçbir Tercih Sıradan Değildir

Kimi zamanlar aynı işi görebilecek birden fazla yöntemle başbaşa kalır kodcu. Ona kim rehberlik edecektir o zaman?

Modern nasihat yazısı yazıyor olsak, böyle bir başlık seçmemiz işten bile değildi. Neyse ki öyle değil sevgili okuyucu; ne bir nasihat yazısı yazıyoruz ne de sakalımız var.

Merkezimizde yine işçimiz, emekçimiz, yani kodcumuz var. Birçok kereler (1, 2) kendisinden söz açmış idik, elbette yeterli olmuyor. Yine ekmeğini klavyeden, noktalı virgülden ve debug'tan çıkaran bu insan formuna çeviriyoruz bakışlarımızı.

Kodcu için hiçbir tercihin sıradan olmadığını söyledik. Bu, kodcu hep tercihler arasında yaşıyor iddiasını da ihtiva ediyor. Kodcu için yazdığı kod rasgele değildir. Yapabilecekleri arasında en iyisini seçerek (tercih ederek) yapmıştır. Böyle yaptıysa eğer ve yapıyorsa, kodcu olmuştur.

Kod yazan insanların hangi platformda koşarsa koşsun, önlerine birçok yol çıkmaktadır. Ve bu yolları aşmak için yanlarına alacakları birçok alet.

Misâl, .NET veya Java bir tercihtir. .NET'e girdikten sonra C# veya VB.NET ayrı bir tercih olur. C#'ı tercih edenin önünde tasarım kalıpları ayrı bir tercih. Basit bir for-loop içerisindeki sayaç değişkenine vereceği adı bile tercih eder kodcu.

Kimi zamanlar aynı işi görebilecek birden fazla yöntemle başbaşa kalır kodcu. Ona kim rehberlik edecektir o zaman? Rasgele birisini seçip devam mı etmelidir? Yoksa ben bu konuda biraz daha bilgileneyim mi demelidir?

...

Abdullah Nehir, .NET kodcularının hemen her gün başvurduğu hazır koleksiyon nesnelerini üşenmemiş bir performans tetine tâbi tutmuş. Detaylı grafik ve çizelgenin ardından vardığı netice şu:

  • Anahtar-değer çiftleri tutulduğunda araması en hızlı olan: 10'dan az eleman için SortedDictionary, fazlası için Dictionary.
  • Sadece değer listesi tutulduğunda arama yapmayıp çevrime sokacaksanız en iyisi List; arama yapacaksanız (varlık kontrolü yapacaksanız) en iyisi HashSet.

Bundan sonra koleksiyonları kullanırken bu bilgileri de göz önüne alırız. Eline sağlık Abdullah Bey'in.

...

Özcan Değirmenci ise static değişkenleri nasıl hazırlamak evlâdır diye sormuş ve üretilen IL kodlarını incelemiş. Static değişkenleri ya inline olarak (satır içi) ya da bir static constuctor bünyesinde hazırlayabiliyoruz, mâlum. Özcan Bey'in son cümlesi şu:

"Static'ler için yapabiliyorsanız, daima 'inline initialization' kullanmayı deneyin."

...

İki farklı konuda hususi bir çalışmalarla ortaya çıkacak neticeleri paylaşmış olduk. Bunun gibi yüzlerce durak vardır, kodcunun tercih yaparken bilgiye ihtiyaç duyabileceği. Demek ki makinelerdeki tüm ilerlemelere rağmen bu iş hâlâ bilgi ve şuur gerektirmektedir.

Velhâsıl şu acı tespiti yalancı çıkarmak gerek. En azından bu ülkede.
Şuur ile.

, , , ,

Arşivden

Yorum bulunmuyor.

Yorum yazabilirsiniz


* [b], [i] ve [quote] serbest