API'yı kilitleme
Bir API'yi etkin bir şekilde oluşturma sanatı, yapı ile ilgili beklentileri yönetmekle ilgilidir.
API dendiğinde özellikle genel / dahili sınıfların / yöntemlerin nasıl adlandırıldığına ve erişim düzeylerinin ne olduğuna (yani özel / genel / dahili) atıfta bulunuyorum.
Kodun prime-time için tamamen hazır olmayacağından endişe ediyorsanız, her zaman başlangıçta beta olarak yayınlayabilirsiniz.
Salıverme:
Beta (1.0 öncesi)
- birden fazla API kırma değişikliği içerebilir
- sürümler arasında geriye dönük uyumluluk değişiklikleri olmayabilir
- lehçe eksikliği olabilir
Resmi (1.0+)
- API bir sonraki büyük sürüme kadar kilitlendi
- yapılan değişiklikler geriye dönük uyumluluğu garanti etmelidir
Küçük (eski 1.1)
- hata düzeltmeleri ve-veya özellik uygulamaları içerir
- tanımlı API ekleyebilir ancak bu API'dan uzaklaşamaz
API'nın savaşla sertleştirilmesi gerektiğini düşünüyorsanız, beta olarak bir süre yayınlayın. Bu, kullanıma hazır olduğunu ancak üretim ve / veya kritik görev kodu için kullanılmaması gerektiğini gösterir.
Birçok kişi hogwash gibi numaralandırılmış sürümleme şemalarını tedavi eder, ancak etkili bir şekilde kullanıldıklarında, yapıyı düzenleyene kadar bazı kıpır kıpır oda sağlamak için kullanılabilirler.
Nasıl kullanılacağıyla ilgili varsayımlarınız yanlış
Bir şey ne kadar iyi tasarlanmış olursa olsun, insanlar kötüye kullanmanın veya alternatif bir kullanım yaratmanın bir yolunu bulacaklar.
Bunu ele almanın bir yolu, erişimcileri (örneğin, özel / genel / dahili) kullanarak uygulamanın mümkün olduğunca kilitlenmesidir, ancak hiçbir tasarım veya mühendislik, kodu kullanıcılara yayınlamak kadar size bir fikir vermez.
Kodunuzun ne kadar 'mükemmel' olabileceğini gerçekten önemli değil, kullanıcılarınız bunun olmadığını kanıtlayacak.
Bu tam bir yeniden yazma yerine mevcut bir kod temeli kullanmak her zaman daha iyi olmasının birincil nedeni olduğunu iddia ediyorum. En iyi ihtimalle tam bir yeniden yazma, şişmeyi düzeltir, ancak yeni kod tabanının orijinal kod tabanı kadar çok (ve muhtemelen daha fazla) hata içerme olasılığı yüksektir.
Senin durumunda sıfırdan savaş sertleştiriyorsun, böylece başlayabilirsin.
Kalan üslerinle örtülü gibisin. API dokümantasyonu hayati öneme sahiptir ve gelecekte değişiklikler yapıldığında istikrarın sağlanması için testler iyi olacaktır.
Kodları üretim için piyasaya sürmeden önce tutarlı bir kayıt düzeni uygulamak önemlidir, çünkü günlükleri global olarak etkinleştirmek / devre dışı bırakmak / filtrelemek için bir yol gerekir. BTW, çoğu durumda günlüğe kaydetme yalnızca bir kitaplığın içe aktarılmasını ve Debug.WriteLine () öğesinden Logging.Debug (), Logging.Info (), Logging.Error () gibi bir çağrının değiştirilmesini içerir. Kaydedicinin kendisi yalnızca yapılandırma, filtreleme ve daha geniş bir çıktı şeması yelpazesi (dosyalar, konsol vb.) İçin standart bir uygulama sağlar.
Bunun dışında, kodu çıkarmak ve kullanılan bakmak istiyorum. Hatta az sayıda kullanıcı tarafından başlatılsa bile.