Yazılımın ilk 250 günü - Part 20
4 dk okuma
191. Gün
192. Gün
193. Gün
Bu günlerin çalışmasını içeren dosyaları maalesef kaybettim :(194. Gün
Sabah offline olma durumunu tamamladım. Kullanıcı giriş yaptığında “available” durumunda oluyor. Sonrasında, “away, busy, available” seçeneklerinden birini seçebiliyor. Fakat kullanıcı çıkış yaptığında ya da uygulamayı kapattığında direkt offline durumuna getirildi. Sonrasında mesajlar için bildirim kısmı, kısmen tamamlanmıştı. Fakat kurduğum veri yapısı sizin de dediğiniz üzere daha büyük sistemlere ölçeklendirildiğinde çok daha fazla boyut kaplayıp, daha fazla hesaplama süresi gerektirecek. Bu yüzden yarın o kısmı düzeltip eksik kalan kısımları tamamlayacağım. Daha öncesinde normal ve istenen şekilde çalıştığı görülen “tüm oturumları kapat” durumu bugün çalışmadı. O kısmı düzeltmek için de ekstra bir zaman verildi. Düzeltildi.195. Gün
Bugün mesaj bildirimi kısmını tamamladım. JSON şeklinde verileri tuttuğum için ve kullanıcı id’leri ile ilgili veri yapısını daha önce birçok farklı yerde kullandığım için bildirim kısmını sadece kullanıcı id’si ve ilk okumadığı mesajın tarihi ile ilişkilendirdim. Tüm yapılar JSON dosyası ve formatı üzerinde olduğu için gelecekte ilişkisel olmayan bir veritabanı yönetimi sistemi kullanılırsa bu yapı korunabilir. Ya da değiştirilebilir. Şu aşamada o düşünülmedi. Bugün bildirim kısmı tamamladıktan sonra kodda yapılan değişiklikler sırasında geçmiş yazılan birkaç kısım bozulmuştu fakat sonrasında düzeltildi.Akşama doğru mesajların yazıldığı input alanının skype’ta ya da farklı mesaj uygulamalarında olduğu gibi mesaj uzadıkça dikey olarak genişleyebilmesi sağlanmak istendi. Fakat bu dinamik yapı input elementi ile yapılamadığı için (aslında javascript aracılığı ile yapılabilir mi hiç düşünmemiştim.) input alanını bir span ile değiştirip, span bir input olarak kullanılacak. O kısım yarım kaldı ama yarın sabah düzeltilecek.
Chat sıralamasının, en son mesaj yazılmış chat’e göre oluşturulması gerekiyor. Yarın o kısmı tamamlamaya çalışacağım. Bir büyük eksik var. Bir arkadaşı sohbetlerden silmek. Bu özellik henüz eklenmemişti. Yarın o da tamamlanacak. Eğer yarın bu özellikler tamamlanırsa, başka temel bir eksik şu aşamada görünmüyor.
Eğer farklı sorunlar bulunuyorsa düzeltebileceğimi düşünüyorum.
196. Gün
Bu sabah ve öğle saatlerinde mesaj yazılan input alanının doğru (istenen) şekilde çalışması sağlandı. Sonrasında yazılan mesajların tarihleri skype ve diğer mesajlaşma uygulamalarında olduğu gibi saat, haftanın günleri, ya da “gün/ay/yıl” formatına çevrildi. Sonrasında da son sohbetlerin sıralamasını tamamlanacaktı. Aklıma gelen ilk mantığı oluşturmak yerine farklı ve algoritmik açıdan nasıl daha optimum bir kod yazabilirim diye düşündüm. Bu biraz zamanımı aldı. Bu kısım tamamlanmadı fakat yarın öğlene kadar tamamlanacak. Sonrasında da arkadaş silme özelliği eklenmiş olacak.197. Gün
Sabah, sohbetlerin son mesaj tarihine göre sıralanması tamamlandı. Ardından arkadaş silme özelliği eklendi. Gruptan çıkma kısmında da bir takım sorunlar vardı ve düzeltildi. Genel sohbetten çıkma gibi bir durum henüz konulmadı. Uygulama, masaüstü uygulamasına dönüştüğünde bildirimleri sessize alma kısmı da eklenirse çok güzel olacağı tahmin ediliyor.Şimdiye dek yaşanan ve geçmişten gelen problemler çözüldü. Eğer bir sorunla karşılaşılırsa tekrar düzeltilebilir ama ciddi bir problem bulunmadı.
Akşam saatlerine doğru 3 ya da 4 farklı konu akla geldi:
- Peer-to-peer mesaj gönderme işlemi nasıl yapılabilir ve mesajların gizliliği nasıl sağlanabilir? Mümkünse bu durum da eklenecek.
- Ses kaydedip gönderme durumu eklenecek. (MediaRecorder api ile)
- Canlı bir şekilde videolu ve sesli sohbet eklenecek.
- Ilk 3 madde tamamlandığında bir sohbet uygulamasının en temel işlevleri sağlanmış olacak diye düşünülüyor
- Giriş kısmı backend olarak tamamlanmış olsa da frontend’I henüz çok ilkel. Sonrasında front-end’I yazılacak.
- Birden fazla kullanıcının aynı anda yaptığı işlemlerde json dosyasından yapacakları işlemlerde problemler olabilir diye düşünülüyor. Bu yüzden bir veritabanı yönetim sistemine geçiş yapılabilir(yapılmalı).
- Kodun geliştiriciler için okunabilirliği, düzenlenmesi, güncellenmesi konuları için OOP’ye uygun bir standarda getirilmeli (En baştan yapılması gerekliydi).