Üretim kodunda yanlış adlandırılmış bir fonksiyonla nasıl başa çıkılır?


28

Geçenlerde GitHub'daki bir Python kütüphanesine rastladım. Kitaplık harika, ancak bir işlev adında göze çarpan bir yazım hatası var. dummy_fuction()Olması gerektiği gibi arayalım dummy_function(). Bu işlev kesinlikle "vahşi" durumda ve gömülü sistemlerde büyük olasılıkla kullanılıyor.

İlk akla gelen şey, işlevin ikinci bir sürümünü doğru adla eklemek ve bir sonraki sürüm için ilk sürüme bir kullanımdan çıkarma uyarısı eklemek.

Üç soru:

  1. Yukarıdaki yaklaşımın istenmeyen herhangi bir sonucu olabilir mi?
  2. Bu tür bir soruna standart bir yaklaşım var mı?
  3. Herhangi bir amortisman uyarısı ne kadar süre yerinde bırakılmalıdır?

1
Bu, (çok sık olmasa da) statik bir dilin dinamik olandan daha sağlam olduğu bir durumdur: bir derleyici yeniden adlandırılmış işlevinizin zaten var olup olmadığını kontrol edebilir.
Giorgio

7
ayrıca bkz. HTTP yönlendiricisi [sic]
AakashM

2
Ayrıca Apache'nin mod_speling'ini de işaret ederdim , ama bu kasıtlı olabilirdi.
Monica iamnotmaynard'ı

1
@AakashM: Wikipedia makalesinin şu anda hem yanlış hem de doğru hecelemeyi (terimden değil, nesneden söz ederken bile) yanlış yazılmış sürümün daha yaygın olmasıyla nasıl kullandığını seviyorum!
Martijn Pieters

Hakkında bir başka güzel şey http_referer- "Referans alanını yaptığım zamanki gibi. Yazım seçimim için kederden başka hiçbir şeyim yok. Yazımın dakikada birkaç milyar kez kullanılmasından dolayı artık OED'de yazımı düzeltmeye çalışıyorum. onlarınkinden daha " - Phillip Hallam-Baker
Jamie Bull

Yanıtlar:


29

İlk ve en önemlisi, politika koruyucuya bağlıdır.

Bence sorunuz ilginç ama çoğunlukla görüşe dayalı.

Benim kişisel görüşüme göre yaklaşımınız sağlam - işlevi yeniden adlandırın ve yanlış yazılmış sürümü doğru olana yönlendirerek kullanımdan kaldırılmış bir eser olarak bırakın.

Yukarıdaki yaklaşımın istenmeyen herhangi bir sonucu olabilir mi?

Örneğin kodu kırabilir. Birisi yanlış hecelemeye dayanamıyorsa ve yeniden adlandırılmış bir versiyonunu uyguladıysa. Şimdi kütüphaneyi güncellediklerinde bir isim çatışması olacak.

Bu tür bir soruna standart bir yaklaşım var mı?

Bir kütüphane yazarken yazım hataları yapmayın;)

Herhangi bir amortisman uyarısı ne kadar süre yerinde bırakılmalıdır?

İtirazın bir sonraki ana sürüme kadar yerinde bırakılması gerektiğine inanıyorum (sürüm numarasındaki ilk rakam arttığında).

Bu, bazı - gerekçelendirilmiş - geriye dönük uyumluluk ihlallerinin tolere edilebildiği ve kodlarının hala iyi bir şekilde yapıldığından emin olmak için kütüphane kullanıcılarının görevidir.

Sadece değişimin içinde bulunduğundan emin olun: beyler, kullandıysanız dummy_fuction, dummy_functionher yerle değiştirin ve gitmeniz iyi olur.

Kitaplık sürümlü değilse, olduğu gibi - sürümlendirmeye başlamak için iyi bir durumdur.


1
Duymak güzel. Kütüphane sürümlendirilmiştir, bu nedenle sürüm kontrolüne yaklaşım iyi bir ses çıkarır. Aslında kendi IDE'sine sahiptir, böylece yanlış yazılmış sürüm, yeni kullanıcıları kullanmayı bırakması gereken kod tamamlama aracından gizlenebilir. Eğer Q2'nin cevabı için sana bir +1 daha verebilirsem verirdim!
Jamie Bull

2
Diğer yazılımlarda da gördüğüm yaklaşım bu. Geliştirdiğim bir yazılım için 3. taraf bir API kullanıyorum ve bunların API'larında bir yazım hatası içeren bir alıcı yöntemi var. Sorun, yöntemi yeniden adlandırmak ve basitçe doğru sürümü çağıran eski (yanlış) yazımla kukla bir yöntem oluşturmak suretiyle düzeltildi. Kukla yöntem, kullanımdan kaldırıldığından bahsetmekten başka bir belge içermez ve doğru sürüme bir bağlantı içerir. Bu yöntem, için olmuştur yıl geriye doğru destek bozulmaması için, şimdi.
Karl Nicoll
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.