ABAP Mimarisi Hakkında Yeni Bir Kitap: “Design Patterns in ABAP Objects”

1464-ppt

Bağlantılar:

Bir bina inşa etme ihtiyacı ortaya çıktıktan sonra, işe mimari tasarım ile başlanır. Ne yaptığını bilen tecrübeli bir mimar binanın tasarımını tamamlamadan inşaat başlamadığı gibi, mimarlık görevini de sadece konunun uzmanı üstlenir. İşin sahibi de, işçi de, mimarlık işini yapmaz.

Özüne baktığımızda; aynı durum yazılım dünyası için de geçerlidir. Yeni bir yazılımın geliştirilmesi de mimari tasarım ile başlar. Yazılım mimarisi, ayrı bir uzmanlık konusudur; analist, danışman veya geliştirici olmanın ötesinde ayrı bir tecrübe ve eğitim gerektirir.

Ancak mimari tasarım, pek çok durumda kullanıcı – analist – danışman – geliştirici arasında bir yerlerde erimektedir. Başlı başına bir uzmanlık konusu olan yazılım mimarlığı, aslında projelerde ayrı bir rol olarak düşünülmelidir.

Tecrübeli bir mimarın elinden çıkan bir yapı; güçlü, esnek, geliştirilebilir ve tekrarsız parçalardan oluşacaktır. Bu yapıdaki parçalar; birbirinden bağımsız test edilebileceği gibi, ihtiyaç değiştiğinde başka parçalarla yer değiştirebilir veya ileride başka ihtiyaçlarda tekrar da kullanılabilir. Bu da şirketler açısından, daha düşük risk ve maliyet ile daha kaliteli yazılıma sahip olmak anlamına gelmektedir.

Bu tarz bir mimari yaklaşım için, Amerika’yı tekrar keşfetmeye gerek yok. Yazılım dünyasında “Design Pattern” adıyla bilinen hazır şablonlar, sık karşılaşılan ihtiyaç ve problemlere karşılık ortaya çıkmıştır. Zamanın testinden geçen Design Pattern’lar, dilden ve platformdan bağımsız olarak tüm dünyada kullanılmaktadır.

Örneğin; bir programdaki olaylardan bir başka programın da haberi olması gerekiyorsa, “Observer Design Pattern” bu konuda hazır bir mimari şablon önerir. Alternatif veri kaynakları söz konusuysa, “Data Access Object” şablonu sayesinde iş katmanı ile veri katmanı izole edilebilir. Hafızayı zorlayacak programlar için, “Flyweight” şablonu sayesinde nesnelerin paylaşılması ve hafıza ihtiyacının azalması sağlanabilir. Farklı geliştiriciler tarafından ek özellik eklenebilecek merkezi sınıflar, “Visitor Design Pattern” sayesinde değişikliğe kapalı ama geliştirmeye açık hale getirilebilir. Değişik senaryolarda farklı algoritmayla çalışması gereken bir program için, “Strategy Design Pattern” kullanılabilir. Onay stratejisi belirlemek gibi değişken koşullara bağlı karar sistemleri, “Chain of Responsibility” ile kolay ve esnek bir şekilde uygulamaya alınabilir.

Design Pattern kadar, kaçınılması gereken Anti-Pattern’ların farkında olmak da mimari tecrübenin bir parçasıdır. Örneğin; sorumlulukların tamamını tek bir sınıfa yüklemek “Blob” adı verilen zararlı bir Anti-Pattern’dir. Programlar arasında kodları paylaşmak yerine kopyalamak, “Copy-Paste Programming” olarak adlandırılır. Alt katmanların üst katmanlara bağımlı hale getirilmesi, “Jumble” olarak etiketlenir. Hiç kırılmadan yazılmış yüzlerce satır kod, “Spaghetti Code” adı verilen bir Anti-Pattern’dır.

Örnekler çoğaltılabilir. İşin özü; sık rastlanan yazılım ihtiyaçları için, analist / geliştiricinin tecrübesi kapsamında bir anlamda “şansa bırakılmış” bir tasarıma gitmek yerine, zamanın testinden geçmiş Design Pattern’lar örnek alınarak ve Anti-Pattern’lardan kaçınılarak daha kaliteli bir mimari ile işe başlanabilir.

Bu konuda kaynak aradığınızda, platform bağımsız veya SAP dışı platformlara yönelik pek çok kitap bulabilirsiniz. Ancak; doğrudan doğruya SAP / ABAP platformu üzerinde Design Pattern uygulamalarını anlatan kapsamlı bir kitap, bu konuda eksikliği hissedilen bir kaynak idi.

SAP Press’ten yayınlanan “Design Patterns in ABAP Objects” adlı kitabımı, tam da bu ihtiyaca yönelik olarak kaleme aldım (www.sap-press.com/4277). Yaklaşık 400 sayfalık bu kitap, yazılım mimarisinin temel modelleri olarak kabul edilen Design Pattern’ların SAP / ABAP platformunda nasıl uygulanabileceği incelenmektedir.

Her bir bölüm, 15 yıllık danışmanık tecrübemde bulunduğum projelerden alınmış örneklerden oluşan vaka analizleri de içermektedir.

Tam 27 Design Pattern’ın tasarım şemaları ve kod örnekleriyle birlikte incelendiği kitap, aynı zamanda yazılım mimarisinin temel prensiplerini ve sık yapılan mimari hataları da ortaya koyuyor.

Bir senelik titiz bir çalışmayla ortaya çıkan ve piyasada yayınlanmış beşinci eserim olan bu kitabı; programcılıktan mimarlığa adım atmak isteyen ABAP danışmanları kadar, daha esnek ve sağlam fonksiyonel tasarımlar yapmak isteyen modül danışmanlarına da tavsiye ediyorum.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s