C++ projeleri: araç, bütünlük izleyici ve ağ servisi
Üç gerçekçi C++ projesini tasarımdan teslime kadar yürütür, modern C++, test, eşzamanlılık ve güvenli kodlama becerilerini üretim kalitesinde birleştirirsin.
Seviye 501 · 16 ders · 15 pratik lab
Dersler
Proje 1: komut satırı aracı
- Araç tasarımı: seçenekler, çıkış kodları ve hata mesajları
- Argüman ayrıştırma kütüphanesi kullanmak
- JSON yapılandırma: nlohmann/json
- Testler, sürüm numarası ve paket
- Kısa görev: aracını başka biri de kullanabilsin
Proje 2: dosya bütünlüğü izleyici
- Bütünlük izleyici tasarımı: temel çizgi ve karşılaştırma
- Dosya özetleri: OpenSSL EVP ile SHA-256
- Paralel tarama ve ilerleme raporu
- Değişiklik raporu ve uyarı biçimi
- Kısa görev: kurcalanan dosyaları yakala
Proje 3: ağ servisi
- Protokol tasarımı ve belgelenmesi
- Asenkron sunucu ve bağlantı sınırları
- Kalıcılık: diske güvenli yazma ve kurtarma
- Günlük, metrik ve sağlık uç noktası
- Kısa görev: yük ve bozuk girdi altında dene
Bitirme
- Bitirme görevi: projelerinden birini sertleştir, belgele ve sun
Pratik lablar
- Araca yardım metni ve çıkış kodları eklemek: Komut satırı aracına yardım ve sürüm seçeneklerini ekle; kullanım hatası, girdi hatası ve başarı için ayrı çıkış kodları ver.
- JSON ayarını seçeneklerle birleştirmek: nlohmann/json ile okunan ayar dosyasını komut satırı seçenekleriyle öncelik sırasına göre birleştir ve bilinmeyen anahtarı bildir.
- Aracı başkasının kullanabileceği hale getirmek: Araca kurulum hedefi, sürüm bilgisi, uçtan uca testler ve anlaşılır hata iletileri ekle; temiz bir kapta kurulup çalıştığını göster.
- Dosyanın SHA-256 özetini hesaplamak: OpenSSL EVP arayüzüyle bir dosyanın özetini parça parça okuyarak hesapla ve bağlam nesnesini RAII ile serbest bırak.
- Temel kayıtla karşılaştırıp değişiklikleri bulmak: Bir dizinin özet tabanını oluştur; sonraki taramada eklenen, silinen ve değişen dosyaları ayrı listelerde raporla.
- Taramayı paralelleştirip ilerleme göstermek: Özet hesabını işçi havuzuna dağıt; ilerlemeyi yarışsız raporla ve çıktının tek iş parçacıklı sürümle bayt bayt aynı olduğunu göster.
- Değişiklik uyarısını JSON olarak yazmak: Değişen dosya için yol, eski ve yeni özet ile zamanı içeren uyarı kaydını geçerli JSON olarak üret; özel karakterli yolları doğru kaçır.
- İzleme dışı bırakma kurallarını uygulamak: Günlük ve geçici dosyaları desenlerle izleme dışında bırak; kuralın kapsadığı ve kapsamadığı yolları tabloyla test et.
- Oynanmış temel kaydı fark etmek: Temel kayıt dosyasını HMAC ile imzala; hem izlenen dosyada hem temel kayıtta yapılan değişikliğin ayrı ayrı yakalandığını testlerle göster.
- Belgelenen komut satırını ayrıştırmak: Protokol belgesindeki komut biçimini ayrıştıran işlevi yaz; bilinmeyen komut ve eksik argümanda belgedeki hata kodunu döndür.
- Sunucuya bağlantı sınırı koymak: Eşzamansız sunucuya toplam ve istemci başına bağlantı sınırı ekle; sınır aşılınca yeni bağlantıyı düzgünce reddet ve sayaçların sızmadığını göster.
- Yük ve bozuk girdi altında dayanıklılığı sınamak: Kendi hizmetine eşzamanlı yük ve bozuk ileti gönderen test aracını yaz; bulunan çökme ve bellek artışını gider ve sanitizer altında temiz koşuyu göster.
- Sağlık komutu eklemek: Hizmete çalışma süresi, bağlantı sayısı ve son hata zamanını döndüren sağlık komutu ekle.
- Durumu diske yarım kalmadan yazmak: Durum dosyasını geçici dosyaya yazıp eşitledikten sonra yeniden adlandır; yazma ortasında kesilen süreçten sonra eski dosyanın sağlam kaldığını göster.
- Çökme sonrası kayıt günlüğünden kurtarmak: Değişiklikleri sağlama toplamlı bir ön yazma günlüğüne ekle; rastgele noktada öldürülen hizmetin yeniden açılışta tutarlı duruma döndüğünü testle kanıtla.
Kurs hakkında
Üç gerçekçi C++ projesini tasarımdan teslime kadar yürütür, modern C++, test, eşzamanlılık ve güvenli kodlama becerilerini üretim kalitesinde birleştirirsin.
Ne öğreneceksin
- Proje 1: komut satırı aracı
- Proje 2: dosya bütünlüğü izleyici
- Proje 3: ağ servisi
- Bitirme
Ön koşullar
Aynı yolun 401 düzeyine kadar olan konularında deneyimli olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 501 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.