Ekim 2023'ten beri Tahran merkezli NovaTech'te uzaktan çalışan kıdemli backend mühendisiyim. Burada kişiselleştirilmiş değerlendirmeler ve analitik için madde tepki kuramını (IRT) kullanan bir uyarlamalı test platformunun mimarisini tasarladım. Platform yaklaşık 89.000 öğrenciye hizmet veriyor; .NET 6/8 mikroservis geliştirmesine de ben liderlik ediyorum.
Bağlam
Sabit bir sınav her öğrenciye aynı soruları sorar. Uygulaması kolaydır ama verimsizdir. Güçlü öğrenciler, kendileri hakkında yeni hiçbir şey söylemeyen maddelerle vakit harcar; daha zayıf öğrenciler ise cevaplama şansları düşük bir dizi soruyla karşılaşır. Uyarlamalı test, her bir sonraki soruyu öğrencinin o ana kadar verdiği cevaplara göre seçerek bunu değiştirir.
Platform, bir değerlendirmenin yaşam döngüsünün dört aşamasını kapsıyor: değerlendirmenin oluşturulması, her öğrenci için madde seçimi, yanıtların puanlanması ve sonuçların raporlanması.
Mühendislik problemi
IRT, bir öğrencinin bir maddeyi doğru cevaplama olasılığını iki şeyin fonksiyonu olarak modeller: öğrencinin yeteneği ve maddenin güçlük gibi kendi parametreleri. Maddeler kalibre edildikten sonra yetenek farklı madde setlerinden kestirilebilir ve sonuç yine aynı ölçeğe düşer. Uyarlamalı seçimi mümkün kılan da bu özelliktir.
Aynı özellik, backend'i sıradan bir quiz motorundan daha zor hale de getirir. Genel olarak bir uyarlamalı test sistemi aynı anda dört şeyle başa çıkmak zorundadır:
- Durum her cevapta değişir. Her yanıttan sonra yetenek kestirimi değişir ve sonraki madde buna bağlıdır. Seçim doğrudan öğrencinin akışının üzerinde yer alır; bu yüzden her seferinde hem hızlı hem de doğru olmalıdır.
- Sınav trafiği ani patlamalarla gelir. Öğrenciler genellikle birlikte başlar ve son teslim saatine yakın bitirir. Haftanın büyük bölümünde sakin olan yük birkaç dakika içinde gelebilir.
- Puanlar açıklanabilir olmalıdır. Bir sonuca itiraz edilirse hangi maddelerin sunulduğunu, neyin cevaplandığını ve puanın bundan nasıl çıktığını gösterebilmeniz gerekir. Bu da akıllıca kestirmeler yerine yanıtların özenle saklanmasını öne çıkarır.
- Analitik aynı veriyi okur. Raporlar çok sayıda öğrencinin verisini toplu olarak işlemek ister; ideali bunu, hâlâ test çözen öğrencileri yavaşlatmadan yapmaktır.
Geliştirdiklerim
Platformun ve kişiselleştirilmiş değerlendirme ile analitiğe yönelik IRT tabanlı yaklaşımının mimarisini tasarladım. Platformun üzerinde çalıştığı iş akışlarını geliştirdim:
- Değerlendirme oluşturma: değerlendirmeleri ve maddelerini kurmak için.
- Madde seçimi: her öğrenci için sonraki maddeyi seçer.
- Puanlama: yanıtları sonuçlara dönüştürür.
- Raporlama: puanlanmış veriyi raporlara ve analitiğe dönüştürür.
Bu iş akışları yoğun sınav dönemlerinde de ayakta kalıyor.
Mimari çalışmanın yanında .NET 6/8 mikroservis geliştirmesine liderlik ediyorum. 5+ geliştiriciye mentorluk yapıyor ve yüksek trafikli özellikler için code review standartlarını belirliyorum. Bu standartlar en çok hot path'lerde önem taşır: her istekte çalışan koddaki küçük bir verimsizlik, sınav sırasında kat kat büyür.
Tasarım notları
Aşağıdaki gerekçeler geneldir. Yaklaşımı açıklar; NovaTech'in iç yapısının bir haritası değildir.
Neden IRT
Klasik puanlama doğru cevapları sayar; dolayısıyla puan, öğrencinin hangi teste denk geldiğine bağlıdır. IRT öğrencileri ve maddeleri tek bir ölçeğe yerleştirir; farklı sorular görmüş iki öğrencinin yine de karşılaştırılabilir sonuçlar alabilmesi bu sayededir. Uyarlamalı test tam olarak buna dayanır. Yaygın bir seçim kuralı, gerekli içeriği kapsamak ve aynı maddeleri aşırı kullanmamak gibi pratik sınırlar içinde, öğrencinin güncel yetenek kestiriminde en çok bilgi veren maddeyi sunmaktır.
Neden mikroservisler ve bedeli ne
Bir değerlendirme sisteminde bileşenlerin yük desenleri birbirinden çok farklıdır. İçerik hazırlama hafif ve düzenlidir. Seçim ve puanlama sınav sırasında sıçrama yapar. Raporlama okuma ağırlıklıdır ve çoğu zaman kısa bir gecikmeyi tolere edebilir. Mikroservisler, yükleri farklı olan bileşenlerin bağımsız olarak ölçeklenmesini ve deploy edilmesini sağlar.
Bedeli koordinasyondur. Servislerin net sözleşmelere ihtiyacı vardır ve bir servis sınırını geçen her verinin tek bir sahibi olmalıdır. Bu disiplinin büyük kısmı code review'da uygulanır; bu yüzden yüksek trafikli özellikler için review standartları bir ekip formalitesi değil, mimarinin bir parçasıdır.
Depolama ve önbellek
Teknoloji yığını, EF Core üzerinden erişilen SQL Server'ı Redis ile birlikte kullanır. Bu tür bir sistemde puanı etkileyen her şey için doğruluk kaynağı normalde ilişkisel veritabanıdır; çünkü transaction ve kalıcı bir kayıt sağlar. Redis gibi bellek içi bir depo ise genellikle değiştiğinden çok daha sık okunan veriyi tutar; böylece yoğunluk sırasında veritabanından aynı değerler tekrar tekrar istenmez. Bunun bedeli, önbellekteki her değerin ne zaman süresinin dolacağına ya da ne zaman yenileneceğine dair net bir kurala ihtiyaç duymasıdır.
Teknoloji yığını
- .NET 8 ve .NET 6, mikroservis olarak
- EF Core
- SQL Server
- Redis
- Docker
- Python
Sonuç
- Yaklaşık 89.000 öğrenciye hizmet veren, IRT tabanlı bir uyarlamalı test platformu.
- Yoğun sınav dönemlerinde de ayakta kalan değerlendirme oluşturma, puanlama, raporlama ve madde seçimi iş akışları.
İlgili
Sınav zirveleri, Gozine2'deki önceki çalışmamdan Redis Sentinel vaka çalışmasının da konusu. Bir değerlendirme sistemi ya da yüksek trafikli bir .NET sistemi planlıyorsanız Benimle çalışın sayfasına bakın.
Sık sorulan sorular
Mahdi Molavi NovaTech'te ne geliştirdi?
Kişiselleştirilmiş değerlendirmeler ve analitik için madde tepki kuramını (IRT) kullanan bir uyarlamalı test platformunun mimarisini tasarladı. Platform yaklaşık 89.000 öğrenciye hizmet veriyor.
Uyarlamalı test platformunda hangi teknolojiler kullanılıyor?
Teknoloji yığını; EF Core, SQL Server, Redis, Docker ve Python ile birlikte .NET 8 ve .NET 6 mikroservislerinden oluşuyor.
Ekipteki rolü nedir?
Ekim 2023'ten beri .NET 6/8 mikroservis geliştirmesine liderlik ediyor, 5+ geliştiriciye mentorluk yapıyor ve yüksek trafikli özellikler için code review standartlarını belirliyor.
Bu bölümdeki diğer sayfalar
- Yapay Zekâ ile Soru Aktarımı: sınav PDF'lerinden yapılandırılmış LaTeX maddelerine
- Hamsayeh: binaları ve konut sitelerini yönetmek için bir SaaS
- Teslimat ve Saha Servisi Platformu: siparişler, kuryeler, teknisyenler ve stok tek sistemde
- Sınav Zirvesinde Yüksek Erişilebilirlik: 45.000–70.000 eşzamanlı kullanıcı için Redis Sentinel
- Refah Bankası Döviz Bürosu için Döviz Havalesi Back Office Sistemi
- MBRI için Finansal Gösterge Dashboard'u
- Çok Kiracılı Mikroservis Platformu: kiracılık, mesajlaşma ve iş akışı temelleri (geliştiriliyor)
Mahdi Molavi