İçeriğe geç
Menü
TR EN
info@forbayt.com İstanbul

Sürdürülebilir bir yazılım projesinin temel ilkeleri

Yazılımın değeri yayına alındığı gün değil, yıllar içinde ne kadar kolay geliştirilebildiği ve işletilebildiği ile ölçülür. Bakımı kolay sistemlerin ortak ilkeleri.

  • YAZARForbayt Technology
  • YAYIN2 Eylül 2026
  • OKUMA6 dk
  • KATEGORİYazılım Mühendisliği

Bir yazılım ürününün maliyetinin büyük bölümü ilk sürümde değil, sonraki yıllarda ortaya çıkar. Yeni gereksinimler eklenir, ekipler değişir, kullanılan kütüphaneler eskir ve sistem başlangıçta öngörülmeyen yük altında çalışmaya başlar. Sürdürülebilir bir yazılım, bu değişimi düşük sürtünmeyle karşılayabilen yazılımdır. Bu yazıda, proje türünden bağımsız olarak geçerli olan temel ilkeleri ele alıyoruz.

1. Kapsamı yazılı ve görünür tutmak

Sürdürülebilirlik kodla değil, kapsamla başlar. Hangi iş ihtiyacının çözüldüğü, hangi kullanıcı rollerinin bulunduğu ve neyin bilinçli olarak kapsam dışında bırakıldığı yazılı olmalıdır. Kapsamın belirsiz kaldığı projelerde teknik borç, kodun kalitesinden çok verilen kararların izlenememesinden doğar.

  • İş hedefleri ve başarı ölçütleri kısa bir dokümanda toplanmalıdır.
  • Kapsam dışı bırakılan maddeler de listelenmelidir; böylece sonradan eklenen talepler bilinçli bir değerlendirmeden geçer.
  • Her büyük teknik karar için "neden bu yol seçildi" sorusunu yanıtlayan kısa bir karar kaydı tutulmalıdır.

2. Sınırları net modüller kurmak

Bir sistemin tamamını tek bir bütün olarak düşünmek, değişikliğin etkisini kestirmeyi zorlaştırır. Alan bilgisine göre ayrılmış modüller (siparişler, kullanıcılar, raporlar gibi) ve bu modüllerin birbirleriyle yalnızca tanımlı arayüzler üzerinden konuşması, bir bölümdeki değişikliğin diğerlerini bozma riskini azaltır.

Pratik kurallar

  • İş kuralları denetleyicide değil, ayrı bir servis katmanında yer almalıdır.
  • Veri erişimi tek bir yerde toplanmalı, aynı sorgu farklı dosyalarda çoğaltılmamalıdır.
  • Bir modülün başka bir modülün iç tablolarına doğrudan erişmesinden kaçınılmalıdır.

3. Otomatik testlerle değişimi güvenli hale getirmek

Test, "şimdi çalışıyor mu" sorusundan çok "değiştirdiğimizde bir şeyi bozduk mu" sorusuna cevap verir. Tüm kodu test etmek gerekmez; ancak para, yetki, veri bütünlüğü ve entegrasyon gibi kritik akışların otomatik testle korunması gerekir. Testin hızlı çalışması da önemlidir: yavaş çalışan test paketi çalıştırılmamaya başlar.

  • İş kurallarını doğrulayan birim testleri ve uçtan uca akışları doğrulayan az sayıda entegrasyon testi birlikte kullanılabilir.
  • Bir hata bulunduğunda önce onu yeniden üreten bir test yazmak, aynı hatanın geri dönmesini önler.
  • Testler sürekli entegrasyon sürecinde her değişiklikte çalıştırılmalıdır.

4. Bağımlılıkları bilinçli yönetmek

Her ek kütüphane, projeye bir bakım yükümlülüğü ekler. Bir bağımlılık seçerken sürdürülme durumu, lisansı, güvenlik geçmişi ve ihtiyacı kendi kodumuzla karşılamanın maliyeti birlikte değerlendirilmelidir. Sürüm numaralarının sabitlenmesi ve güncellemelerin düzenli aralıklarla, küçük adımlarla yapılması büyük sıçramalı yükseltmelerin riskini azaltır.

5. Dokümantasyonu kodun yanında yaşatmak

Kurulum adımları, ortam değişkenleri, dağıtım süreci ve temel mimari kararlar kod deposunda tutulmalıdır. Ayrı bir wiki'de unutulan doküman çabuk eskir. Yeni bir geliştiricinin ya da bakım ekibinin sistemi kısa sürede ayağa kaldırabilmesi, sürdürülebilirliğin en somut göstergelerinden biridir.

  • Depoda güncel bir kurulum ve çalıştırma kılavuzu bulunmalıdır.
  • Ortam değişkenleri örnek bir dosyada, hassas değerler olmadan listelenmelidir.
  • Dağıtım ve geri alma adımları yazılı olmalıdır.

6. Gözlemlenebilirlik: sistemin ne yaptığını görebilmek

Üretimde çalışan bir sistemde sorun çıktığında yapılması gereken ilk şey, ne olduğunu görmektir. Anlamlı günlük kayıtları, hata izleme ve temel sağlık kontrolleri olmadan sorunlar kullanıcılar tarafından fark edilir. Günlüklerde kişisel veri ve gizli anahtarların yer almamasına özellikle dikkat edilmelidir.

7. Küçük ve sık yayınlar

Büyük ve seyrek yayınlar, risk biriktirir. Küçük değişikliklerin otomatik bir hat üzerinden test edilip yayınlanması, sorun çıktığında nedenini bulmayı ve geri dönmeyi kolaylaştırır. Veritabanı değişiklikleri için geri alınabilir geçişler (migration) kullanmak ve canlıya alma öncesinde yedek almak temel bir alışkanlık olmalıdır.

8. Güvenliği sonradan eklenecek bir özellik olarak görmemek

Yetkilendirme, girdi doğrulama, parola ve oturum yönetimi gibi konular tasarım aşamasında ele alınmalıdır. OWASP gibi kamuya açık kaynakların listelediği yaygın zafiyet türlerini geliştirme sürecinin kontrol listesine koymak, sonradan pahalıya mal olacak açıkların önüne geçer.

Sonuç

Sürdürülebilir yazılım, tek bir tekniğin değil, birbirini destekleyen küçük alışkanlıkların sonucudur: yazılı kapsam, net modül sınırları, otomatik test, bilinçli bağımlılık yönetimi, güncel doküman, gözlemlenebilirlik ve düzenli yayın. Bu alışkanlıklar başlangıçta ek çaba gibi görünse de, sistem büyüdükçe değişim maliyetini belirgin biçimde düşürür. Mevcut bir sistemi bu açılardan değerlendirmek ya da yeni bir projeyi sağlam temellerle başlatmak istiyorsanız, ihtiyaçlarınızı bizimle paylaşabilirsiniz.

0 yorum

Bu yazı hakkında ne düşünüyorsunuz?

Bu yazıya henüz yorum yapılmamış. İlk yorumu siz yazın.

Yorum yazın

E-posta adresiniz yayımlanmaz. Yorumunuz onaylandıktan sonra yayımlanır. * işaretli alanlar zorunludur.

Bu konularda destek mi arıyorsunuz?

İletişime geçin