Skip to main content

> watch_004

Mono Her Şeyi Hatırlar

Ekip, legacy monolith'i microservice'lere ayrıştırmaya çalışır, ancak Mono'nun şirketi ayakta tutan belgelenmemiş iş kurallarını (business rules) içerdiğini keşfeder.

Mono Her Şeyi Hatırlar Thumbnail

Available Video Versions

9:16

Mono Her Şeyi Hatırlar

"Bu olay rastgele olmadı. Sistem, gizli kalmış bir failure pattern'i görünür hale getirdi: cache invalidasyon sapması."

Bu bölüm aslında ne hakkında

Olay Türü: Production Olay | Hata Kalıbı: cache invalidasyon sapması

Teknik Çıkarım

Legacy code, genellikle geçmiş iş kurallarının ve edge case'lerin tek güvenilir belgesidir.

Bağımsız teknik kararlar ve iletişimsizlik felaketi tetikler.

Gerçek Takımlarda Nasıl Görünür?

Bu, ekibin mevcut monolith'in içine gömülü domain mantığının karmaşıklığını hafife aldığı "sıfırdan yeniden yazma" (rewrite from scratch) girişimleri sırasında ortaya çıkar.

Genellikle kimsenin büyük resmi görmediği anlarda ortaya çıkar.

Takımların dikkat etmesi gerekenler

  • Kapsamlı test yapın
  • Kodu gözden geçirin
  • Tüm paydaşları hizalayın

Transkript

Neden bu fonksiyonun 900 tane condition'ı var? Çünkü finans departmanı 2016'da Salı günlerini değiştirdi. Bu dokümantasyonda yazmıyor. Toplantılardan önce basit bir sistemdim. Sadece bir dosya açtım. tinycto.tv [müzik] Sistem hatırlar.

Sıkça Sorulan Sorular

Bu bölümdeki teknik ders nedir?

Ders, bir monolith'i ayrıştırmanın yalnızca bir database schema etrafına çizgiler çekmek değil, derin bir domain bilgisi gerektirdiğidir.

Bu sorun neden production'da ortaya çıkar?

Çünkü yeni sistem işin nasıl *çalışması gerektiğine* göre tasarlanırken, eski sistem işin *gerçekte nasıl çalıştığını* ele alır.

Mühendislik ekipleri bu pattern'dan nasıl kaçınabilir?

Strangler Fig pattern'ı dikkatli kullanın, parçaları değiştirmeden önce legacy system'e karşı kapsamlı entegrasyon testleri (integration tests) yazın ve bazı çirkin kodların bir nedeni olduğu için çirkin olduğunu kabul edin.

AI Özeti

Bu bölümde yeni bir mühendislik inisiyatifi 'Mono'yu (legacy monolith) microservice'lere bölerek stack'i modernize etmeye çalışıyor. Proje, Mono'nun sadece eski bir kod değil, aynı zamanda talep edilen her geçici düzeltmenin, edge case'in ve belgelenmemiş iş kuralının yaşayan bir arşivi olduğunu fark ettiklerinde hızla raydan çıkıyor. Teknik ders, sistemlerin tarihsel context'ini anlamadan onları yeniden yazmanın tehlikelerini vurguluyor.