CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

İleri seviye finali mini uygulamasının iskeletini tasarlarsın.

Proje: Mini framework

Bu 5 derslik projede katmanlı bir mini framework yazacaksın. Her derste bir katman ekleyecek, son derste tümleşik bir uygulama elde edeceksin.

Katmanlar şunlar: Proje iskeleti (Framework sınıfı), Modern C++ (concepts + ranges ile veri işleme), Concurrency (std::thread + atomic ile paralel toplam), Design patterns (Singleton Logger + Factory) ve Birleştirme. Her dersin başlangıç kodu, önceki dersin çözümünü içerecek. Böylece kod dersler boyunca birikerek büyür.

Framework sınıfı iskeleti

Önce bir Framework sınıfı tanımlayalım. Bu sınıf, tüm katmanların üzerinde duracağı çatıdır. run metodu, uygulamanın giriş noktasıdır.

Örnek: class Framework { public: int run(); };. main içinde Framework fw; fw.run(); ile başlatırsın. run metodu std::cout << "Proje hazır"; yazarak iskeletin çalıştığını doğrular. Sonraki derslerde bu iskeletin üzerine yeni metotlar ekleyeceğiz ve her dersin başlangıç kodu önceki dersin çözümünü içerecek.

Uygulama Framework iskeletini tanımla

Framework sınıfını tanımla: public bölümünde int run(); metodu olsun. Framework::run gövdesi std::cout << "Proje hazır"; yazsın. main içinde Framework fw; fw.run(); ile çağır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>

// Framework sinifini tanımla: run metodu olsun

int main() {
    // Framework oluştur ve run cagir
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>

class Framework {
public:
    int run();
};

int Framework::run() {
    std::cout << "Proje hazır";
    return 0;
}

int main() {
    Framework fw;
    fw.run();
    return 0;
}

Beklenen çıktı

Proje hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Mini framework neden katmanlı tasarılır?

  • Tek fonksiyonda her şeyi yazmak için
  • Daha az kod yazmak için
  • Her katmanın tek sorumluluğu olması ve değişimin izole olması için Doğru cevap
  • Derleyiciyi hızlandırmak için

Açıklama: Katmanlı tasarım, tek sorumluluk ve izole değişim sağlar.

2 Sınıf adını tamamla

Soru
class ____ { public: int run(); };
Cevap
class Framework { public: int run(); };

Açıklama: Sınıf adı PascalCase yazılır: Framework.

3 Parçayı rolüne eşle

Kavram Anlamı
class Framework Çatı sınıf
run() Giriş noktası
main() Program başı
std::cout Çıktı

İleri seviye bölümündeki tüm dersler