2010-12-02 36 views
7

Birkaç mesaj formatıyla ilgilenen bir kütüphanem var. Bu biçimlerin her biri yakından ilişkilidir, ortak bir temel XML'dir ve her birinin üzerinde ek kısıtlamalar veya ek veriler bulunur.Bir özellik için desteği kaldırmak için "en iyi uygulama" nedir?

Bu biçimlerden biri, yalnızca bir kavram kanıtı veya pilot çabaya destek olmak için oluşturuldu. Pilot bitti, artık kullanılmıyor ve bazı garip kısıtlamalar getirdi. Bunun için desteği kaldırmak için izin aldım. Bunu yapmanın doğru yolu nedir?

düşünüyorum:

  1. Açık bir sorun izlemek için/belge değişiklikleri
  2. Etiket SVN revizyon, "FEATURE_X burada kaldırıldı"
  3. @Deprecate belirli sınıfları. Sorunu belirtin. Teslim Et.
  4. uyarıları izleyin ve kullanımdan kaldırma
  5. o biraz oturup takımı Nihayet kodu kaldırmak kaldırılmasından
  6. başa bir şans verelim nelerin etkilediğini görüyoruz. Testlerin doğru olduğunu doğrulayın. Teslim Et.
+3

Listenize ekleyebileceğim tek şey, dışsal olmaları durumunda, tüketicileriniz için bir destek olacaktır ve api'ye geçmek için gerekenlere sahip olduklarından emin olmalıdır. – hvgotcodes

+2

+ sürüm numarasını çarptı :) –

+0

+1 kullanışlı liste - neredeyse bir refactoring tarifi – orangepips

cevap

3

Yukarıdaki adımlarda, belirtilen son tarihte özelliğin bırakılacağını başkalarına açıkça bildirmenizi öneririm. Ve eğer özellik ve/veya ekip büyükse, diğerlerinin kod bağımlılıklarını bu tarihe kadar kaldırma taahhüdünü almasını öneririm (daha büyük ekip, yöneticilerin bu görev için destek almasını daha önemli kılar). Deneyimlerim gösterdiği gibi, bir şeyi kaldırmak birkaç kullanıcı için büyük bir sürprizdir ve her zaman bazı kodun FEATURE_X'e bağlı olan bir yeri vardır. Ve son fakat en az değil, kuru-çalıştırmak için ek bir adım, kolay ve hızlı bir şekilde geri alınabilir.

+0

İyi çağrı. Genel kütüphane, birkaç harici müşteri tarafından bir düzine kişi tarafından kullanılır, ancak sadece 3 veya 4 kişi bu özel özelliğin varlığının farkındadır. – Freiheit

+0

@Freiheit Diyorum ki: asla bilemezsiniz. Birkaç durumda, belirli bir kod parçasını kimin ve nasıl kullandığını gerçekten şaşırdım. –

+0

Kabul edildi. Kod yönlerinden daha sık ele alınması zor olan 'meatspace' özelliklerinden bazılarını kapsar. – Freiheit

5

Bence iyi bir listeniz var. Echo @hvgotcodes için, bu API'nin ekibinizin dışındaki herkes tarafından kullanılmadığını varsayar. Her iki durumda da, kullanımdan kaldırılmış yöntem içinde, herhangi bir çağrı için yığınları kaydederdim. Bu hem iç hem de dış kullanımları yakalayacaktır.

İlgili konular