Yazılımın farklı senaryolarda nasıl davranacağının ve doğru sonuçları üretip, üretmediğinin test edilmesi gerekmektedir. Bu testler yapılmadıysa yazılım ürün haline geldikten ve son kullanıcı ile buluştuktan sonra birçok hata ile karşılaşılır, sürekli yama yapma ihtiyacı ortaya çıkar. Önceden test yazmayıp süreden kazanıldığı düşünülse de sonradan bakım maliyeti olarak geri dönüşü olur.

Test Tipleri

PLINQ Nedir?

PLINQ, çok işlemcili bilgisayarlarda LINQ sorgularının hızını arttırmak için kullanılmaktadır. LINQ sorgularına çok benzemektedir. Aralarındaki temel fark LINQ’te koleksiyona ait tüm işler tek thread ile yapılırken PLINQ memorydeki koleksiyonu önce parçalara ayırır, sonrasında her parçayı bir iş thread’ine atayarak sonuçları üretir. Bu sayede sonuçları çok hızlı bir şekilde getirir.

var…

TPL ‘in amacı concurrency ve parallelism işlemlerini basitleştirerek geliştiricilerin çok daha üretken olmasını sağlamaktır. TPL System.Threading ve System.Threading.Tasks namespace’i altında bulunan bir dizi tip ve metottur. İşin bölünmesi, thread’lere ayrıştırılması, threadlerin yönetilmesi, cancellation desteği, durum yönetimi gibi bir çok işi yapar.

Microsoft dokümanında da yazdığı gibi TPL her kod için…

Photo by Andrew Coop on Unsplash

Bu yazıda uzun uzun asenkron programlama ve metotlarını anlatmak yerine kavramın mantığından kısaca bahsedip örnek üzerinden senkron ve asenkron uygulama farkını anlatacağım. Asenkron programlamanın temel mantığını kavradıktan sonra microsoft dökümanı üzerinden asenkron programlama ve asenkron programlama pattern’ları öğrenilebilir.

Asenkron programlama bir işin yapılırken başka işlerin bekletilmemesi(blocking) demektir. Bunu aynı thread’…

Decorator design pattern dinamik olarak nesneye yeni özellikler kazandırılmasını sağlar.

Şu öğeleri içerir;

Component: Yeni özellikler eklenmesini istediğimiz sınıfların inherit edileceği soyuttur.

ConcreteComponent: Component soyutunun yeni özellikler kazandırılarak implemente edilmiş somut halidir.

Decorator: Decorator da component soyutunun implemente edilmiş soyut bir objedir. İçerisinde component türünde bir property barındırarak onu özelleştirme işlemlerini yapar.

ConcreteDecorator: Component’e yeni özellikler ekleyen, decorator’dan türetilmiş somut sınıftır.

Bir otomobilin donanım paketlerine göre fiyat ve özellikler bakımından değişmesini decorator design patternı ile uygulayacağız. Öncelikle ICar (Component) interface’i ve Car(ConcreteComponent) sınıfını oluşturalım.

İçerisinde bir adet car sınıfından obje barındıran ve car sınıfına yeni özellikler ekleyecek donanım paketlerini (ConcreteDecorator)tanımlayalım.

Car sınıfından bir instance alarak paketler yardımıyla özelleştirelim.

program çıktısı şu şekilde olacaktır.

I’ll explain to the fourth creational design pattern prototype. Before going on, I’ll talk about “stack-heap memory, value-reference types, mutable-immutable objects, shallow-deep copy” subjects to understand better.

Stack-Heap Memory

When developing an application, memory is allocated according to used objects and variables in any software development language. In runtime, created object in…

Bir ağaç yapısı inşa etmek istiyorsanız ve kurduğunuz yapının yatay-dikey olarak kolayca genişlemesi sizin için önemliyse composite design pattern’ını kullanmalısınız.

Composite design pattern şu öğelerden meydana gelir.

Component: Komposizyonda child objeler içerecek sınıfın inherit edileceği soyut veya base class’tır. Child objeler için ekleme, çıkarma gibi metodları vardır.

Leaf: Komposizyondaki en…

Singleton Design Pattern’s main purpose is to creating only one instance to one class and accessing it globally. Generally, it is used to keep under control to accessing sources like databases and files. Also, the Unit of Work Pattern that is used for changes that made the code side push to the database at one time, uses the Singleton Design Pattern. Let’s code it.

I created the class Singleton with a private constructor, then I created a public method for getting only one instance of the class. I made a thread-safe operation in the method with the locker object.

Let’s get two instances from Singleton class then see they are equal or not.

When run the app output will be this.

Bridge design patternını bir örnek üzerinden anlatacağım. 3 sayfası ve 2 farklı dilde içerikleri olan bir web sayfası geliştirmemiz gerekiyor. Bridge uygulamadan bu örneği yaparsak IWebPage türünde bir interface ve bu interface implemente edilmiş Home, Contact ve Services sınıflarını oluşturacağız. Sonrasında her bir sayfanın Türkçe ve İngilizce örnekleri için ayrı…

Adapter Design pattern bir sınıf arayüzünü başka bir sınıf arayüzü olarak kullanmamıza olanak sağlar. Sahip olduğumuz bir class var ve bunu bir methoda göndermek istiyoruz. Ancak methodun istediği interface’e elimizdeki class uymuyorsa Adapter design patternını kullanabiliriz.

Diagramı oluşturan nesnelerin görselleştirilmiş UML diagramı şu şekildedir.

Client: Belirli bir arayüze sahip class…

recep orhan

Software Developer, Blogger

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store