Hakkımızda
Denetçiye hesap vermek zorunda kalmış insanlar tarafından yazıldı.
Reldavi, .NET ekipleri için bir denetim kaydı — kimin neyi ne zaman değiştirdiğinin ve öncesinde değerin ne olduğunun kaydı. Bu sayfa, onunla neyi yapmayacağımız.
Bu neden var
Bir perşembe öğleden sonrası. Hukuktan biri basit bir soru soruyor: bu sözleşmedeki iskontoyu kim değiştirdi, ne zaman.
Cevabın var olması gerekir. Bir denetim tablosu var — üç yıl önce, son denetimden hemen önce, aceleyle biri eklemiş. İçinde bir ChangedBy sütunu, bir zaman damgası ve yazıldığından beri kimsenin açmadığı bir JSON alanı var. Açıyorsunuz.
Akşam altıya kadar iki şey öğreniyorsunuz. O değişiklik orada yok. Ve başka nelerin orada olmadığını söylemenin hiçbir yolu yok; çünkü hangi tabloları kapsadığını kimse yazmamış — birinin aklına gelen dördünü kapsıyor, uygulama ise o günden beri yüz tane daha büyümüş. Karşınızda eksik bir kayıt yok. Karşınızda, boşlukları bilinemeyen bir kayıt var; bu bambaşka ve çok daha kötü bir şey, çünkü düzeltilemez ve güvenilemez. Yalnızca özrü dilenebilir.
Bu sektörde herkesin öyle bir perşembesi olmuştur.
Ve bu kimse özensiz olduğu için değil
Bunu düzgün yazmak, kimsenin istemediği bir özellik için tuhaf miktarda emek ister. Her kaydetme işleminin içinde, hiçbirini yavaşlatmadan çalışacak. Hiçbir olayı kaybetmeyecek ve hiçbirini uydurmayacak. Kişisel veriyi, çıkışta değil girişte, bulunmasına izin verilmeyen yerden uzak tutacak. Dört yıl sonra, o gün orada olmayan biri geri okuduğunda hâlâ anlam ifade edecek. Ve bunların hiçbiri hiçbir yol haritasında görünmez; çünkü çalışan bir denetim izi, tam olarak hiç denetim izi olmaması gibi görünür — görünmediği o öğleden sonraya kadar.
Bu yüzden en sona kalır, o sırada boş olan kim varsa onun eline kalır ve çoktan başlamış bir denetimin son tarihine karşı yazılır. Sonra bir sonraki şirkette atılır ve aynı sebeplerle, aynı beş kararı veren biri tarafından yeniden, kötü yazılır.
Reldavi, bu işin bir kez yapılmış hâli. Her değişiklik, biri tabloyu hatırladığı için değil gerçekleştiği için yakalanır. Ödeme akışınızı yavaşlatmaktansa yük bıraktığını size söylemeyi tercih eden bir yakalama yolu. Gösterilmeden önce değil, tamponlanmadan önce maskelenen kişisel veri. Ve her gün, hiç dokunmadığımız bir makinede denetçinin doğrulayabileceği bir özete mühürlenir — çünkü bir hesap verebilirlik kaydının gerektirmemesi gereken tek şey, birinin sözünüze inanmasıdır.
Bu, kimsenin terfi almadığı; sıkıcı, görünmez ve hiç gösterişli olmayan iştir. Birinin bunu bir kez düzgün yapması gerektiğini düşündük — kimse bir daha o perşembeyi yaşamasın diye.
Yapmayacağımız şeyler
Bunlar duvara asılan değerler değil. Her biri kodun uyguladığı ve test paketinin yoksa başarısız olduğu bir kural; ve her birinin bir bedeli var — gerçek olduklarını oradan anlarsınız.
| Bir denetim hatası asla bir ödeme akışını düşürmemeli | Yakalama sizin SaveChanges çağrınızın içinde çalışır. Ne bloklayabilir ne de hata fırlatabilir: dolu bir tampon beklemek yerine yükü bırakır ve bıraktığını bildirir. Bedeli şu: aşırı baskı altında Reldavi, olay düşürdüğünü gizlemek yerine size söyleyecektir — tek dürüst cevap budur ve uygulamanızı ayakta bırakan tek cevaptır. |
| Müşteri kimliği istekten değil, kimlik bilgisinden gelir | Ne gövdeden, ne başlıktan, ne sorgu dizesinden, ne de form alanından. Depoya giden her sorgu, çağıranın etkileyemeyeceği bir müşteri koşulu taşır — asistanın kurduğu sorgular dahil. Bu üründeki bir hatanın başkasının verisine dönüşebileceği tek yer burasıdır; bu yüzden hiçbir kod yolunun iki kez karar vermesine izin verilmez. |
| Maskelenmiş bir değer kuyruğa, hatta ve depomuza hiç girmez | Maskeleme gösterimden önce değil, tamponlamadan önce olur. Gerçek değeri saklayıp arayüzde gizleyen bir ürün hiçbir şeyi korumamıştır — ihlali yalnızca bir sorgu ötesine taşımıştır. |
| Model bir filtre seçebilir. Bir bulguyu asla anlatamaz | Kendi kelimelerinizle sorarsınız, model bunu bir aramaya çevirir. Sonra okuduğunuz şey, kimlikleri üzerinde duran olayların kendisidir. Yaşanmamış şeylerin inandırıcı bir özeti, hiç arama yapmamaktan kötüdür; bir uyumluluk ürününde ise işe yaramazdan da kötüdür — çünkü biri ona göre hareket eder. |
| Bize güvenmek zorunda kalmamalısınız | Her günün olayları, bağımsız bir zaman damgası otoritesine bağlanabilen bir Merkle köküne mühürlenir ve bir kanıt paketi hiç dokunmadığımız bir makinede doğrulanır. Kayıtlarınızın bütünlüğü konusunda kendisine inanılmasını isteyen bir sağlayıcı, bir denetçinin vermeye yetkili olmadığı tek şeyi istiyordur. |
Nasıl kuruldu
Yalnızca doğrulanabilir iddialar. Buradaki her şey dışarıdan görülebilir.
| Önce .NET, “ayrıca .NET” değil | Yakalama yolu bir Entity Framework Core interceptor’ıdır; burada otomatik, başka her yerde elle olmasının sebebi budur. Node.js, Python ve Go istemcileri aynı hat sözleşmesini konuşur ve bir uygunluk paketi, aynı olayı dört çalışma zamanından da gerçek bir uca gönderip tek bir beklenen satırı denetler. |
| Uyarılar hatadır, açığı olan bir bağımlılık da öyle | Derleyici uyarısında ve yayımlanmış bir güvenlik bildirimi olan her pakette derleme başarısız olur. Depoda hiçbir yerde ikisi de bastırılmamıştır. |
| İki dil, her zaman birlikte | Hiçbir şey İngilizce çıkıp Türkçesi sonra gelmez. Site, dokümantasyon ve panel ikisinde birden yazılır; eksik bir çeviri sessizce İngilizceye düşmek yerine derlemeyi başarısız kılar. |
| Tamamını kendiniz çalıştırabilirsiniz | Tek bir compose dosyası, bizim çalıştırdığımızın aynısı. Hiçbir şey yalnızca buluta ait bir özellik olarak tutulmaz; çünkü bir şirketin kendi çalıştıramadığı bir uyumluluk ürünü, denetleyemediği bir üründür. |
| Bu site çerez koymaz ve başkasından hiçbir şey yüklemez | Analitik yok, etiket yöneticisi yok, dış yazı tipi yok. Veri koruma hakkında bir sayfa okuduğunuz için IP adresiniz üçüncü bir tarafa ulaşmaz. Küçük bir şey; ve bunu satan bir şirket hakkında kontrol edilmeye değer ilk şey. |
Arkasında kim var
Şimdilik tek kişi; ve beş ayrı işyerinde aynı tabloyu elle yazmakla geçen on dört yıl.
Kurucu · İstanbul
İlk iş 2012’de İstanbul Büyükşehir Belediyesi’ydi; başlamak için alışılmadık bir yer. Bir belediye startup değildir: kaydettiği şeyler, birinin sonradan hesabını sormaya hakkı olan şeylerdir ve orada “bunu kim değiştirdi, ne zaman” sorusunu, cevap almakta ısrar edebilecek konumdaki insanlar sorar. Bir web geliştiricisi için tuhaf bir ilk ders; ve sonradan bu ürünün tamamı olduğu anlaşıldı.
Sonrası sıradan yol — bir ajans, ardından bir başkasında üç yıl ASP.NET, sonra Aşağı Saksonya’da bir Alman mühendislik firmasında sekiz ay; aynı soru bu kez başka bir dilde ve GDPR’ın az önce yüklediği ağırlıkla geldi. 2020’den beri de bir davranış bilimleri enstitüsünde altı yıldır .NET geliştiricisi — verinin siparişlerle değil insanlarla ilgili olduğu, “bu kaydı kim gördü” sorusunun bir özellik talebi olmadığı bir yer.
Bunların her birinde aynı tablo yazıldı. Bir ChangedBy sütunu, bir ChangedAt, gerisi için bir JSON alanı; birinin aklına gelen dört varlığa iliştirilmiş — hep aceleyle, hep bir denetimden ya da bir olaydan hemen önce, hep o hafta boş olan kim varsa onun elinden. Hiçbiri her şeyi kapsamadı. Neyi kapsamadığını da kimse bilmedi. Ve bir sonraki şirkette, tam olarak aynı sebeplerle tam olarak aynı kararları veren biri tarafından atılıp yeniden yazıldı.
Reldavi, bu işin bir kez ve düzgün yapılmış hâli; kötü versiyonunu artık beş kez yazmış ve hangi kestirmenin geri döndüğünü tam olarak bilen biri tarafından. Aklınıza gelenleri değil her değişikliği kendiliğinden yakalar; izlediği kaydetme işlemini yavaşlatmayı da düşürmeyi de reddeder; kişisel veriyi bulunmaması gereken yerden uzak tutar; ve her günü mühürler ki denetçiye gösterdiğiniz şey, birinin sözünüze inanmasına bağlı kalmasın.
On dört yıl nerede geçti
| 2020 — | DBE Davranış Bilimleri Enstitüsü .NET geliştiricisi · İstanbul |
| 2018 | Elektramation E.K. Web geliştiricisi · Aşağı Saksonya, Almanya |
| 2015 — 2018 | MaaMa Marketing Innovations ASP.NET geliştiricisi · İstanbul |
| 2013 — 2015 | DNA360 İletişim ve Danışmanlık Web geliştiricisi · İstanbul |
| 2012 — 2013 | İstanbul Büyükşehir Belediyesi Junior web geliştiricisi · İstanbul |
Eğitim
- Kocaeli Üniversitesi — Bilgisayar Programcılığı
- Anadolu Üniversitesi — İktisat
Bilgisayar programcılığı, ardından iktisat — kurumların kendi hesabını nasıl verdiğinin incelenmesi; sonunda bunu inşa eden biri için kulağa geldiği kadar alakasız olmayan bir ikinci bölüm.
Bize yazın
Bunun yükümlülüklerinize, mimarinize veya bütçenize uyup uymadığına dair sorularınızı, sorduğunuz şeyi yazan kişi cevaplıyor.