Yazar: adnanert

  • Derinlik mi Genişlik mi?

    yazar:

    kategori:

    Derinlemesine bir yazılım dilini bilen, yazılım geliştirme ilkelerine hakim bir geliştirici mi? Yoksa çok sayıda teknolojii yeterince bilen bir full-stack geliştirici mi? Bir kere şu konulara hakim olmanın çıkacak ürünün kalitesini doğrudan etkilediğini biliyoruz aslında. Neydi onlar? Bunları yapan geliştiriciye ver projeyi, yaslan arkana. Ama günümüz teknolojisinde bu projenin ihtiyaç duyduğu teknoloji bağlantıları neler ve…

  • Lazy vs Eager Loading

    yazar:

    kategori:

    “Lazy Loading”, Türkçeye tembel yükleme olarak çevrilse de, kavramsal olarak bu çeviri bazen kafa karıştırabilir. Aslında mantık şudur:İlişkili veriler, ancak onlara gerçekten ihtiyaç duyulduğunda sorgulanır. Bu yaklaşım, başlangıçta performans kazandırabilir, ancak kontrolsüz kullanıldığında ciddi N+1 problemi doğurur. Adım adım gidelim. Lazy Loading kullanabilmemiz için UseLazyLoadingProxies() çağrısı yapılmalıdır. OnConfiguring metodunda : Ya da AddDbContext metodunda Diğer…

  • AutoMapper mı? Kontrollü Mapping mi? Deneyimden Öğrendiklerim…

    yazar:

    kategori:

    Bir önceki çalıştığım firmada çok güzel bir yaklaşımla mapping işlemleri yapıyorduk. AutoMapper gibi kütüphaneler kullanmadık. Çünkü AutoMapper, bazı görünmeyen ve fark edilmesi zor hatalara yol açabiliyor. Örneğin: Bu yüzden biz mapping işlemlerini doğrudan extension methodlar ile, açık ve test edilebilir bir şekilde yönetiyorduk. Refactor dostu, okunabilir ve kontrol tamamen bizdeydi. Bu tür kütüphaneler yerine basitçe…

  • Adapter, Strategy ve Factory Pattern ile Çoklu Dosya Yüklemek

    Modern yazılımlarda dosya yüklemek genellikle Amazon S3 veya Azure Blob gibi servislerle yapılır. Ancak birçok kurum hala FTP gibi eski altyapıları kullanmaktadır. Bu yazıda, eski ve yeni dosya yükleme sistemlerini nasıl tek bir noktadan yönetebileceğimizi, Adapter, Strategy ve Factory Pattern’lerini kullanarak anlatmaya çalışacağım. Bu senaryoda kullandığım tasarım desenleri ve görevleri şu şekilde: İlk olarak bir…

  • Singleton Tasarım Deseni: En Sık Yapılan Hatalar ve Çözümleri

    1 – Gizli Bağımlılık Problemi Singletone bir nesneyi DI kullanarak ihtiyaç duyulan nesneye vermek gerekir. Aksi takdirde aşağıdaki gibi hatalı bir davranış test yazarken singleton nesneyi mock edememene sebep olur. Sınıfın dışa bağımlılığı yokmuş gibi görünmesine sebep olur. Bu sınıfı test ederken LoggerSingleton’ı mock edemezsiniz çünkü KitchenService sınıfı içinde bir constructor bulunmuyor. Bunun yerine DI…

  • Factory Tasarım Deseni

    Temel mantık birbirine benzer nesnelerin aynı arayüzden türetilerek oluşturulmasıdır. Bununla beraber sınıflar bir arayüzden tanımlandığı için gevşek bağlılık prensibini de yerine getirmiş olur. Genel olarak kullanım şekli isteği gönderen istemcinin gönderdiği isteğe göre sonucu döndürebilecek yapının çalışma zamanında oluşturulmasıdır. İşin püf noktası zaten burada gizli “istemciden gelen bilgiye göre yapının oluşturulması”. Bu tasarım deseni bilgisine…