On Mon Feb 27 19:07:33 2012, Volkan YAZICI wrote:
> Elinize sağlık, Play'de caching'i anlamak adına çok güzel bir guide.
Teşekkürler.
> Benim nacizane iki yorumum olacak:
>
> 1) Çözünürlük biraz daha yükseltilebilinir, özellikler kodları okuması
> zor oluyor.
>
Bu kez montaja vakit ayıramadığım için böyle oldu:( Kusura bakmayın. Bu
arada kodlar Github'da mevcut:
https://github.com/canavar/kolay/blob/master/app/cache/CacheManager.java
> 2) CacheManager'da her bir model için ayrı ayrı metodlar oluşturmak
> yerine,
>
> public class CountCache {
> public static void listen(Model model, String key);
> public static Long get(String key);
> }
>
> gibi daha generic bir arayüz kullanabilirdik, diye düşünüyorum.
Bu örneği biraz daha açabilir misiniz? Özellikle modeller içinde statik
metodlar yer aldığı için bu tür yapılar biraz sıkıntı oluyor.
Implementasyon kafamda canlanmadı açıkçası.
On Mon Feb 27 19:07:33 2012, Volkan YAZICI wrote:
> 2) CacheManager'da her bir model için ayrı ayrı metodlar oluşturmak
> yerine,
>
> public class CountCache {
> public static void listen(Model model, String key);
> public static Long get(String key);
> }
>
> gibi daha generic bir arayüz kullanabilirdik, diye düşünüyorum.Bu örneği biraz daha açabilir misiniz? Özellikle modeller içinde statik
metodlar yer aldığı için bu tür yapılar biraz sıkıntı oluyor.
Implementasyon kafamda canlanmadı açıkçası.
İki yöntemi birleştirerek yeni bir gist hazırladım:
https://gist.github.com/1931497
Buradaki motivasyonum şuydu:
1. İstatistikler önbellekte tutulmalı çünkü Cache implementasyonum
zaman içerisinde değişebilir.(Memcache, Hazelcast, Redis...)
2. Yöntem yalnızca count() metodu için değil, query alan count() metodu
ve geliştiricinin ekleyebileceği diğer static metodlar(MappedSuperClass
içine eklenecek ve runtime'da enhance edilecek countByModifier,
countByCreator metodları gibi) için de çalışabilmeli.
Son hali oldukça hoşuma gitti. Volkan hocam tekrar teşekkürler.
Aklınıza gelen başka geliştirme var mı?