Üretimde Java sürümünün çalıştırılacağı noktalar


14

Bazı insanlar teknolojilerin kanını akıtır - bir şeyin güncellendiği gün güncellenir. Üretimde bu uygun değil.

Mevcut (Java 7) sürümünün üretime hazır olup olmadığının araştırılması, artık doğru olmayabilecek önemli miktarda eski malzeme üretiyor (bu yazının yazıldığı sırada Java 7 bir buçuk yıldır çıktı ve bu çok uzun görünüyor) .

Üretim ortamını Java'nın sonraki bir sürümüne yükseltmenin uygun olup olmadığını belirlemek için ne gibi dikkat etmeliyim?


Olsa bile, söz konusu uygulamada kullanılan (varsa) herhangi bir üçüncü taraf kütüphane / eklentisinin Java 7 ile de iyi olması gerekir (riskli iş).
arin

2
Evet. Karşılaştığım tek sorun, Java 7'yi Red Hat Enterprise Linux 4'e yükleyemediğim, ancak daha sonra işletim sisteminin eski olduğu. Yaklaşık 6 aydır aksamadan başka her yerde üretimde kullanıyorum.
GlenPeterson

@arin: Java ile değil, gerçekte değil. Saçma bir şekilde aşağı doğru uyumlu olma eğilimindedir.
Michael Borgwardt

@MichaelBorgwardt teoride size katılıyorum, ancak test ortamında üçüncü taraf kütüphanelerin küçük bir sürüm güncellemesine güncelledikten sonra bile test kodumuzda düzensiz davranışlara / çökmelere neden olduğunu gördüm.
arin

@arin: elbette, olabilir. Ancak tecrübelerime göre, Java'yı güncellemekten korkmak neredeyse başka bir şeyi (özellikle kendi kodunu) değiştirmekten daha az neden var.
Michael Borgwardt

Yanıtlar:


11

Sorulması gereken ilk soru "Java sürümü makinede destekleniyor mu?" JRE'yi güncellemek bir şey olsa da, temel işletim sisteminin Java'nın yeni sürümünü çalıştırması desteklenmiyor olabilir (desteklenen sertifikalar ve destek sözleşmeleri ve birçok kurumsal ortamın sahip olmak istediği gibi).

Birçok java üretim ortamı aslında bir uygulama sunucusunun üstünde çalışır . Bir sonraki değerlendirme bu olacaktır. Java EE Uygulama Sunucularının Wikipedia karşılaştırması, Java EE'nin hangi sürümünün desteklendiğini gösterir. Bu, Oracle'ın JavaEE uyumluluğu genel bakışında daha da görülebilir . JBoss Enterprise Application Platform 6 için test edilen yapılandırma , Java SE 6.0 6u30 güncellemesine karşıdır. Java SE 6.0 güncellemesi 6u30, JBoss Application Server 7.1.0 Final için de test edilmiş yapılandırmadır . Bunlar Java 7'de çalışabilir, ancak test edilmiş yapılandırmalar değildir.

Uygulama sunucusunda genişleyen, hata ayıklamak için kullanılan canlı kod analiz araçları vardır. Her şeyi bilen Hata Ayıklayıcı (ayrıca bakınız) ve Dynatrace bunun iki örneğidir. Bu uygulamalar, ona rapor vermek için çalışan java'nın canlı bayt kodunu göstererek (değiştirerek) çalışır. Bu uygulamalar bayt kodunu değiştirerek çalıştığından, bayt kodu çalışamayacakları şekilde değişirse (yeni bir JRE gibi), çalışmazlar.

Sıradaki çerçeveler . Bunun bir örneği, Java ve onu kullanan Spring ile gelen JAXB'dir. Java 7'ye geçmek, bazı çerçevelerle uyumsuz kod üreten JAXB'yi güncelledi (bu da onların güncellenmesini ve bağımlılıklarının güncellenmesini gerektiriyordu ...).

Derleme araçları listede bir sonraki sıradadır. Oluşturma ortamının doğru Java sürümünü kullandığından emin olmak gerekir. Java 7 için kod yazmak, ancak Maven veya Ant'in kullandığı sürümü güncellememek sorunlara neden olur. Oluşturma araçlarının belirli eklentilere sahip bir sürüme güçlü bir şekilde bağlandığı zamanlar vardır.

Test araçları . PMD, findbugs ve checkstyle gibi şeyler, Java'nın yeni bir sürümünde yeni yapıları tanımayabilir - bunlar string switch deyimleri veya bileşik yakalamalarla çok karışabilir. Kod kapsamı gibi enstrümantasyona giren araçlar yeni JVM'de çalışmayabilir. Java 7 bağlamında, Cobertura ve Emma yeni JRE'ye güncellenmemiştir (yine, bu uygulamalar hangi kodun çalışıp çalışmadığını görmek için bayt kodunu değiştirir) ( jdk7 için açık kaynak kodu kapsam kitaplıklarına bakın ). Bu, birinden diğerine geçmek için derleme komut dosyalarında bir değişiklik yapılmasını gerektirebilir.

Sonra IDE var . Birinin IDE'yi dildeki yeni yapıların farkında olan bir sürüme güncellemesi gerekir. Eclipse'nin Java 7'yi desteklediğini duyurması bu sorunları gösteriyor.

Son ve kesinlikle en az değil geliştirici . Yeni kodu yazmak ve kodun nasıl yeniden yapılandırılabileceğini bilmek geliştiriciye bağlıdır. Java 1.4'ten 1.5'e kadar, şablonlar ve ek açıklamalar tanıtıldı ve geliştiricilerin mevcut yeni yapıların zihniyetine girmesi zaman aldı. Aynı şekilde koleksiyonlar 1.2'de tekrar çalışır ve geliştiricileri HashTable ve Vector kullanmaktan uzaklaştırır. Sürümün güncellenmesine, yeni dil yapılarında bir miktar eğitim eşlik etmelidir.

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.