AOP NEDİR ? (Aspect Oriented Programming)
AOP yazılımın karmaşıklığını azaltmak için tasarlanmıştır. Günümüzde C#'ta Autofac desteğiyle ve Java'da Spring'in içinde bulunan hazır bir yapıdır. AOP Cross Cutting Concerns (Dikine Kesen Methodlar)'la kullanılır. AOP Business katmanındaki ve de diğer katmanlardaki karışıklığı azaltır, Validation, Transaction, Performance, Auth gibi methodları method başında ortasında ya da sonunda kullanılmasını sağlar.
(C# Örneği)
[ValidationAspect(typeof(ProductValidator))]AOP yazılımın karmaşıklığını azaltmak için tasarlanmıştır. Günümüzde C#'ta Autofac desteğiyle ve Java'da Spring'in içinde bulunan hazır bir yapıdır. AOP Cross Cutting Concerns (Dikine Kesen Methodlar)'la kullanılır. AOP Business katmanındaki ve de diğer katmanlardaki karışıklığı azaltır, Validation, Transaction, Performance, Auth gibi methodları method başında ortasında ya da sonunda kullanılmasını sağlar.
(C# Örneği)
Log
Transaction
...
public IResult Add(Product, product)
{
_productDal.Add(product);
}
Bu method'ta Add Methodu'na Validation Aspect'le doğrulan hangi tip ile çalışacaksın ProductValidator tipi ile çalışacağım denilmiştir.
İçinde Fluent Validation paketiyle RuleFor(); la yazılmış kurallar bulunabilir.
Java'da AOP hazır halde bulunur.
CROSS CUTTING CONCERNS NEDİR ?
Cross Cutting Concerns yani projeyi, uygulamayı, dikine kesen methodlara denir. Validation, Transaction, Performance, Auth gibi.
Bu methodların yazıldığı yerlerdir. Her yerde kullanabilmek için C#'ta kurumsal mimarili projelerde Core katmanında yazılır ya da
hiç bir şeyi referans almadan yazılır. Projede business katmanını yani iş kuralları yazıldığı yerin rahat kalması ve Clean Code için çok önemli bir şeydir.
-Reqz