LLD Tasarım Süreci (Gereksinimlerden Koda)

Düşük Seviyeli Tasarım (LLD), hemen kod yazmakla ilgili değildir. Yapılandırılmış bir süreci takip etmekle ilgilidir.

Bir problem ifadesinden çalışan koda geçmek için bu adımları izleyin.

  1. Gereksinimleri Anlayın Doğrudan sınıflara (classes) atlamayın. Önce sistemin ne yapması gerektiğini belirleyin.
  • Hangi özelliklere ihtiyaç var?
  • Hangi eylemleri desteklemeli?
  • Daha sonra ne tür değişiklikler olabilir?
  1. Sınıfları Bulmak İçin İsimleri Belirleyin Gereksinimlerinizdeki isimleri arayın. İsimler sınıflarınızı oluşturur. Örnek: Bir Doküman Düzenleyici (Document Editor)
  • İsimler: Document, Text, Image, Storage, Editor.
  • Sınıflar: Document, TextElement, ImageElement, Storage, DocumentEditor.

Örnek: Bir Otopark (Parking Lot)

  • İsimler: ParkingLot, Floor, Slot, Vehicle, Ticket.
  • Sınıflar: ParkingLot, Floor, Slot, Vehicle, Ticket.
  1. Kalıtım (Inheritance) İçin IS-A İlişkisini Kullanın Kendinize şunu sorun: "Çocuk, ebeveynin bir türü müdür?"
  • TextElement bir DocumentElement'tir (IS-A).
  • Car bir Vehicle'dır (IS-A).
  • Dog bir Animal'dır (IS-A). Cevap evet ise kalıtım kullanın.
  1. Kompozisyon (Composition) İçin HAS-A İlişkisini Kullanın Kendinize şunu sorun: "Bir nesne diğerini içeriyor mu?"
  • Bir Document, bir element koleksiyonuna sahiptir (HAS-A).
  • Bir ParkingLot, bir kat setine sahiptir (HAS-A).
  • Bir Car, bir motora sahiptir (HAS-A). Bu nesneleri birbirine bağlamak için kompozisyon kullanın.
  1. Metotları Bulmak İçin Fiilleri Belirleyin Gereksinimlerdeki eylemleri arayın. Fiiller metotlarınız olur.
  • Add text (metin ekle) becomes addText().
  • Save document (dokümanı kaydet) becomes save().
  • Park vehicle (aracı park et) becomes parkVehicle().
  1. Arayüzler (Interfaces) ile Değişime Hazırlanın Gelecekteki güncellemeleri düşünün. Bir dokümanı kaydederken bir Dosya (File), bir Veritabanı (Database) veya Bulut (Cloud) kullanabilirsiniz.
  • Persistence adında bir arayüz oluşturun.
  • FileStorage veya DBStorage gibi uygulamalar (implementations) oluşturun. Bu, mevcut kodunuzu değiştirmeden daha sonra CloudStorage eklemenize olanak tanır.
  1. UML Çizin ve Kod Yazın Sınıflarınız, kalıtımınız, kompozisyonunuz ve metotlarınız hazır olduğunda bir UML diyagramı çizin. Bu, sizin taslağınız (blueprint) işlevini görür. Son olarak, bu taslağı temiz koda dönüştürün.

Özet Akış:

  • Gereksinimler
  • İsimlerden Sınıflara
  • IS-A'dan Kalıtıma
  • HAS-A'dan Kompozisyona
  • Fiillerden Metotlara
  • Varyasyonlardan Arayüzlere
  • UML Diyagramı
  • Final Kod

Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m