Neden ilk etapta orada?
Ana hatta kararsız kodu kontrol ettiniz mi? Neden?
Kararsız kod, ana / ana / ana veya ana ana adı ne olursa olsun kontrol edilmemelidir. Bu yüksek risk gelişimi olarak kabul edilir ve bunun yerine ana dalda kontrol etmek yerine üzerinde çalıştığınız kendi dalında tecrit edilmiş olmalıdır.
Sizi (ve ekibinizin liderliğini) Gelişmiş SCM Dallanma Stratejileri'ni okumaya teşvik ediyorum . Özellikle, geliştirme rolüne ve yüksek riskli gelişme olarak kabul edilen şey hakkında söylediklerine dikkat edin:
Genel olarak, her bir yüksek riskli proje için ayrı dallar kullanmayı düşünün. Yüksek riskli projeler, büyük boyutlu, çok sayıda insan, tanıdık konu, yüksek teknik konu, çok sıkı zaman çizgileri, belirsiz teslimat tarihleri, eksik veya geçici gereksinimler ve coğrafi olarak dağıtılmış proje ekipleri ile karakterizedir. Benzer şekilde, her bir sürümde düşük riskli gelişme için tek bir dal belirlemeyi düşünün. [WING98] dahil olmak üzere çeşitli kaynaklar bu amaçla ana hattı kullanmanızı önerir. Bu eylem sürecine başlamadan önce ana hat için yukarıda tartışılan faktörleri göz önünde bulundurun. Ana hat üzerinden koordine eden bir ürün ailesinin birden fazla üyesi olsa bile, düşük risk geliştirme ana hattan farklı politikaya sahip olabilir.
İnsanların kararsız (veya kullanılmayan) kodları ana hatta kontrol etmelerine izin vermek, bu kodu korumaya çalışmakla ilgili gelecekteki geliştirme çabalarını karıştıracağınız anlamına gelir. Temsilcinin bugünden sonuna kadar her dalı ve klonu, birisi "ölü kodunu" söyleyip silene kadar bunu içerecektir.
Bazıları "iyi, eğer bir dalda unutulursa" diyebilir ve bu doğru olsa da, ölü (ve kararsız) kodun ana hatta unutulması, kaldırılana kadar gelecekteki tüm gelişimi karıştırdığı için çok daha kötüdür - ve o zaman daha da unutulur. "/ FooProject / branch / WeisBigIdea" (veya eşdeğeri) olarak adlandırılan güzel bir dal görünür ve gelecekte birlikte çalışılması daha kolaydır - özellikle de bir tür çalışma durumunda.
@Deprecated
İlk şey @Deprecatedek açıklamadır. Bu javadoc'un ötesine geçer ve derleyici uyarılarını verir. şu şekilde tanımlanan javacbir -deprecationbayrak sağlar :
Kullanımdan kaldırılmış bir üye veya sınıfın her kullanımının veya geçersiz kılınmasının bir açıklamasını gösterir. Yok -deprecation, javackullanımdan kaldırılmış üyeleri veya sınıfları kullanan veya geçersiz kılan kaynak dosyalarının bir özetini gösterir. -deprecation kısaca -Xlint:deprecation.
Belirtildiği gibi, bu standart derleyici uyarılarının ötesine geçer.
Birçok IDE'de, kullanımdan kaldırılan yöntemler ve değerler üstü çizili olarak gösterilir:
foo.bar();
Ve şöyle çıktı üretir:
$ javac -Xlint:all Foo.java Bar.java
Bar.java:2: warning: [deprecation] Foo in unnamed package has been deprecated
interface Bar extends Foo { }
^
Yapı yapınıza bağlı olarak, yapıyı bozan uyarılar olabilir. Bu , derlemeyi yalnızca sınıflarınızdan biri kullanıldıysa bozar (sadece derlenmişse değil).
@CustomAnnotation
Buna birçok yaklaşım var. Örneğin, bu ek açıklama ile ilgili bir şey kullanıldığında derleme zamanında bir uyarı başlatan bir ek açıklama işlemcisi sağlayan Hafif javac @ Uyarı ek açıklaması ( özel ek açıklama işlemcileri üzerinde bir netbeans öğreticisi böylece sahneler).
Oracle , Java'nın Meta Verilerinden En İyi Bölüm 2: Özel Ek Açıklamalardan En İyi@Unfinished Şekilde Yararlanma konusunda bir ek açıklama için özel ek açıklamaların kullanılmasına bir örnek bile açıklar .
İle AnnotationProcessor , derleme zamanında rasgele kod çalıştırabilir. Ne yapmak istediğinize karar vermek size kalmış. Uyar, bir şey kullanıldığında yapıyı kır. Bu tür kodların nasıl yazılacağı konusunda web üzerinde çok sayıda öğretici var. Derlendiğinde bir hata oluşturmak isteyip istemediğiniz (bu sinir bozucu olacak ve silinmesine yol açacaktır) veya kullanıldığında (yazmak için biraz daha karmaşık).
Tüm bunların, ek açıklama işlemcisini kullanmak için derlemeleri değiştirmeyi gerektirdiğini unutmayın.