2009-12-01 35 views
17

Tôi đã xem xét để xem liệu có tương đương với django/RoR trong java hay không.Các khung công tác web Java

tôi thấy:

Có ai đã từng thử những khuôn khổ, hoặc bạn có biết bất kỳ khác? Chúng có nhanh hơn django/RoR không?

+0

Yếu tố nào của khung web quan trọng đối với bạn? Khả năng mở rộng, năng suất, tài liệu vv ?? – Joel

+0

Khả năng mở rộng, năng suất, tài liệu và tài nguyên tiêu thụ tốt (Ngay cả khi mọi người nói rằng điều đó không quan trọng đối với ứng dụng web, trên điện toán đám mây) sẽ là – Roch

+0

điểm chuẩn của đường ray, wicket, grails, play, list, jsp: http : //www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/ –

Trả lời

17

Tôi đã phát hiện ra Grails khoảng một năm trước và chưa xem lại. Phải mất rất nhiều ý tưởng từ Ruby on Rails (bản gốc nó được đặt tên là Groovy on Rails), và có một hệ sinh thái phong phú của các plugins/extensions. Grails, và ngôn ngữ Grails cơ bản (superset của Java) làm cho nó trở thành một niềm vui cho chương trình - bạn thực sự có thể tập trung vào các yếu tố cần thiết. Chức năng GORM của nó (một lớp trên đầu ngủ đông) cũng rất mạnh mẽ, và ngoài hệ thống plugin, là một trong hai lý do rất lớn để kiểm tra nó (bạn có thể sử dụng nó trong các ứng dụng java của bạn).

Với phiên bản 1.2 sắp ra mắt, tôi cảm thấy nó giàu tính năng và đủ trưởng thành để trở thành thứ mà bất kỳ nhà phát triển nào cũng có trong bộ công cụ của họ. Theo như hiệu suất, nó chắc chắn ít hơn so với Java thuần túy, nhưng bạn có mọi thứ từ spring/hibernate/J2EE sẵn sàng để tối ưu hóa, và bạn luôn có thể rơi vào java thuần túy đối với một số đoạn mã quan trọng.Đã có một số thử nghiệm gần đây cho phép chạy một phần mã Groovy bằng cách sử dụng độ phân giải phương thức tĩnh, trong đó, cùng với hỗ trợ động cơ gọi, nên cung cấp hiệu suất tăng rất lớn.

Các tính năng khác cần kiểm tra trong Java là Spring Roo và AribaWeb.

Cập nhật Dựa trên các điều kiện bổ sung

Khả năng mở rộng, Năng suất, Tài liệu và tài nguyên phong nha tiêu thụ

  • Khả năng mở rộng - bạn sẽ có được chứng minh Java/Spring/Hibernate ngăn xếp, mặc dù tôi không thể nói Grails cung cấp nhiều.
  • Năng suất - đây là lý do chính để sử dụng Grails. Bạn có một chi phí hiệu năng, nhưng Grails là những gì bạn sử dụng khi thời gian phát triển/năng suất là quan trọng hơn.
  • Tài liệu - tài liệu về grails rất tuyệt và có ít nhất ba cuốn sách hay được viết riêng trên Grails. Cộng đồng đang phát triển và rất hữu ích.
  • Mức tiêu thụ tài nguyên - đó là một sự cân bằng. Grails (một phần do ngăn xếp java cơ bản) là tài nguyên chuyên sâu. Nếu tôi đang xây dựng một cái gì đó như Google, Grails sẽ không phải là sự lựa chọn. Tuy nhiên, trong bất kỳ ứng dụng web nào của bất kỳ sự tinh tế nào, bạn sẽ làm tốt cho giải pháp lưu vào bộ nhớ cache, vì vậy, hãy áp dụng tương tự ở đây.
+1

Vâng vâng, grail có vẻ tuyệt vời. Nhưng nghĩ rằng tôi sẽ thử "Chơi", nó trông rất hấp dẫn ..điều duy nhất tôi lo lắng là tiêu thụ tài nguyên và cho dù là tồi tệ hơn hay tốt hơn so với php/python/ruby, tôi đã không quản lý để tìm thấy nhiều về nó trên google. – Roch

+1

Âm thanh tốt - chơi có vẻ thú vị. Ngoài ra kiểm tra video AribaWeb - trông rất ngọt ngào. Chỉ cần ghi nhớ rằng với Grails, bạn cũng có được sức mạnh của Groovy, mà bản thân nó là một lợi thế (mặc dù hiệu suất của khóa học là một sự cân bằng). –

+0

Ok, tôi sẽ xem AribaWeb. Play framework cũng sử dụng Groovy cho các mẫu của nó ;-) – Roch

1

Tôi không biết về Khung Play, nhưng để trả lời câu hỏi thứ hai, chúng tôi đang thực hiện một số dự án với số Webtoolkit của Google. Có thể đáng để kiểm tra.
Chúc bạn may mắn!

0

Tôi không biết về Khung chơi, nhưng Spring MVC hoặc Struts cùng nhau sẽ Hibernate sẽ cung cấp chức năng tương tự.

Có nhiều tùy chọn khác có sẵn. Về cơ bản bạn cần một khung MVC (Spring MVC, Struts, Wicket) và một công cụ ORM (Hibernate, iBatis). Tất nhiên bạn sẽ cần phải tích hợp các thành phần cần thiết cho mình, nhưng điều này đã được thực hiện đã nhiều lần và bạn sẽ có thể tìm thấy nhiều thông tin.

1

Làm thế nào về JRoR

+2

JRuby on Rails không phải là khung công tác web Java! Đó là Ruby on Rails đang chạy trên một JVM. –

+1

Lỗi tương tự được thực hiện trong câu hỏi, vì vậy có lẽ người hỏi không có nghĩa là chỉ java :) – Bozho

+0

vâng tôi không biết tôi đang chỉnh sửa ngay bây giờ. – Roch

0

Tôi không chắc chắn nếu Spring MVC và Hibernate cung cấp một cách dễ dàng cùng sử dụng mà Ruby on Rails cung cấp (trên thực tế, tôi chắc chắn rằng nó là phức tạp hơn nhiều ...). Play Framework giống với Ruby on Rails hơn, tuy nhiên tôi không tự mình làm nó và chỉ xem màn hình và đọc một số tài liệu, vì vậy nếu bạn muốn có trải nghiệm tương tự để phát triển bằng cách sử dụng RoR, tôi nghĩ bạn tốt hơn có thể thử một cái gì đó như chơi thay vì mùa xuân MVC với Hibernate. Ưu điểm của thứ hai là nó rất mạnh mẽ và có khả năng thích ứng với một mô hình dữ liệu hiện tại chẳng hạn (từ những gì tôi biết trên RoR, điều này không quá nhỏ nhặt trong RoR). Một khung công tác khác mà bạn có thể xem xét là Groovy trên Grails. Mặc dù nó không sử dụng Java (nó sử dụng Groovy), nó rất giống với RoR. Nó sử dụng Spring và Hibernate dưới mui xe (nếu tôi là đúng) và lợi thế của Groovy là bạn không có kiểu gõ Java tĩnh chặt chẽ. Ruby on Rails và Django được hưởng lợi nhiều từ tính chất động của ngôn ngữ mà nó được triển khai, một tính năng Java bị bỏ sót vì kiểu gõ tĩnh của nó.

Edit: ah, bạn đề cập Grails đã có trong câu hỏi của bạn ...

0

nếu grails là một lựa chọn (mà thực sự không phải là một java nhưng một khuôn khổ groovy) thì Scala dựa trên Lift khuôn khổ sẽ là một lựa chọn , quá.

1

đã không thử nó bản thân mình, nhưng các trường đại học của tôi thích sử dụng stripes

Có một tất cả mọi thứ book và.

0

Tùy chọn khác là RIFE, cố gắng có cấu hình tối thiểu của ROR trong khi vẫn ở trong Java. Trong danh sách của bạn, chỉ Play Framework có tính năng đó, những cái khác nằm trên JVM, nhưng không phải là Java (nếu điều đó quan trọng với bạn cả).

3

Stripes có vẻ khá nhẹ và bao gồm Công ước trên cấu hình.

+0

Sọc trông rất thú vị thực sự. +1 –

0

Còn khoảng VRaptor thì sao? - nó sử dụng Spring như DI Container và một Controller/View engine tương tự như Rails Action-Pack.

2

Có thanh chống sử dụng, wicket, đường ray & Tấm thảm, tôi khuyên bạn nên xem xét Tapestry 5.

Nó hỗ trợ

  • trong lớp container nạp lại (vì vậy bạn không cần phải khởi động lại ứng dụng web của bạn mỗi khi bạn thực hiện một sự thay đổi)
  • thời gian phát triển nhanh & tăng năng suất - nó sử dụng một mô hình thành phần dựa, với dây declarative
  • cấu hình tối thiểu, trong đó chủ yếu là trong mã anyway, quy ước về cấu hình - vv ..
  • Không lớp cơ sở để mở rộng
  • Một ngôn ngữ biểu thức để sử dụng trong các tập tin mẫu
  • hỗ trợ ajax tốt
  • hỗ trợ gỡ rối tuyệt vời, cả client và server bên
  • tích hợp truy cập dữ liệu tốt
  • một cộng đồng năng động
  • viết từ mặt đất lên với performance trong tâm trí. ví dụ. tổng hợp trang (để giảm thiểu việc sử dụng tài nguyên), nén trang, loại bỏ khoảng trắng, tất cả các mã động được biên dịch thành bản địa.
  • hỗ trợ hình thức và đậu tốt - làm cho các tác vụ thông thường trở nên đơn giản. Một cơ sở dữ liệu có thể sắp xếp được hỗ trợ drid có thể được mã hóa chỉ với một dòng mã mẫu và một chương trình phụ trợ máy chủ bộ xương tối thiểu.

nhược điểm duy nhất là tài liệu, trong đó, là tốt, nhưng một chút ngắn gọn, mặc dù các nhóm người dùng/mailing lists là rất tích cực và hầu hết các câu hỏi được trả lời tốt & háo hức.

(Ngoài ra, hãy chắc chắn chỉ nhìn vào T5 - và không T4,3,2,1 ..... vì đây là rất khác với phiên bản hiện tại)

Thông tin thêm về lý do tại sao here.

0

AribaWeb cũng hỗ trợ Groovy. Hãy xem các tính năng khác của chúng tôi tại http://aribaweb.org/ và tìm hiểu cách tiếp cận của chúng tôi để làm cho phát triển web có hiệu quả.

2

Bất cứ khi nào bạn dự tính một chồng ứng dụng (ngôn ngữ, khuôn khổ, v.v ...), bạn cũng cần xem xét những gì bạn đang cố gắng giải quyết và loại kỹ năng lập trình nào bạn có theo ý của mình. Tôi đã thấy rằng các lập trình viên Java có kinh nghiệm hơn đã làm việc rất hiệu quả với chồng Groovy và Grails khi so sánh với nhiều lập trình viên cơ sở.

Bạn đề cập đến sau đây là lĩnh vực quan tâm:

  • Khả năng mở rộng: về những gì chính xác? (số lần xem trang/giây, # giao dịch/giây, v.v ...) Nói chung, Groovy & Grails sẽ mở rộng quy mô khi nói đến các trang kết xuất, tuy nhiên như với bất kỳ ngăn ứng dụng nào sử dụng ORM (trong trường hợp của Grails bạn có GORM) là một số chi phí cần xem xét.
  • Năng suất: một trong những ưu điểm chính ở đây - tạo mẫu nhanh, phát triển nhanh chóng dễ dàng với Groovy & Grails, mặc dù nó giúp có nhân viên phát triển trong Java hoặc Ruby để hiểu khung Grails thực sự đang làm gì " dưới mui xe". Có rất nhiều plug-in cho giao diện người dùng giúp tạo các trang giống như web 2.0 rất nhanh.
  • Tài liệu: có ngày càng nhiều sách tham khảo chất lượng được viết cho Groovy & Grails. Cả hai đều trưởng thành rất độc đáo trong 2 năm qua.Mọi thứ chắc chắn không được ghi nhận rõ ràng về phần lớn hoạt động bên trong của khung Grails khi các lỗi/vấn đề gặp phải (phần lớn đầu ra của khung công tác là tối nghĩa hoặc không tồn tại ở mức tốt nhất khi có lỗi). Nếu bạn sẵn sàng để cuộn lên tay áo của bạn và được tháo vát trong đi bộ thông qua các hoạt động bên trong, sau đó bạn sẽ không phải thất vọng với ngăn xếp này. Một lần nữa, các lập trình viên có kinh nghiệm sẽ tìm thấy điều này như là bản chất thứ hai trong khi nhiều người trẻ hơn có thể ném đôi tay của họ trong thất vọng ở lần.
  • Tiêu thụ tài nguyên: có phí, tuy nhiên với hầu hết phần cứng được tìm thấy hôm nay (cục bộ hoặc trong đám mây), tôi sẽ không lo lắng quá nhiều về mức tiêu thụ tài nguyên cho một cá thể ứng dụng cụ thể.

Hy vọng điều này sẽ hữu ích.

0

Chúng tôi sử dụng Stripes framework rộng rãi và nó hoạt động thực sự tuyệt vời. Nó thực sự nhẹ và nó hướng bạn đến một thiết kế sạch sẽ của các ứng dụng của bạn. Về cơ bản nó chỉ che giấu những phần nhàm chán của sự phát triển từ bạn, vì vậy bạn có thể tập trung vào những thứ thú vị (Một ví dụ như vậy là indexed properties).

1

Tôi đã thực hiện một dự án với grails và tôi đã tìm thấy nó thực sự nhanh chóng đối với một số tác vụ, nhưng nó có nhiều "ma thuật" đằng sau hậu trường làm cho nó khó khăn khi gỡ lỗi.

Ngoài ra tôi thấy bản thân mình đọc đi đọc lại tài liệu vì tôi không cảm thấy tự nhiên. Một ví dụ đơn giản là bộ điều khiển trong đó các hành động được định nghĩa là các trường (Nó tự nhiên đối với tôi khi nghĩ về một hành động như một phương thức ...). Tôi có thể nói điều gì đó về GORM nơi bạn cần biết một số từ đặc biệt khi đặt trong các trường tĩnh thực hiện một số phép thuật như tạo một trường thoáng qua ... Không có chú thích, không tự động hoàn thành ... chỉ hướng dẫn.

Đối với Play! Tôi thấy nó thật đơn giản và nhanh chóng để phát triển, dễ học và dễ nhớ. Cộng đồng có vẻ nhỏ hơn Grail nhưng nó hoạt động tích cực hơn và nhanh hơn để trả lời. Nhược điểm duy nhất là nó không dựa vào api của servlet để một số bộ lọc của bên thứ 3 hoặc các thứ khác khó tích hợp nhưng không phải là không thể. Điều quan trọng cần lưu ý là bạn có thể triển khai một ứng dụng Play trong bất kỳ máy chủ web truyền thống nào đóng gói nó như một cuộc chiến.

Theo ý kiến ​​của tôi Grails là tuyệt vời nhưng bạn cần phải có rất nhiều kinh nghiệm với nó để được sản xuất, nếu không bạn sẽ mất rất nhiều thời gian với các hướng dẫn sử dụng. Vì vậy, nếu đó không phải là trường hợp của bạn, tôi nên khuyên bạn nên chơi! Đặc biệt nếu bạn không quen thuộc với Groovy

0

Tôi đã sử dụng http://www.ninjaframework.org/ cho các dịch vụ vi mô và rất gần với hầu hết các mô hình mvc, nếu bạn sử dụng đường ray, asp.net mvc hoặc nancyfx, bạn nên sử dụng. Nó rất gần với triết lý đó và thực sự tuyệt vời và dễ dàng để kiểm tra. Chỉ có down-side không có nhiều tài liệu, nhưng nó theo mô hình mvc khá chặt chẽ. Nó sử dụng không có gì độc quyền trong khuôn khổ vì vậy nó là một giải pháp dựa trên java thuần túy. Vì vậy, điều này bù đắp cho việc thiếu tài liệu.

Các vấn đề liên quan