Dosyaya bağlı hafıza
git blame bir satırı kimin değiştirdiğini söyler. Linter şu an neyin yanlış
olduğunu söyler. Bu dosyaya en son dokunulduğunda ne olduğunu ve ne yapıldığını
yalnızca bee söyleyebilir.
bee remember "** sınırı sessizce düştü, bu yüzden **/foo.cs, notfoo.cs ile eşleşti" \ --type error \ --solution "sınırı koru: (?:.*/)? — .* değil" \ --prevention "negatif test yaz — eşleşmeMEsi gereken bir desen" \ --path 'src/Bee/Hooks/*.cs'Bundan sonra eşleşen bir dosyayı değiştirmek üzere olan herkes bunu görür:
bee lint src/Bee/Hooks/PathGlob.cs
# bee — known about src/Bee/Hooks/PathGlob.cs# - [error] ** sınırı sessizce düştü, bu yüzden **/foo.cs, notfoo.cs ile eşleşti# ↳ fix: sınırı koru: (?:.*/)? — .* değil# ↳ avoid: negatif test yaz — eşleşmeMEsi gereken bir desen# ↳ matched: src/Bee/Hooks/*.cs--path tekrarlanabilir ve kurallarla aynı glob
notasyonunu kullanır — aslında aynı eşleştiriciyi, çünkü bir glob’un ne anlama
geldiğine karar veren iki merci, birden fazladır.
Nereye gelir, nereye gelmez
Bölüm başlığı “Nereye gelir, nereye gelmez”| dosyaya bağlı hafıza | |
|---|---|
eşleşen dosyada bee lint |
✅ gelir |
başka herhangi bir dosyada bee lint |
— sessiz |
| yazma öncesi hook | ✅ gelir |
| oturum başı | — gelmez |
| her prompt | — gelmez |
bee remember search |
✅ hâlâ bulunur |
İki yokluk, özelliğin kendisidir. Dosyaya bağlı bir hafıza, o dosyaya dokunulmayan turlarda hiçbir şey tutmaz — yukarıdaki örnek için ölçüldü: ~37 token, ve yalnızca o yol adı geçtiğinde.
Önce hatalar
Bölüm başlığı “Önce hatalar”Sınır devreye girdiğinde düşen şey en az acil olan olmalı. Bir dosyayı
değiştirmek üzere olan kişinin “geçen sefer bu bozuldu” bilgisine, “şöyle bir
kural var”dan daha çok ihtiyacı vardır; bu yüzden error hafızaları öne
sıralanır. Komut en fazla 5 tanesini gösterir; yazma öncesi hook 3 alır, çünkü
iki saniyelik bütçede kuralların yanında yol alır.
bee lint --memory 0 # tamamen atlabee lint --memory 10 # ya da daha fazlasını isteBilgi, talimat değildir
Bölüm başlığı “Bilgi, talimat değildir”Blok kendi başlığı altında, kurallardan ayrı basılır — ve bu kozmetik değildir.
Kural, uyulacak bir talimattır. Hafıza, geçmiş hakkında bir olgudur. Tek listede
basıldığında model ikisine aynı davranır — ve bir hatayı tarif eden bir error
hafızasına uymak, o hatayı yeniden üretmek demektir. Farklı başlık, farklı fiil.
Çözüm ve önlem sorunla birlikte taşınır, çünkü “bu bir kez bozuldu” bilgisi “ve şu düzeltti” olmadan kimsenin harekete geçemeyeceği bir uyarıdır.
Neyi bağlamalı
Bölüm başlığı “Neyi bağlamalı”Aksi hâlde yeniden keşfedilecek olanı bağlayın:
# belirli bir dosyadaki tuzakbee remember "AppKit audit alanlarını damgalamıyor — CreatedAt'i initializer'da ver" \ --type error --solution "= DateTimeOffset.UtcNow, property üzerinde" \ --path '**/Entities/*.cs'
# bir dizini yöneten kararbee remember "bu katman CQRS yazma tarafı; okumalar projeksiyondan geçer" \ --type decision --reason "okuma modelinin tutarlılık sözleşmesi farklı" \ --path 'src/Orders/Commands/**'Her yerde doğru olanı bağlamayın — o bir kuraldır ya da sıradan bir hafıza. Bağlama, yalnızca burada önemli olan için vardır.