Vaka Çalışması

Planlanan ve gerçekleşen oynatma: sahne tasarımından beklenen süreyi hesaplamak

Problem

Oynatma raporu, her ekran için gün içinde planlanan ve gerçekleşen oynatma süresini karşılaştırıyor. Planlanan taraf, sahne tasarımcısında hazırlanan içerikten hesaplanıyor ve birçok durumda yanlış sonuç veriyordu:

  • Tasarım ekranındaki “gizle/göster” simgesi oynatmayı da etkiliyor sanılıyordu; tek bir içerik bütün günü planlanmış gibi görünüyordu.
  • İç içe playlist’ler ve başka bir sahneyi gösteren alt sahneler hesaba hiç girmiyordu.
  • Gece yarısını aşan yayın saatleri (ör. 23:00–11:00) boş sayılıyordu.
  • Yalnızca fiyat ve metin içeren menü panoları sıfır görünüyordu.

Yaklaşım

  • Oynatma kurallarını tasarımcı ve cihaz yazılımından çıkardık: resim, video ve sınırsız gösterimin süresi nasıl belirleniyor.
  • İç içe yapıları da hesaplayan bir model kurduk: her içerik sırasıyla pay alıyor, bir playlist veya alt sahne aldığı payı kendi içeriklerine dağıtıyor.
  • Gece yarısını aşan yayın saatleri, menü panoları ve yalnızca aktif ekranlar doğru hesaplanıyor.
  • Hesap, veritabanından bağımsız tutuldu; 122 birim testle korunuyor.

Benim katkım

Kuralların çıkarılmasını, hesap modelini ve testleri ben geliştirdim.

Teknoloji

  • .NET 8
  • C#
  • MongoDB
  • xUnit