(2024-03-07)
Aşağıdaki linklerden "The Night Watch" isimli makalenin okunması gerekli.
(2024-03-03)
Yazılım mühendisliğinde kaynak koda gömülen veriye "magic value" denir. Şurada konuya giriş yapan güzel bir yazı mevcut: https://kyleshevlin.com/what-are-magic-values
Koda veri gömülmesi çok sınırlı durumlarda bazı konvansiyonlar kullanılarak yapılmalıdır.
Bir banka kodunda hesap numarası bulunamaz. Bir file deduplication betiğinde dosya ismi kullanılamaz. Bir email programında email adresi bulunamaz. Eğer o email adresine özel muamele yapılacaksa, önce veri şemasına bir özellik eklenir, sonra kodda o özelliğe bağlı yapılması gereken özel muamele gerçeklenir ve son olarak istenen adrese istenen veri eklenerek amaca ulaşılır.
Ayar dosyaları, windows registry vb teknolojiler hep koda veri gömülmemesi için yaratılmıştır.
Peki bir mesajlaşma programında merkez sunucunun adresi bulunabilir mi? Ya da bir web uygulamasında kullanıcı adı regex ile doğrulanabilir mi? Elbette olabilir. Bunları koda gömmenin her programlama dilinde kabul görmüş bir yöntemi vardır.
Assembly yazarken veriyi .data
section'a koymanız beklenir. C
yazarken #define MAGIC_VALUE "xyz"
gibi bir konvansiyon
kullanabilirsiniz. C++'ta #define
yerine [static] const
,
Java'da static final
bu işler için kullanılmaktadır. Python'da static
ve const gibi kavramlar olmamasına rağmen konvansiyon olarak
BÜYÜK_HARFLİ_DEĞİŞKEN_İSİMLERİ const degerleri belirtmek için kullanılmaktadır.
Örnekler çoğaltılabilir.
Neticede koda veri gömerken 2 kere düşünün. Hatta 20 kere düşünün.
(2024-03-03)
Ödevlerin süreleri belirlenirken, işin ne kadar zamanınızı alacağı saat cinsinden kestirilip, diğer dersler ve insan olmanız kaynaklı (örn. uyuma ihtiyacı) başka yükümlülüklerinizin de olduğu dikkate alınarak gün sayısına dönüştürülüyor ve bir teslim süresi belirleniyor.
Ancak öğrenci niyeyse ödev verilince değil de teslim süresine x saat kalınca çalışmaya başlıyor. Buradaki hata ise şu: x değeri, ödevin alacağı zaman doğru veya hiç analiz edilmeden kafadan atılarak belirleniyor. Böyle olunca da ödev yetişse bile şansa yetişmiş oluyor.
Bir başka gözden kaçan konu ise yazılımcı beyninin çalışma şekli: Ödev gelir gelmez üzerinde bir kaç saat kafa patlatıp sonra bir süre kendi haline bırakırsanız kafa geri planda o problem üzerinde çalışmaya devam eder. Bir yazılım işinin yapılması 4 günde 2'şer aktif saat harcanırsa 8 saat, ancak tek güne sıkışırsa 16 saat sürebilir.
Size verilen zamanı akıllı kullanmanız gerekli. Sizden istenen işler zor işler değil. Ama zamanınızı doğru planlamazsanız iş şansa kalır. İşini şansa bırakan mühendis olmaz.
(2024-02-28)
Herhangi bir programlama ödevinin cevabını vermenin çok da faydalı olduğunu düşünmüyorum. Yazdığınız kod size verilen kısıtlar dahilinde kalarak isteneni yapıyorsa doğrudur, yapmıyorsa yanlıştır. Ancak ödevi verdikten sonra çalışmasını geliştirmeye devam etmek isteyenler olursa kendi kodları üzerine konuşabiliriz. Konuyla ilgili email atabilirsiniz.
(2024-02-14)
Hello World!..