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:
  1. 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.
  2. Ses kaydedip gönderme durumu eklenecek. (MediaRecorder api ile)
  3. Canlı bir şekilde videolu ve sesli sohbet eklenecek.
  4. Ilk 3 madde tamamlandığında bir sohbet uygulamasının en temel işlevleri sağlanmış olacak diye düşünülüyor
  5. Giriş kısmı backend olarak tamamlanmış olsa da frontend’I henüz çok ilkel. Sonrasında front-end’I yazılacak.
  6. 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ı).
  7. 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).

198. Gün

Bugün açıkçası biraz daha yapacaklarım üzerine planlamalar ve ilgili konuları araştırmak ile zaman geçti. Neler yapmam gerektiğini düşündüm. Farklı insanların kodlarını ve görüşlerini okudum genel olarak ilgili konular üzerine. Uçtan uca şifrelemeyi eklemeyecek olsam bile nasıl çalıştığını öğrenmek istedim. Öğrendiğimi düşünüyorum.

199. Gün

Bugün WebRTC’ye giriş olarak Google’ın sunduğu dökümanları okumaya başlamıştım. Okuduğum doküman direkt kodlama kısmı ve kodların yorumları ile başladığı için olayın özünü bildiren ve kullandığı teknolojilerin yapısını ve mantığını açıklayan kapsamlı herhangi bir şey okumamıştım. Sonrasında vikipediden ve farklı birkaç kaynaktan daha konuyu araştırdım. Konu hakkında biraz daha fikir edinip (tatilde de fırsat olursa konuyu biraz daha araştırarak) elimi kirletmem gerekli. Perşembe günü sisteme bu durumları da entegre etmeye başlayacağım (deneyeceğim).

200. Gün

Bugün sizin gösterdiğiniz kısımlar üzerinde kodda değişiklikler yaparken birtakım anormallikler gerçekleştiği için yarın dikkatlice düzeltmeler yapacağım. Ondan öncesinde tamamen WebRTC ile canlı (stream peer-to-peer comm.) veri alışverişini öğrenmeye, uygulamaya çalıştım. Önce bulduğum örnekleri birebir kopyalayarak ve kodları okuyarak anlamaya çalıştım fakat biraz zorlandım. Uygulamamı nesne yönelimli hale getirdikten sonra tekrar bu kısma döneceğim.