Hesaplama nerede duruyor

Hesaplanan özellik lib/compute.ts içinde tek bir fonksiyon. Listeyi alıp sonucu döndürüyor ve başka hiçbir şeye dokunmadığı için testi de kolay yazılıyor. Sonucun sayfada nerede görüneceği SPEC.md'de tek cümleyle yazılı, çoğu zaman listenin üstünde.

Örneğin kitap listesinde öneri fonksiyonunun testleri okunmuş daha kısa bir kitabı atlayıp atlamadığına ve sayfa sayısı eşit iki kitaptan hangisini seçtiğine bakar.

Liste özelliğinden sonra sayfada şablondan kalan "bu hafta eklenen" sayacı hala duruyor, ajan o turda yazısını senin diline çevirmişti. Hesaplanan özellik bu turda onun yerini alıyor.

Eski testler

Yeni özellik ilk turdan bir testi kırmızıya çevirebilir. Böyle bir durumda ajan hangi testin neden kırmızıya döndüğünü sana tek cümleyle söylemeli ve düzeltirken testi silmemeli ya da gevşetmemeli.

Düzeltmeden sonra ilk turdan bildiğin test adları çıktıda yeşil işaretiyle durmalı. Biri kaybolduysa nedenini sor.

Kayıtların nerede duruyor

Veri tarayıcının localStorage denen küçük deposunda, bir anahtarın altında duruyor. Şablonun örnek uygulamasına daha önce bir şey girdiysen o kayıtları liste özelliğinden sonra görmemenin sebebi bu anahtar, çünkü ajan o turda onu bir kere değiştirdi. Anahtar ilk merge'den sonra sabit kalıyor.

  • Yeni ve isteğe bağlı bir alan eklemek eski kayıtlara zarar vermiyor.
  • Mevcut bir alanın adı değişirse eski kayıtlarda o alan boş görünüyor.
  • Bir alan silinirse uygulama o bilgiyi eski kayıtlarda da göstermiyor.
  • Anahtar değişirse liste boş açılıyor. Eski kayıtlar tarayıcıda duruyor ama uygulama onları bulamıyor.

Son üçünden birine ihtiyaç duyarsa ajan önce sana soruyor.

Kolay yapılan hata

Akış hızlanınca ajanın bu sorusuna okumadan evet diyebilirsin. O değişiklik merge edilince canlı adresteki listen boş açılır ya da bir alanı boş görünür.

Önce hayır de ve aynı sonucu mevcut alanlarla ya da yeni, isteğe bağlı bir alanla almanın yolunu sor. Kitap listesinde eşit sayfalı iki kitaptan önce ekleneni seçmek için yeni bir alan gerekmez, çünkü eklenme tarihi her kayıtta zaten duruyor.

Küçük görev

Preview açılınca SPEC.md'deki rakamlı örneği gir. Kitap listesinde bu, okunmamış 120 ve 300 sayfalık iki kitapla okunmuş 50 sayfalık bir kitabı girip önerinin 120 sayfalık kitap olup olmadığına bakmak demek.

Uygulamanın gösterdiği sonucu kağıtta yaptığın hesapla karşılaştır ve tutmuyorsa merge etmeden önce iki sonucu da ajana yaz.