Java ne zaman web geliştirme için iyi bir seçimdir?
Lütfen "Yalnızca Java'yı bilen bir geliştirme ekibiniz varsa" deme.
Java ne zaman web geliştirme için iyi bir seçimdir?
Lütfen "Yalnızca Java'yı bilen bir geliştirme ekibiniz varsa" deme.
Yanıtlar:
Mevcut birçok çerçeve, platformun vade vb. Göz önüne alındığında, "neredeyse her zaman" demeye çalışıyorum. İşte Java kullanmamanız için bazı nedenler:
Java , küçük ve orta ölçekli web sitelerinde kullanılır. Önemli nokta, Java web siteleri için örneğin PHP'ye göre çok daha az ücretsiz web barındırma olmasıdır, yani kendi web sunucunuzu barındırmak için yeterli kaynağa sahip değilseniz, muhtemelen Java'yı seçmeyeceksiniz demektir.
Java EE 6'da, özellikle de web profilinde, çok fazla kodlama yapmak zorunda kalmadan çok güçlü web uygulamaları oluşturabilen birçok standart teknolojinin bulunduğunu unutmayın. Maalesef henüz ana akım değil.
Bunun, bulutta standart Java web uygulamalarını (birkaç kısıtlama ile) dağıtmanıza olanak tanıyan Google Application Engine ile biraz değiştiğini unutmayın.
Platformunuz UNIX / Linux olduğunda ve Nesne / İlişkisel Haritalama, Güvenlik, Web Servislerinin Karmaşık Düzenlemesi, vb. Gibi zengin araçlara ihtiyacınız olduğunda.
(Basit web sitelerinden bahsetmiyoruz, değil mi?)
Her seferinde bir başka Java ekibi beni kızdırıyor, bunun gibi soruları arayarak buharı patlatıyorum. Tekrar etmeme izin ver. Ben müşteri tarafındayım ve şimdi 5 yıla yakın bir süredir. Bir kerede çoğunlukla içerik mikrositlerinden, Sears kadar büyük sitelere, gerçekten derin UI uzmanlığına ihtiyaç duyulan daha karmaşık uygulama tipi sitelere kadar çeşitli sitelerde çalıştım. Rails, PHP, .net web formları (ew), .net MVC (çok daha iyi) ve web geliştirme için Java çözümlerinden oluşan bir buket düzenlemesi yaptım. Ayrıca biraz Python da yazarım ve Django'yu kazmaya başlıyorum.
Java ekipleriyle olan deneyimim evrensel olarak berbat geçti. Araçlar her zaman bir PITA. Devler asla yanlış bir şey yaptıklarına inanmak istemezler ve bir problemi çözdüğünüzde kendi çimlerini yeniden sorgulamalarını sağlamak, dişleri çekmek gibidir. Java ekipleriyle uğraşma deneyimimdeki ilk zayiat, sorunun neden kesinlikle bittiğine dair çok uzun açıklamalar yapan e-posta zamanına dönüştürülen geliştirme zamanı. Aslında üzerinde biraz kontrol istemediğiniz sürece, HTML genellikle onların sorunu değildir. O zaman her şey yolunda cehenneme gidecek, çünkü bazı üst düzey divleri hareket ettirmek istiyorsun.
Sevmediğim bir şey var ama bence asıl sorun kültür ve kabulün çok yaygın olduğu gerçeği, ortada bir ton sıradanlığınız var. Şüphelendiğim kültür, Java'nın pazarlanma şeklinden kaynaklanıyor. Bir kere yaz, her yere dağıt. Tercüme: "Sadece bir şeyi öğrenmen gerekiyor!" Bu çekiciliği bulan insanlar, Java'yı her çivi için devasa bir çekiç gibi, web geliştirme konusunda asıl mesleğini asgariye düşürmek istiyorlar.
Bu yüzden Java ve diğer dilleri bilen ama hala Java'yı tercih eden geliştiricileriniz varsa, doğru çözüm gibi görünüyorsa devam edin, evet derim. Ancak, Java'yı tanıyan Java geliştiricileriniz varsa ve diğer her şey, yalnızca özgeçmişlerinde bir mermi noktası haline getirme ölçütlerini zorlukla karşılıyorsa, HTML sonunda çeşitli yarı karmaşık sayfalarla basit bir uygulama oluşturmalarını ve denemelerini isteyin basit bir test. HTML'yi kır. Neyin yanlış olduğunu anlamalarını sağlamaya çalış. Çözmeye başladıkları acil sorun, suçu kendilerinden uzaklaştırıyorsa, web geliştirilmesinden! @ # $ Uzak tutun. Web dev multidisiplinerdir ve başarılı olmak için alana aktif olarak ilgi duyulmasını gerektirir. Sadece bir dilin bilgisini korumak isteyen ve problemleri çözerek ilgilenmekten daha çok korkan insanlar için uygun bir yer değil.
Java'nın kendisinin yetersizliğin kökü olduğunu iddia etmiyorum ve Spring'in iyi olduğunu duydum. Eminim orada yetkili Java ekipleri vardır. Henüz bir tanesine rastlamadım ve tesadüf olduğunu sanmıyorum. Bence Sun'ın bununla çok ilgisi var. Ayrıca, BT departmanları gibi veya altında çalışan web takımlarını yönetmenin de bununla bir ilgisi olduğunu düşünüyorum.
Java küçük web siteleri için gayet iyi, JSP sayfalarının Tomcat gibi bir Java web sunucusuyla çok hızlı çalışmasını sağlayabilirsiniz .
Deneyimime göre Java, karmaşık sunucu tarafı işlemeye daha fazla ihtiyaç duyulan büyük web siteleri için daha yaygın olmasına rağmen, bu durumda, JavaServer Faces (JSF) gibi daha sofistike Java çerçeveleri bulacaksınız.
Tam bir Java kurulumunun tarihsel olarak pek çok ucuz web barındırma kurulumunda mevcut olmadığına dikkat etmek önemlidir, bu nedenle bu ortamlardaki PHP gibi diğer dillerin yaygınlığını açıklayabilir.
Java'yı web geliştirmede kullanmanın temel nedenleri aşağı doğru kayıyor:
Teknik olarak konuşursak:
Bir web uygulamasına başlasaydım, Ruby on Rails'i kullanırdım ve RoR kendi performans ölçeklendirme sınırına ulaştığında sıcak noktaların değiştirilebileceği bir şekilde tasarlardım.
Java'nın belirli bir COBOL kokusu vardır ve "düşük seviye kodlayıcılar, Java'yı kullanır" dır ve Oracle fiyaskoları üne yardımcı olmaz. Seçme şansınız varsa, üst düzey aygıtları çeken bir dil seçin.
Çok basit: Java'yı arka uç performans önemli bir sorun olduğunda kullanın. Kodlamada daha fazla ek yük vardır, ancak kod tam anlamıyla 1/200 ile 1/500 arasında gerçekleşir. Php, Ruby ve diğer dinamik olarak yazılmış diller, java veya .net sunucularından her zaman çok daha yavaş olacaktır.
Web için çoğu çözüm buna ihtiyaç duymayacak. Twitter, örneğin popülaritesini artırmaya başlayana kadar Rails'ten vazgeçmedi.
Tek neden değil, ama uygulama benzeri ön uçları olan web sitelerinin popülerliğini arttırırken, sunucuda 'şeyler' yapmayı hala mantıklı kılarken - Java'nın neden en azından diğerlerinin eşit olduğunu açıklamak için hiçbir neden gerekli değil Sunucu ucundaki seçenek. Ancak müşteri sonunda, herhangi bir javascript hızlı bir şekilde kod bakım kabusuna dönüşecekse ve GWT'yi kullanarak bunları silah uzunluğunda tutmak için kullanacaksanız, böylece Java'da kod yazabilirsiniz, sunucunuzla her iki dünyanın en iyisini elde edebilirsiniz. ağır kaldırma ve müşterinin işlemcisini onlara 'deneyim' vererek yapıyor. JQuery gibi bir şeyle entegre etmeyi öğrenin ve istediğiniz tüm göz şekerlerini de alabilirsiniz.
Alternatifler konusunda herhangi bir uzman değil, ancak bir başkası aynı esneklikte ve genişlikte bir teklifte bulunabilirse, bunu duyduğuna sevindi.
Java'yı seçmemin temel nedeni, birçok şirket için büyük bir endişe kaynağı olabilecek dağıtılmış işlemleri kullanmanız gerekmesidir. Ancak yine de favori scriptleme dilinizi web geliştirme için kullanabilirsiniz ve hızlı / dağıtılmış işlemlere ihtiyaç duyduğunuzda yalnızca java üzerinde çalışarak yetki verebilirsiniz.
Uygulamanızın çok karmaşık olacağı, birçok insanın geliştirdiği, birçok karmaşık modüller, karmaşık iş mantığı ve diğer birçok kurumsal uygulama ile iletişim kurması gerektiğine inanıyorum.
Her neyse, birçok güzel özellik sağlayan, geliştirmeyi çok kolaylaştıran ve çok hızlı olgunlaşan Grails'te de geliştirebilirsiniz.
Java iyidir, ancak performans çok önemli değilse, diğer dillerde de aynı sonuçları daha az çabayla elde edebilirsiniz.
Java, statik olarak yazılmış bir dildir ve şirketinizin MSDN aboneliği yoksa, web geliştirme için kullanılan diğer statik olarak yazılmış dillerden (C # ve VB.net) daha ucuzdur. Statik olarak yazılmış diller orta ila büyük projeler, karmaşık etki alanı kuralları ve birçok arka plan kodu için iyidir, çünkü sınıflarınızı daha iyi düzenleyebilirsiniz ve IDE'ler kodunuzdaki hataları bulmanıza yardımcı olacaktır.
Dinamik olarak yazılmış dillerle, PHP, Python, Ruby gibi, geliştirmeniz çok daha hızlı olacak ancak kodunuzu daha iyi test etmeniz gerekecek. Çok fazla zamanınız ve paranız yoksa ve gereksinimleriniz çok hızlı bir şekilde değişirse ve çok karmaşık hesaplamalar yapmanız gerekmiyorsa, dinamik diller çok daha iyidir.
Güvenlik
Java'yı diğer çözümlere göre seçen büyük şirketlerin temel nedeni, çok daha güvenli olduğu düşünülüyor.
Bunun temel nedeni, böylesine büyük bir şirket tarafından desteklenmesidir (şimdi kahin).
Java'nın çok yüksek düzeyde güvenlik ve mükemmel destek ve analiz sunduğunu göz önünde bulundurmalısınız (bir bedeli olsa da).