Yazılımın ilk 250 günü - Part 21

5 dk okuma

201. Gün

Bu sabah Javascript’te prototip ve nesne kavramlarına tekrar baktım. İlk moladan sonra, yazdığım kodları nesne yönelimli hâle getirmek için çalışmaya başladım. Çok uzun zaman alacağını düşünmüyorum. Ama temiz ve modüler bir şekilde yazmaya çalışacağım. Parça parça eski kodları değiştirerek restorasyonu tamamlamaya çalışacağım. Bir binanın nasıl inşa edildiğini basitçe bir gecekondu inşa ederek bir nebze öğrendim. Şimdi ise edinilen tecrübe ve yapılacak işin bilgisine ve deneyimine biraz da olsa sahip olarak, temeli sağlam bir bina haline getirilmeye çalışılacak.

202. Gün

Bugün yazılan chat uygulamasının nesne tabanlı hale getirilmesine devam edildi. Ardından bug tracking ve knowledge base üzerine olan uygulamalar araştırıldı, karşılaştırıldı. Biraz sakin bir gündü. Pazartesi daha iyi bir tempoyla devam edilecek.

203. Gün

Bugün de fonksiyonel olarak yazılmış bir kodu nesne tabanlı hale getirmeye çalıştım. Günün son bir saatinde knowledge base hakkında bir yazı okudum. Okurken yine “bunu ben de yaparım ki” fikri cereyan etti fakat cahil cesareti ile bu düşünceyi belirtip sonrasında yapmaya çalışırken afallama ihtimalimi düşünerek söylememeyi yeğledim. Ama gerçekten de yapılabilir eğer şu an sahip olduğum görevleri tamamlayabilirsem.

Aklıma birçok fikir geliyor çalıştığım konu dışında da. Elbette saçma olabilir ama bir tanesi de şu: Görsel teknolojilerin neredeyse hepsinin temeli bir ekran ya da bir düzlem ve ona bakan gözlerin o ışığı elde etmesi üzerine. Göz bebeğinin hareketini takip ederek ışık kaynağının doğrultusunun değiştirilebildiği, minik ve maksimum gücü önceden (geçici ya da sürekli körlüğe sebep olmamalı) belirlenmiş bir projeksiyon cihazı düşündüm. Sonrasında bu düşüncenin gereksiz karmaşa ve zorluk içerdiği fikri aklıma yerleşti. Sonrasında görüş açısını 360 dereceye çıkarabilme fikri geldi kameralar ile. Siz roket projesinden bahsedince de aklıma Arduino ile neler yapabileceğim geldi. Ya da ufak bir rocket simülasyonunun web üzerinde nasıl yazılabileceğini düşündüm. Webgl, three.js, ya da d3. Js gibi teknolojileri kullanarak neler yapabileceğimi hayal etmeye çalıştım böyle bir simülasyonda. Açıkçası yapılabilecek o kadar çok şey var ki… İşteki motivasyon kaynaklarımın önceliklerini tam bilmiyorum ya da kendime bu sıralamayı yaptırmaktan kaçıyorum fakat bunlardan biri de kesinlikle yapılacak-yapılabilecek çok şey olması. İyi ki.

204. Gün

Bugün authentication kısmı olmasa da genel chat mantığının bulunduğu kısım nesne yönelimli hâle getirildi. Yarın amaç authentication ile ilgili kodları da o hâle getirip sonrasında klasörlendirme konusuna başlamak ve bitirmek planlanıyor. Bugün epey düzeltme yapıldı diye düşünüyorum. Yarın authentication kısmı da tamamlandığında çok sorun kalmayacak OOP üzerine diye düşünüyorum. Sorun çıkarsa da zorlanmadan düzeltilir diye düşünüyorum. SSO sunucusunun backend kodlarını da ayrıca nesne yönelimli hale getirmem gerekli elbette. Onu da sonrasında tamamlayacağım. Tüm bunlar bittiğinde ise knowledge base ve bug tracking konularını içeren bir uygulamanın temel özelliklerini çıkarılacak. Bu özelliklere uygun olarak özet niteliğinde bir yazılım gereksinim dokümanı hazırlanabilir, ya da sisteme implemente etmeden önce genel gereksinimler ve bu gereksinimlere uygun kullanım senaryoları ile nesnelerin template’i çıkartılabilir. Elbette bu konularla (bug tracking ve kb) ilgili bir rapor da yazılacak.

205. Gün

Bugün authentication kısmını nesne yönelimli hale getirmek beklediğimden daha çok zaman aldı. Birçok hata ile karşılaştım ama sonrasında tamamladım. Yarın klasörlendirme kısmını tamamlamaya çalışacağım. Sonrasında vakit kalırsa eğer knowledge base üzerine okuma yapıp fikirlerimi geliştirmeye çalışacağım.

206. Gün

Öncelikle özür dilerim. Hâla daha nesne yapısını bazı noktalarda kullanmadığım için. Uygulayamadığım için değil aslında, sadece nerede uygulamam gerektiğini tecrübesizlikle ya da az bilgisizlikle göremediğim için. Ayrıca, yine çok teşekkür ederim ki vermiş olduğunuz her bilgi için. Çünkü kullandığım tüm yapılarda gösterdiğiniz bilgilere riayet etmeye çalışıyorum ya da öğrenebildiklerimi ve anlayabildiklerimi uygulamaya çalışıyorum.

Bugün uygulamanın kodlarını ayrıştırma işlemlerini yaptım. Henüz bitmedi. Controller kısmında kalmıştım. Söyledikleriniz üzerine yarın yaptıklarımı düzeltmeye çalışacağım.

Aklımda iş sonrasıda hobi olarak yapabileceğim bir plan geldi, ne kadar verimli ve katkı sağlayabilecek bir plan olduğunu henüz bilmesem de. Bir domain adresi almıştım. En temel seviyeden başlamak amacı ile ve hobi niyeti ile bir web sunucusunu kendim oluşturmak istiyorum eski bilgisayarda. Ardından basitçe içerikleri (hello word şeklinde) ilgili domain adresi üzerinden sunduktan sonra cloudflare’i kullanmaya çalışacağım. Sonrasında ise kendi web siteme saldırma yöntemlerini öğrenip ddos ya da diğer yöntemlerle (şu an pek bir fikrim olmasa da) saldırmayı ya da sızmayı, ve bunun üzerine nasıl önlemler alınabileceğini öğrenmeye çalışacağım.

207. Gün

Bugün de backend kısmında düzeltmeler yapıldı. Başlangıçta her şey fonskiyonel şekilde programlanmışken ve global değişkenlerde oldukça çokken şimdi ise class-object yapısına evrim sağlandı. Yarın routing kısmı da tamamlanıp sonrasında son düzenlemeler de tamamlanacak. Haftaya olabildiğince eksikler tamamlanıp, Cumartesi gününe kadar teslim edilmeye hazır hâle getirilmeye çalışılacak.

208. Gün

Bugün routing kısmını da tamamladım. Beklediğimden biraz daha fazla zaman aldı birkaç hata ile karşılaşmıştım fakat sonrasında düzelttim.

Haftaiçi yapmam gerekenleri belirledim:
  1. Gruptan çıkma durumunda bir anormal durum yaşanıyordu. Onu düzelteceğim.
  2. Uygulama açıldığı anda default olarak son konuşulan sohbet içeriği gösteriliyordu. Onun yerine farklı bir içerik hazırlayıp sunum-başlangıç içeriği olarak sisteme ekleyeceğim.
  3. Kullanıcı girişi ve çıkışı esnasında frontend’te herhangi bir tasarım yok. Soft geçişleri olan bir UI’ a sahip olmasına çalışacağım.
  4. Dosyaların da silinebilmesi durumunu ekleyeceğim.
Bunları maksimum 3 günde tamamlamalıyım. Perşembe ve cuma günleri ise tamamen uygulamanın teslime hazır hâle gelmesini sağlamaya çalışacağım.

209. Gün

Bugün uygulama içerisinde gönderilen dosyaların silinmesi ve kaydedilmesi işlemleri sisteme eklendi. Henüz tamamlanmadı ama yarın ilk molaya kadar eksik kalan kısımların tamamlanacağı düşünülüyor.

Daha öncesinde ise mesajlara sağ tıklandığında seçeneklerin bulunduğu pozisyon daha da optimize edilmeye çalışıldı. Tıklanan mesaj üzerinde (tam olarak tıklandığı nokta üzerinde) seçenekler menüsü ortaya çıkarıldı.

Yarın authentication sırasındaki geçişler frontend tarafında tamamlanacak. Eğer vakit kalırsa tespit edilen bir ya da iki tane anormallik giderilmeye çalışılacak.

210. Gün

Bu sabah ilk iş dünden kalan yarım kısmı(sohbet içinde gönderilen dosyaların silinmesi gibi işlevlerin bulunduğu kısım) tamamlamaktı. Tamamlandı. Sonrasında farklı route’lar arasındaki geçişleri oldukça soft hâle getirmeye çalıştım. Bence getirebildim (en basit şekilde fade-in fade-out’lar kullanarak). Cache ve web worker kullanılarak da yapıldığını gördüm fakat o karmaşıklığa şu an için gerek yoktu.

Ek olarak network’e bakarak hatalı bir durum var mı diye talep edilen verileri kontrol ederken favicon.ico dosyasını tarayıcının talep ettiğini görüp, ne olduğunu araştırıp, onu da sisteme dahil ettim. Şu an normal olarak çalışmakta. Fakat tarayıcı favicon.ico dosyasını bazen talep edip bazen de etmiyor ve sanırım bunu önbelleğine bakarak yapıyor. Ya da farklı bir mekanizma var ve henüz onu anlamadım.

Dün ve bugün güzeldi. Yarın daha da güzel olacak diye umuyorum. Bugün yeni şeyler yazdım. Yarın daha önce yazdığım kodlardaki hataları fix’lemeye çalışacağım.