Teknik borç sınıflandırması (2018)
(technology.riotgames.com)Teknik borcun sınıflandırılması
Giriş
- Bill "LtRandolph" Clark, LoL Champions ekibinde mühendislik yöneticisi ve teknik borca derin ilgi duyuyor.
- Teknik borç, gelecekteki geliştiricilere maliyet çıkaran kod veya veri olarak tanımlanır.
- Bu yazı, Riot'ta deneyimlenen çeşitli teknik borç türlerini ve şirket içinde kullanılan modeli tanıtıyor.
Metrikler
Teknik borcu değerlendirmek için üç ana eksen kullanılır: etki, düzeltme maliyeti, bulaşıcılık.
Etki
- Teknik borcun oyuncular ve geliştiriciler üzerindeki etkisi.
- Hatalar, eksik özellikler, beklenmeyen davranışlar vb.
Düzeltme maliyeti
- Teknik borcu düzeltmek için gereken süre ve risk.
- Basit bir hata birkaç dakikada düzeltilebilirken, kök salmış sorunlar haftalar hatta aylar sürebilir.
Bulaşıcılık
- Teknik borcun ne kadar yayılabileceği.
- Diğer sistemlerle etkileşimleri, veri kopyalamayı ve yeni özelliklerin uygulanmasını etkiler.
Borç türleri
Yerel borç
- Sorun yalnızca sistemin içinde ortaya çıkar ve dışarıyı etkilemez.
- Örnek: Jarvan'ın Cataclysm'i.
Cataclysm metrikleri
- Etki: 1 / 5
- Düzeltme maliyeti: 2 / 5
- Bulaşıcılık: 1 / 5
MacGyver borcu
- Birbiriyle çelişen iki sistemin geçici bir çözümle birleştirildiği durum.
- Örnek: C++'taki
std::stringile Riot'unAStringsınıfı.
std::string vs AString metrikleri
- Etki: 2 / 5
- Düzeltme maliyeti: 3 / 5
- Bulaşıcılık: -2 / 5
Temel borç
- Sistemin derinlerinde yer alan varsayımların tüm sistemi etkilediği durum.
- Örnek: LoL'de lua betik dili kullanımı.
BlockBuilder Lua metrikleri
- Etki: 4 / 5
- Düzeltme maliyeti: 4 / 5
- Bulaşıcılık: 4 / 5
Veri borcu
- Diğer teknik borç türlerinin üzerine çok fazla içeriğin yığıldığı, bu yüzden düzeltmenin zor ve riskli hale geldiği durum.
- Örnek: BlockBuilder betik dilindeki parametre adı hatası.
Parametre adı hatası metrikleri
- Etki: 2 / 5
- Düzeltme maliyeti: 2 / 5
- Bulaşıcılık: 4 / 5
Özet
- Teknik borcu değerlendirirken etki, düzeltme maliyeti ve bulaşıcılık dikkate alınmalıdır.
- Bulaşıcılık, teknik borcun yayılma olasılığını gösterir; bunun göz ardı edilmesi büyük sorunlara yol açabilir.
- Teknik borç; yerel borç, MacGyver borcu, temel borç ve veri borcu olmak üzere dört türe ayrılabilir.
GN⁺ özeti
- Bu yazı, teknik borç türlerini ve bunların nasıl değerlendirileceğini anlatarak geliştiricilerin daha iyi kararlar almasına yardımcı olur.
- Teknik borcun bulaşıcılığını vurgulayarak, sorunları erken çözmenin önemini öne çıkarır.
- Benzer işlevlere sahip diğer projeler arasında Dota 2 ve Overwatch bulunur.
1 yorum
Hacker News görüşleri
Arayüz, tasarımdaki en önemli unsurlardan biridir ve dikkatle ele alınmalıdır
Kurucu borcu, kurucuların hızlı ve iyi teknoloji sunmak için oluşturduğu borçtur
Bu yazının bir engineering manager tarafından yazılmış olması şaşırtıcı
Teknik borca ilişkin bir sınıflandırma tartışılıyor
Teknik açıdan harika bir makale
Teknik borcu açıklamak için "Contagion" kullanılıyor
Teknik borç, gelecekteki geliştiricilerin bedelini ödemek zorunda kalacağı kod veya veri olarak tanımlanıyor
"Yerel borç"u genel durumda teknik borç olarak adlandırmazdım
Birkaç startup'ta çalışma deneyimim var
Kısa vadeli kazanç için teknik borcun bilerek üstlenildiği durumlar var