"Yapılandırma üzerine kongre" nin bir kısmı mantıklı varsayılanlara indirgenir. Standart olmayan bir amaç için kullanmak için bir şeyi yapılandırmanız gerekir. Struts ile Rails'i burada karşılaştırmalıyım. Rails'de, "işlem / ekranlarınızı" bir klasöre koymanız gerekir ve ardından çalışırlar. Struts'ta, onları hala bir klasöre koymak zorundasınız, ancak aynı zamanda bir aksiyon ismi ve bir JSP dosyası ve bir form adı ve bir form çekirdeği ile birlikte gelmelisiniz ve bu üç şeyin Struts-config'de birlikte nasıl çalışacağını belirtmelisiniz. xml AND, formun istek üzerine ait olduğunu belirtir (RESTful). Bu yeterli değilse, form / form-fasulye eşlemesi Struts-config'de kendi bölümüne sahiptir ve daha sonra aynı dosyadaki eylem bölümüne bağımsız olarak eşleştirilir ve hepsi çalışmak için JSP dosyasındaki el yazısı dizelerine dayanır. uygun şekilde. Her ekran için bu yapmanız gereken en az 6 şey ve bir hata yapmak için birçok fırsat. İhtiyacınız olursa, bunların çoğunu veya hepsini manuel olarak Rails'te ayarlayabileceğinizi düşünüyorum, ancak gereksiz karmaşıklık katmanlarının oluşturulması ve sürdürülmesi için Struts geliştirme süresi 2 / 3'ü kaplandı.
Adalet, Struts 1 insanlar masaüstü ve web arasında uygulamalar taşırken tasarlandı. Struts'un hazırladığı esneklik, Rails'in yaptığı her şeye ve bir masaüstü uygulamasının ihtiyaç duyacağı her şeye uygun olmasını sağlar. Ne yazık ki, bu esnekliği sağlayan yapılandırma dağı, sadece bir web uygulaması veya sadece bir masaüstü uygulaması yazması gereken biri için büyük bir top ve zincirdir.
Bir sonraki adıma geçtikleri bir yerde çalıştım ve " Kod Üzerinden Konfigürasyon" konusunu tartıştıklarını ancak mantıksal sınırlarına geldiklerini görünce sonuç konfigürasyonun yeni bir kodlama dili haline geldiğini gördüm. Herhangi bir önemli şekilde evcilleştirilmeden karmaşıklığın etrafa itildiği bir kabuk oyunuydu. Ve bana iyi tasarlanmış bir programlama dilinin sahip olduğu tüm tip kontrolleri ve diğer güvenlik ağları için bir takdir kazandırdı. Bir boşluk veya kesme işareti eklerseniz hata mesajı vermeyen bazı yarı pişmiş yapılandırma dosyası formatları, düzenleme araçlarına ve bunun için yazılmış kaliteli bir derleyiciye sahip kaliteli bir programlama dili üzerinde bir gelişme DEĞİLDİR.
Mantıklı varsayılanlara sahip olmanın, genişletilebilirlik ve modülerlik hakkındaki teorik ilkeleri ihlal ettiğini hayal edemiyorum. Bir Ruby / Rails programcısı, tüm konfigürasyonların açıkça birden fazla XML dosyasında yapıldığı Struts 1 gibi bir çerçeveye geçmek yerine, gözlerinde sıcak bir poker yapabilir. Genel olarak Rails'e karşı Struts'a değinmiyorum, ancak bu konvansiyonun büyük bir verimlilik kazancı olabileceğini düşünüyorum. Bu iki teknoloji karşılaştığım en aşırı gerçek dünya karşılaştırması.
Java ile çalışıyorsanız, Joshua Bloch'un "Etkili Java", "Öğe 2:" Pek çok yapıcı parametresiyle karşılaştığınızda bir Oluşturucu düşünün "s. 11-16. Çoğu amaç için, bazı parametreler (yapılandırma) gereklidir ve bazıları isteğe bağlıdır. Temel fikir, sadece gerekli konfigürasyona ihtiyaç duymak ve sadece kullanıcıyı (başka bir program olabilir) gerektiği gibi ilave seçenekler belirlemektir. Bir ay önce bu kalıpla bir sürü kodu temizledim ve olumlu bir şekilde parıldıyor.