Kalite#3 — Temeli sağlam kurmak: Yazılım Mimarisi

mehmet baran
Bilişim Hareketi
Published in
2 min readJul 19, 2018
15 Temmuz Şehitler Köprüsü yapılışı (1973)

Kaliteli yazılım serüvenimizde daha önce kalitenin gerekliliğinden ve kalitenin ne olduğundan kendimce bahsetmeye çalışmıştım. Bu yazıda ise yazılım mimarisini anlatmaya çalışacağım.

Bir yazılım kurgulanırken, yani tasarlanırken bazı kararlar alınır ve bu kararlara uygun şekilde yazılım geliştirme süreci ilerler. İhtiyaçları karşılayacak yazılım mimarisini ortaya koyabilmek için altyapısal bazı çalışmalar yapılır, benzer projelere göz atılır, deneysel çalışmalar yapılır, kullanılacak teknoloji ve araçlar incelenir ve nihayetinde ortaya bir taslak çıkar. Bu taslakla birlikte mimari de genel hatları ile ortaya çıkmış olur. Tabiki her projede bu taslak profesyonel bir şekilde çizilmeyebilir. Onun yerine bazılarımız planlarını aklında tutmayı sever:)

Peki bir yazılım mimarisinin olmazsa olmazları nelerdir? Tabiki en öncelikli konu ihtiyaçların karşılanması. Daha önce de bahsetmiştim. Müşteri tarafından talep edilen tüm gereksinimler eksiksiz karşılanmalıdır. Zaten mimari de bu gereksinimlere göre şekillenmelidir. Bu husus biz yazılımcıların çokça ıskaladığı bir durum olduğu için sık sık tekrar etme ihtiyacı duyuyorum:)

Olaya yazılımcı gözüyle bakacak olursak kuracağımız mimari sistemimizi kolay anlaşılabilir, kolay geliştirilebilir, kolay bakım yapılabilir ve kolay yaygınlaştırılabilir yapmalıdır. Daha tasarımın ilk günlerinde bu hususlar maksimum düzeyde göz önünde bulundurulmalıdır. Sayabileceğimiz birçok kolay olması gereken detay var aslında. Özetle mimarimiz kolay olmalıdır.

KISS : Keep it simple stupid

Tüm sistemler için tek bir iyi mimari söz konusu değildir. Örneğin; 5 kişilik bir ekip için monolitik bir mimari yeterli iken ekip büyüdükçe aynı mimari bir süre sonra sorunlar çıkarmaya başlayacaktır. Kalabalık bir ekip için sınırları iyi belirlenmiş modüllerden oluşan bir yazılım mimarisi ise daha az sorunla uğraşmalarını sağlayacaktır.

Bir mimari tasarım sürecinde sık yapılan hatalardan biri ise önce kullanılacak teknolojilere karar verilmesidir. Dolayısı ile mimari bu teknolojilerin ekseninde şekillenecektir. Ama daha ilk günden teknolojilerle bu kadar sıkı bir bağımlılığa gerek yoktur. Doğru olan ise; mimari ana hatları ile ortaya çıktıktan sonra mimariye uygun teknolojilerin ve ürünlerin belirlenmesidir. Kısaca bir mimari kullanılacak programlama dillerinden, kütüphanelerden ve diğer bileşenlerden olabildiğince bağımsız olmalıdır.

Özetle yazılım mimarisi konusunda aklımdan geçenleri karalamaya çalıştım. Bundan sonraki yazımda yavaş yavaş prensiplere giriş yapacağım.

--

--