Yazılımda Modüler Yaklaşım

Mustafa KESER
3 min readMay 23, 2023

--

Projeler, özellikle büyük bir projeleri daha yönetilebilir olması için kodların belirli bir sorumluluk veya işlevi yerine getirecek şekilde parçalara bölünerek kod yazılması yaklaşımıdır. Modüler bir yapıda dizayn edilen kodlar, farklı kod bloklarının bağımsız olarak geliştirilmesini, test edilmesini ve sürdürülmesini sağlar. Her modül, belirli bir sorumluluğa veya işlevselliğe sahip olduğundan, kodun anlaşılmasını, hata ayıklanmasını, yeniden kullanılmasını ve geliştirilmesini kolaylaşıştır. Modüllerin bağımsızlığı, projenin büyüklüğüne ve gereksinimlerine bağlı olarak farklılık gösterebilir, ancak genel olarak her bir modülün tek bir sorumluluğu veya işlevi olması hedeflenir.

Her modül kendisi bir is veya işleve sahiptir ayrıca birbirleriyle etkileşim ile bir araya gelerek daha büyük bir sistem oluşturabilirler. Modüler tasarım, karmaşık sistemleri daha küçük ve yönetilebilir parçalara böler ve her bir parçayı bağımsız olarak geliştirilebilir hale getirir. Bu şekilde, projenin bakımı, genişletilmesi ve test edilmesi daha kolay hale gelir.

Örneğin, bir “öğrenci yönetim” uygulamamız olsun. Bu uygulama, öğrenci kimlik bilgileri, öğrencinin aldığı dersler, derse giren öğretmen bilgileri, öğrencinin notları, devamsızlık durumu gibi farklı işlevleri yerine getiren sınıf ve metotlardan oluşabilir. Her bir modül, kendi iş veya işlevini yerine getirir ve diğer modüllerden bağımsız olarak çalışabilir. Bu şekilde, her bir modülün geliştirilmesi, test edilmesi ve bakımı daha kolay olur.

Modüler bir tasarım, kodun yeniden kullanılabilirliğini artırır, hataları izole eder ve geliştirme sürecini daha etkili hale getirir. Modüller arasındaki bağımlılıkların iyi yönetilmesi, bir modülün değiştirilmesi veya yeniden yapılandırılması gerektiğinde diğer modülleri etkileme riskini azaltır daha sürdürülebilir, esnek ve genişletilebilir olmasını sağlar.

Kısaca modüler yapının özelliklerini açıklayalım:

1. Sorumluluk: Her modül, belirli bir işlevi veya sorumluluğu yerine getirir. Örneğin, kullanıcı yönetimi, veritabanı erişimi, kaydetme, silme, güncelleme gibi belirli bir işlevi yerine getiren modüller olabilir. Bu, kodun bölümlere ayrılmasını ve her birinin belirli bir iş veya işleme sahip olmasını sağlar.

2. Bağımsızlık: Modüller, birbirlerinden bağımsız olarak çalışabilirler. Modül içindeki değişikliklerin diğer modülleri etkilememesi önemlidir. Bağımsızlık, modüllerin ayrı ayrı geliştirilmesini, test edilmesini ve sürdürülebilir olmasını kolay hale getirir.

3. Arayüzler: Modüllerin birbirleriyle etkileşim için tanımlanan arayüzler kullanılır. Bu arayüzler ile veri alışverişi yapmasını sağlanır.

4. Kapsülleme: Modüller, kendi içerisindeki detayları gizler ve sadece belirlenen arayüz üzerinden hizmet sunar. Modülün iç yapısı, diğer modüllere gizlenir ve dışarıya sadece belirli bir davranış veya işlevsellik sunar. Bu, bir modülün iç detaylarına diğer modüllerin doğrudan erişimini engeller ve modülün bağımsızlığını korur.

5. Yeniden Kullanılabilirlik: Modüler bir yaklaşım, kodun yeniden kullanılabilirliğini artırır. Modüller, bağımsız birimler olarak tasarlandıkları için, başka projelerde veya farklı senaryolarda kolayca kullanılabilir. Bu, geliştirme sürecini hızlandırır ve kodun daha verimli bir şekilde kullanılmasını sağlar.

Modül tasarımın faydalarına kısaca değinelim:

1. Kodun yeniden kullanılabilirliğini artırır: Modüler bir yapı, tekrar kullanılabilir kod parçaları oluşturmayı sağlar bu sayede her bir modül bağımsız olarak proje içerinde farklı sınıflarda, farklı senaryolarda yeniden kullanılabilir. Bu da zamanı etkili kullanmayı sağlar.

2. Bakımı ve hata ayıklamayı kolaylaştırır : Hataların ve sorunların daha hızlı tespit edilip edilerek izole edilmesini sağlar. Bir modüldeki bir hata, diğer modülleri veya sistem üzerinde genel bir etki yaratmadan düzeltilebilir. Bu da hata ayıklama sürecini kolaylaştırır ve çözülmesini sağlar.

3. Paralel geliştirme ve ekip çalışmasını destekler: Farklı ekiplerin veya geliştiricilerin bağımsız olarak çalışmasını sağlar. Bu şekilde her bir ekip veya geliştirici, kendi sorumluluk alanlarındaki modülü geliştirebilir ve değişiklik yapabilir. Bu da paralel geliştirme sürecini destekler ve projenin hızlı ilerlemesini sağlar.

4. Sürdürülebilirlik ve geliştirilebilirlik: Yazılımın sürdürülebilirliğini ve geliştirilebilirliğini artırır. Kodlar bağımsız olarak değiştirilebilir veya yeni modüller eklenebilir. Bu sayede, sistem ihtiyaçları değiştikçe veya yeni özellikler eklenmesi gerektiğinde, mevcut kodlar etkilenmeden gelişmeler yapılabilir.

5. Test edilebilirlik: Modüllerin bağımsızlığı, her bir modülün ayrı ayrı test edilmesini kolaylaştırır. Bir modülün test edilmesi, diğer modülleri etkilemez ve test süreci daha yönetilebilir hale gelir.

Teşekkür ederim.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response