Code Buddy
Kod yazma ritmini yaşayan bir piksel dosta dönüştüren; aktivite, terminal olayları ve odak seanslarıyla evrilen bir VS Code üretkenlik deneyimi.
const focus = true;await buddy.levelUp();// commit detected ✓Neden yaptım?
Problem
Geliştirici araçları çoğu zaman yalnızca işlevsel. Uzun odak seanslarını sürdürülebilir kılacak geri bildirim ve küçük bir duygusal bağ eksik kalıyor.
Yaklaşım
VS Code’un editör, diagnostics, task ve workspace olaylarını küçük bir pet durum modeline bağladım. Pet’in enerjisi, hijyeni, mutluluğu ve kostümü çalışma ritmine göre değişiyor; 25 dakikalık odak döngüsü ise bu sinyalleri kullanıcıyı bölmeden görünür kılıyor.
Parçalar değil,
veri akışı.
Her katman tek bir sorumluluğu taşıyor; ürün davranışı sınırların arasında kaybolmuyor.
Zor kısımlar.
Restart’lar arasında tutarlı durum
Pet istatistiklerini VS Code globalState üzerinde saklayıp yeni alanları varsayılan durumla birleştirdim; extension yeniden başladığında kullanıcı ilerlemesini kaybetmeden güvenli bir başlangıç ürettim.
Sinyali kullanıcıyı izlemeye dönüştürmemek
Yazma, kaydetme, diagnostics, task sonucu ve commit gibi editörün zaten ürettiği yerel olaylarla çalıştım. Harici analitik veya runtime bağımlılığı eklemeden geri bildirimi editör içinde tuttum.
Doğru iş için
doğru araç.
Yazma, kaydetme, diagnostics, task ve aktif dil sinyallerini ek bir ajan ya da telemetri olmadan yerelden dinlemek için.
Event payload’larıyla pet durumunu ve komut sözleşmelerini extension geliştikçe güvenli tutmak için.
Piksel karakteri ve etkileşimleri Activity Bar içinde zengin bir yüzeyde gösterirken VS Code tema değişkenlerine uyum sağlamak için.
Pet seviyesini ve istatistiklerini harici veritabanı kurmadan yeniden başlatmalar arasında korumak için.
Git commit’ini uzaktaki bir servise veri göndermeden yerel HEAD günlüğünden sinyal olarak almak için.
Öğrendiklerim.
İyi bir extension, VS Code’un olay modelini kullanır ve ayrı bir web uygulaması gibi davranmaz.
Gamification ancak commit, başarılı task veya odak süresi gibi gerçek geliştirme davranışlarıyla bağ kurduğunda anlamlı olur.
Küçük state modelleri bile kalıcılık, varsayılan değerler ve yeniden başlatma davranışı ister.