3 puan yazan GN⁺ 2024-10-01 | 1 yorum | WhatsApp'ta paylaş

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::string ile Riot'un AString sı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

 
GN⁺ 2024-10-01
Hacker News görüşleri
  • Arayüz, tasarımdaki en önemli unsurlardan biridir ve dikkatle ele alınmalıdır

    • Güzel bir arayüz, zaman verildiğinde kolayca iyileştirilebilir; bunun tersi ise nadirdir
  • Kurucu borcu, kurucuların hızlı ve iyi teknoloji sunmak için oluşturduğu borçtur

    • Birçok ülkenin kuruluş belgeleri de bu kategoriye girer
  • Bu yazının bir engineering manager tarafından yazılmış olması şaşırtıcı

    • İçeriden terfi eden manager'ların olmaması ve dışarıdan işe alım eğilimi var
  • Teknik borca ilişkin bir sınıflandırma tartışılıyor

  • Teknik açıdan harika bir makale

    • "Adlandırma" daha uygun bir ifade olabilir
    • Her örnek oldukça düşündürücü
  • Teknik borcu açıklamak için "Contagion" kullanılıyor

    • Harika bir açıklama
  • Teknik borç, gelecekteki geliştiricilerin bedelini ödemek zorunda kalacağı kod veya veri olarak tanımlanıyor

    • Borç oluştururken anlık ihtiyaç ile gelecekteki maliyet dengeli biçimde değerlendirilmelidir
    • Borca karşı patolojik bir nefret var
  • "Yerel borç"u genel durumda teknik borç olarak adlandırmazdım

    • Bir yerlerde her zaman karmaşa olacaktır ve bunu kapsüllemek yaygındır
  • Birkaç startup'ta çalışma deneyimim var

    • Kurucular çoğu zaman fikirleri, gerçekte uygulanmış olan şeyi ve çalışan kısmı birbirine karıştırıyor
  • Kısa vadeli kazanç için teknik borcun bilerek üstlenildiği durumlar var

    • Bu kazanç da başka bir eksen olarak değerlendirilmelidir