Dermatolog tasarımlı bir anketi kişiselleştirilmiş bir rutine ve ürün eşleşmesine dönüştüren, klinik mantığı kod yerine düzenlenebilir veri olarak tutan klinik düzeyde bir cilt bakımı öneri motoru.
Markdown olarak oku ↗
Klinik mantık bana değil dermatologlara aitti, bu yüzden onu hardcode etmek her revizyonu bir deploy'a dönüştürürdü. Tüm kural yüzeyini veritabanına taşıdım — sorular, cevap-gerçek eşlemeleri, eksen kalibrasyonu, klinik kurallar — ve motor bunu istek anında okuyor; böylece doktorlar bir mühendise ihtiyaç duymadan iterasyon yapabiliyor. Motor, cevap kümesinden beş klinik ekseni puanlıyor, ikincil gerçekleri türetiyor, ardından bir rutin dalını seçmek ve herhangi bir ürün değerlendirilmeden önce sert içerik bloklarını uygulamak için öncelik sıralı bir klinik güvenlik modu kademesi çalıştırıyor. Asıl problem klinik revizyonları güvenli hale getirmekti: her doktor revizyonu, uç durumları bir önceki versiyonla çelişen bir spesifikasyon olarak geliyordu, bu yüzden herhangi bir cevap kümesini canlı motordan geçiren, anlık görüntüsünü alan, bir değişiklikten sonra yeniden çalıştıran ve doktorun kaydettiği beklentiyle karşılaştıran bir simülasyon test düzeneği kurdum — motora dokunmadan önce doktorun kendi QA tablosunu testlere dönüştürerek, bu da yeni kuralların eski kuralları sessizce bozmasını defalarca yakaladı. Ayrıca neyin yeniden hesaplanacağı ile neyin dondurulacağı arasında bir sınır çizdim: sunum çıktısı her okumada yeniden türetiliyor, böylece bir düzeltme, migration ya da yeniden gönderim olmadan mevcut profilleri geriye dönük olarak onarıyor; buna karşılık çözümlenen cilt tipi gönderim anında donduruluyor, böylece bir eşik değişikliği zaten bir sonucu olan birini sessizce yeniden sınıflandırmıyor. Bu sınır, bir düzeltme ile bir olay arasındaki farkı oluşturuyor.