Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Design Pattern Nedir? GoF Kataloğu, Pattern Anatomisi ve Modern Dillerde Kaybolan Pattern'ler
Design pattern, belli bir bağlamda tekrar eden bir tasarım problemine verilmiş, adı, rolleri ve bedeli (consequences) belli bir çözümdür; ezberlenecek bir diyagram değildir. Alexander'dan GoF'a pattern fikri, GoF'un 13 bölümlük template'i, purpose × scope haritası ve Norvig'in tespitiyle C#'ta yield, event ve lambda'ya dönüşüp görünmez olan pattern'ler.
Iterator ve Interpreter: C#'ın İçine Gömülmüş İki Pattern — yield return ve Expression Tree
Iterator, bir collection'ın içini göstermeden element'lerini sırayla dolaşmayı sağlar ve C#'ta IEnumerable, IEnumerator ve yield return olarak dilin içindedir; Interpreter ise küçük bir dilin gramerini bir AST olarak temsil edip yorumlar. Sayfalı bir katalog API'sini yield ve IAsyncEnumerable ile okumayı, kampanya kuralları için küçük bir kural dili yazıp onu Expression tree'ye derlemeyi, Regex'in içindeki interpreter'ı ve dinamik expression'larda güvenlik sınırını gerçek çıktılarla görüyoruz.