2010-05-27 19 views
8

Nếu bạn đã bắt đầu một dự án Java mới ngày hôm nay với các yêu cầu sau:Bạn sẽ sử dụng chồng nào cho một dự án Java web mới nếu bạn bắt đầu hôm nay?

  • quy mô cao (20k + users)

  • bạn muốn sử dụng cái gì đó khá trưởng thành (không thay đổi đáng kể) & sẽ không bị mất công nghệ trong 3 năm

  • bạn muốn một cái gì đó rất hiệu quả (không khởi động lại máy chủ trong dev, lưu mã và tự động biên soạn và triển khai), năng suất và thời gian để thị trường là chìa khóa.

  • một số lượng AJAX trên kết thúc trước

  • không có ngôn ngữ kịch bản (JRuby, Groovy, PHP vv), nó phải được Java

  • có để hỗ trợ i18n

Bạn sẽ sử dụng chồng nào & Tại sao? (khi tôi nói ngăn xếp, ý tôi là, tất cả mọi thứ canh cho các loại hạt, vì vậy máy chủ ứng dụng, khung mvc, khung công tác, khung ORM, khung javascript, v.v.)

Trả lời

3

cho một ứng dụng web java truyền thống, cho mục tiêu của bạn, tôi sẽ đi với sọc như một khuôn khổ MVC vì nó rất dễ dàng để thiết lập và chạy, và nó chơi tốt với mùa xuân và ngủ đông, và có hỗ trợ ajax tốt.

về năng suất, nhật thực các dự án web động nên giải quyết các vấn đề biên dịch/triển khai của bạn. Tôi đã luôn luôn sử dụng nó với tomcat, nhưng nó cũng nên làm việc với jBoss.

Cá nhân tôi sẽ sử dụng tomcat, sọc (mvc), hibernate (orm), spring (nếu cần), jQuery (js) và eclipse để phát triển.

+0

Sọc có phổ biến không? – Adam

10

tôi sẽ xem xét sử dụng một Java EE 6 stack:

  • GlassFish v3 như máy chủ ứng dụng: không nặng, rất hiệu quả trong quá trình phát triển (và GlassFish 3.1, sẽ được phát hành trước khi kết thúc năm nay, sẽ có Quản trị tập trung/Clustering và High Availability/State Replication)
  • JQuery, JSF 2 (hoặc Wicket) cho bài thuyết trình
  • CDI, EJB 3.1 (Lite?), JPA 2.0 (Hibernate 3.5 + hoặc EclipseLink)
  • Arquillian(1) với Weld SE và/hoặc GlassFish Embedded để thử nghiệm

(1) Xem thêm:

+0

er ... chính xác thì Arquillian là gì? Trang web của nó không rõ ràng về điều đó và liên kết Tổng quan đưa tôi trở lại trang JBoss chính. – Powerlord

+0

@ R.Bemrose: Đó là một thử nghiệm khai thác cho các bài kiểm tra tích hợp. Tôi đã cập nhật liên kết đến trang dự án (và thêm các liên kết khác). –

3
  • Tapestry 5 & JQuery (Tapestry 5 đã được thiết kế để có bằng chứng trong tương lai, không đòi hỏi máy chủ khởi động lại và là siêu nhanh để phát triển với - thành phần được lean- nó cũng có quy mô tốt)
  • mùa xuân cho cấu hình đậu (Tapestry hỗ trợ chú thích dựa trên cấu hình Bean bean)
  • JDBC được tạo thủ công cho mô hình quan hệ (vì tôi không thích thêm một lớp mã khác cho ORM và được tạo thủ công có thể được điều chỉnh tốt hơn)
  • Lucene cho chỉ mục hoặc dữ liệu không cần phải được truy vấn một cách có liên quan
  • Tomcat (hoặc Jetty nếu nhúng) - cả hai đều là đáng tin cậy và cũng kiểm tra các máy chủ
+0

Tôi nghe nói rằng EJB3/JPA2 không phải là xấu trên mặt trận ORM.Sau đó, một lần nữa, EJB3/JPA2 là các giao diện, chứ không phải các triển khai. – Powerlord

+1

Khá nhiều câu trả lời tương tự, mặc dù tôi chắc chắn sẽ sử dụng Querydsl (http://source.mysema.com/display/querydsl/Querydsl) để xây dựng truy vấn. – ponzao

0

Scala và Spring

1

tôi sẽ đi cho:

  • cơ sở dữ liệu Oracle 11g.
  • JPA 2.0 ORM với EclipseLink.
  • Glassfish v3 (ít nhất là cho đến khi Oracle WebLogic trở thành Java EE 6 tuân thủ), cung cấp bất kỳ hàng đợi thư, hồ bơi kết nối DB hoặc bất kỳ tài nguyên JCA nào bạn có thể cần.

Tôi sẽ không sử dụng JSF ... JSF 2.0 tốt hơn nhiều so với JSF 1.0, nhưng vẫn stinks ở một số khu vực. Bạn chắc chắn sẽ đánh một bức tường trong các kịch bản 'đi ngược lại cách JSF' (hay đúng hơn là không được phục vụ đúng đắn trong JSF).

Tôi sẽ sử dụng khung công tác Spring 3.0 và Spring MVC với Spring Web Flow nếu bạn có một số điều hướng phức tạp mà bạn muốn kiểm soát. Điều này cũng sẽ cung cấp cho bạn tùy chọn để có một phần web trên một máy chủ riêng biệt (như Tomcat) nếu bạn muốn, và gọi EJB được lưu trữ trên Glassfish thông qua IIOP, do đó mở rộng quy mô.

Nếu bạn muốn có toàn quyền kiểm soát thiết kế trang của mình, (có thể bạn muốn sử dụng một nhà thiết kế web để duy trì giao diện) Tôi sẽ tìm một công cụ mẫu như Velocity, tích hợp độc đáo với Spring MVC và là nhà thiết kế thân thiện với hầu hết các công cụ như Dreamweaver.

Cuối cùng, JQuery sử dụng một số tiện ích Javascript đã sẵn sàng như điều khiển lịch, cửa sổ bật lên, tin nhắn người dùng và chuyển tiếp.

+5

Oracle? Đã có ngân sách ... –

+1

Bạn có thể xây dựng trên "JSF 2.0 vẫn stinks" bình luận? –

+0

Không có giới hạn ngân sách nào được chỉ định. Câu hỏi được định hướng nhiều hơn về độ tin cậy và sự nhanh nhẹn. Một phiên bản tiêu chuẩn oracle nên làm các trick mà không đi quá overboard với ngân sách và Real Application Clustering đi ra khỏi hộp. Nếu không một cái gì đó như Postgresql hoặc Mysql sẽ làm, nhưng các giải pháp phân cụm của họ không phải là mạnh mẽ, và trong thực tế nếu bạn muốn có sự hỗ trợ thích hợp vẫn còn chi phí. Tất cả đều là cơ sở dữ liệu tốt mặc dù. – jbx

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