Nasıl liman modern bir betik dili (PHP, Python / Django, vb) bir miras Java/J2EE web sitesi olabilir?

4 Cevap java

Programlama verimliliği artırmak için - herhangi bir betik dili - ben bir betik dili, eski bir Java web uygulaması (J2EE) taşımak istiyorum.

Bunu yapmanın en kolay yolu nedir? Iş mantığı toplu dönüştürebilirsiniz herhangi bir otomatik araçlar var mı?

4 Cevap

Burada yapmanız gereken ne var.

Öncelikle, çalıştırmadan önce yürümek emin olun. Belki teğet ana proje ile ilgili basit bir şey, inşa.

DO NOT nihai projenin bir parça oluşturmak ve nihai projeye "evrim" umuyoruz. Bu iyi çalışıyor asla. Neden? Sen aptal hatalar yapacağız. Eğer nihai projeye bu hatayı gelişmeye zannediyorsunuz çünkü Ama bunları silmek veya yeniden işleme olamaz.

Ardından, bir çerçeve seçin. Ne? İkincisi? Evet. Ikinci. Aslında bazı betik dilleri ve çatıları ile bir şeyler yapmak kadar, size ne yaptığınızı hiçbir gerçek yararlı kavram var. Bir şey inşa ettik, şimdi bilinçli bir görüş var.

Diyorsunuz "Bekle". "Ben bir çerçeve almak zorunda 1. adımı yapmak için." Doğru. Adım 1, ancak, iptal için izin konum kararlar içerir. Adım 1 uzun süreli kötü etkileri vardır için yanlış bir çerçeve seçin. Bu sadece öğreniyordu.

Üçüncüsü, stratejik çerçeve, ve biraz tecrübe ile, yeni çerçeve ile inşa edebilirsiniz parçalar halinde mevcut sitenizin yıkmak. En önemli den en az önemli için bu parçaları öncelik.

DO NOT bir büyük proje olarak tüm dönüşüm planlıyoruz. Asla çalışır. Bu gerekli olandan daha karmaşık bir büyük iş yapar.

Biz örnek çerçeve olarak Django kullanacağız. Sen şablonları, görünüm işlevleri, model tanımları, URL haritalama ve diğer ayrıntıları olacak.

Her yapı için, aşağıdakileri yapın:

  1. Django modeli için mevcut modeli dönüştürmek. Bu hiç eski SQL sığmaz. Siz modelini yeniden gözden geçirmek gerekir, her zaman düzeltmek istedim doğru eski hataların eski hataları düzeltmek.

  2. Birim testleri yazmak.

  3. Eski veri ihracat ve yeni modelin içine almak için bir dönüşüm programı oluşturun.

  4. Yeni veri dokunmak ve hissetmek için Django yönetici sayfaları oluşturun.

  5. Temsilcisi sayfaları seçin ve uygun şablonlar içine yeniden işleme. Bazı eski JSP sayfaları faydalanmak olabilir. Ancak, bu çok fazla zaman harcamayın. Django şablonları oluşturmak için HTML kullanabilirsiniz.

  6. URL ve görünüm işlevleri planlayın. Bazen, bu görünüm işlevleri eski eylem sınıfları kaldıraç olacaktır. "Convert" etmeyin. Sıfırdan yeniden yazın. Yeni bir dil ve çerçeve kullanın.

Koruma değer tek şey veri ve operasyonel kavramdır. Kodunu korumak veya dönüştürmek için çalışmayın. Bu yanıltıcı. Sen JUnit Python unittest için unittests dönüştürmek olabilir.


Ben bir kaç ay önce bu tavsiye verdi. Ben işleme sırasında bazı koçluk ve inceleme yapmak zorunda. Revize Site ve çalışıyor. Eski teknoloji hiçbir dönüşüm; Onlar sıfırdan önerdi rewrite yaptım. Geliştirici mutlu. Site iyi çalışıyor.

Zaten Java uygulanan iş mantığı büyük miktarda varsa, o zaman ben sizin için iki olasılık görüyorum.

İlk JVM içinde çalışan ve bir web gibi Groovy / Grails veya JRuby olarak çerçeve ve {[(3 olan yüksek düzeyde bir dil kullanmak )]}. Bu doğrudan re-mimar tüm site zorunda kalmadan Java uyguladık tüm iş mantığını kaldıraç sağlar. Sen web geliştirme ile ilgili çerçevenin geliştirilmiş verimlilik yararlanmak ve hala mevcut iş mantığını kaldıraç gerekir.

Alternatif bir yaklaşım, standart bir RPC mekanizmasi üzerinde mevcut hizmetleri bir dizi halinde iş mantığı katmanı açmak için - REST, SOAP, XML-RPC veya HTTP protokolü üzerinden diğer bazı basit XML (YAML veya json) (ayrıca bkz {[(0) ]}) ön uç iş mantığı için bu RPC çağrıları yapmak, böylece.

JVM üzerinde üst düzey bir dil kullanarak ilk yaklaşım, ikincisinden yeniden mimari muhtemelen azdır.

Amacınız Java kapalı tam bir göç ise, bu yaklaşımların ya sen küçük adımda elvermesi - Eğer melez bu tür tüm satış önerilmeyişine daha iyi olduğunu görebilirsiniz - JVM kütüphanelerin bir yeri vardır ve iyi entegre diğer sistemlerin bir çok içine.

Gelişmiş değil - "port" web uygulaması için neredeyse kesinlikle gelecekteki programlama verimliliği minimize olacağını garanti edecek otomatik bir araç kullanma.

İyi bir betik dili, o dilde iyi kodlama uygulamalarını anlamak iyi programcılar tarafından kullanılan verimliliği programlama yardımcı olabilir. Otomatik araçlar genellikle elegent veya iyi yazılmış, işleri sadece kod çıkış kodu için tasarlanmış değildir.

Ya da genel bir iyileşme neden olmayabilir reimplementation için gereken zaman nedeniyle, - yeniden uygulamak web uygulaması için çaba koyduk sonra sadece programlama verimliliği bir iyileşme alırsınız.

Burada veriliyor önerilerin bir çok varsayarak - ve sadece - uygulamanın tam bir yeniden yazmak yapıyoruz. Bu muhtemelen böyle değil, ve o cevabı biraz değiştirir

Zaten J2EE çevresinde tekme var ise, doğru cevap Grails olduğunu. Bu basitçe: muhtemelen Hazırda ve Bahar çevresinde tekme var ve size eski kod ve ağrı minimum miktarda ile yeni arasında ileri ve geri çevirmek yeteneği istiyorum gidiyoruz. Bu tam Groovy forte, ve bu bakımdan JRuby daha düzgündür.

Zaten çevresinde tekme bir J2EE uygulaması var eğer Ayrıca, zaten Java geliştiricileri çevresinde tekme var ettik. - Kelimenin tam anlamıyla bu durumda, Groovy öğrenme merdivenden düşme gibi. Anonim iç sınıflar hariç, Groovy sen, Java kodu yazmak Groovy diyoruz, ve onunla yapılabilir anlamına gelir, Java saf bir üst kümesidir. Eğer Groovy'de ve nicities ile giderek daha rahat hale geldikçe, sizin Java-imsi Groovy koduna entegre edebilirsiniz. Önce çok uzun, çok harika kodu yazılı olacak, ve hatta gerçekten geçiş fark değil.