ݺߣ

ݺߣShare a Scribd company logo
27
ABAP MİMARİSİ
HAKKINDAYENİ
BİR KİTAP:“DESIGN
PATTERNS IN ABAP
OBJECTS”
Dr. Kerem Köseoğlu
Freelance SAP Yazılım Mimarı
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 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 gelir.
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ımlanan“Design
Patterns in ABAP Objects”adlı kitabımı,
tam da bu ihtiyaca yönelik olarak
kaleme aldım.Yaklaşık 400 sayfalık
bu kitapta, 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ışmanlık
tecrübemde içinde bulunduğum
projelerden alınmış örneklerden oluşan
vaka analizlerini 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
koymaktadır.
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.
.................................................................................................................................................................. KÖŞE YAZISI

More Related Content

ABAP mimarisi hakkında yeni bir kitap: "Design Patterns in ABAP Objects"

  • 1. 27 ABAP MİMARİSİ HAKKINDAYENİ BİR KİTAP:“DESIGN PATTERNS IN ABAP OBJECTS” Dr. Kerem Köseoğlu Freelance SAP Yazılım Mimarı 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 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 gelir. 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ımlanan“Design Patterns in ABAP Objects”adlı kitabımı, tam da bu ihtiyaca yönelik olarak kaleme aldım.Yaklaşık 400 sayfalık bu kitapta, 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ışmanlık tecrübemde içinde bulunduğum projelerden alınmış örneklerden oluşan vaka analizlerini 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 koymaktadır. 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. .................................................................................................................................................................. KÖŞE YAZISI