2010-01-20 29 views
30

Bạn có thể chia sẻ kinh nghiệm của mình về việc sử dụng Scala và Wicket cùng nhau không? Họ có phù hợp tự nhiên với nhau không? Bạn có tận dụng lợi thế của việc sử dụng Scala (và FP) với Wicket hơn bằng cách sử dụng Java? Tại sao (sẽ) bạn thích Wicket hơn Lift?Trải nghiệm của bạn với Scala + Wicket

+0

lẽ nên được wiki cộng đồng - có không thực sự sẽ là một "quyền" câu trả lời cho điều này. –

Trả lời

24

Đối với những người quan tâm đến việc xem mã, tôi re-implemented bản thử nghiệm "Đặt phòng khách sạn" của Seam tại Scala + Wicket đây: Browse | SVN - phiên bản Java + Wicket có tại đây: Browse | SVN

Tôi đã sử dụng (chưa phải là cuối cùng) Scala 2.8 và plugin NetBeans. Có ý nghĩa để viết blog chi tiết về nó (thậm chí có một triển khai thực hiện Groovy + Wicket), nhưng một vài ấn tượng cấp cao dưới đây; làm ví dụ, đây là cùng một mã giao diện người dùng trong Java | Scala. Các quan sát:

  • chắc chắn ít hơn rất nhiều soạn sẵn và ít 'tiếng ồn'
  • Scala cảm thấy như một sự phù hợp rất tốt cho Wicket khi nói đến thành phần làm tổ
  • cho ví dụ ít công việc/dòng mã hơn để xác định các lớp bên trong/các nhà xây dựng, vì vậy có thể làm chủ yếu trong dòng và giữ cho tổ không bị lộn xộn nhiều
  • và đồng thời ghi đè các phương thức khung làm một lớp lót. tốt đẹp !
  • Scala dường như hoạt động tốt với Wicket Generics, trình biên dịch dường như càng nghiêm ngặt hơn nhiều, có thể đây là một điều tốt. NetBeans plugin giúp, nhưng vẫn còn lỗi và chậm ở lần.
  • Không phải là một ứng dụng rất phức tạp, do đó không có cơ hội áp dụng các bao đóng và FP nhiều
  • Có một số gotchas bạn cần phải biết như sau: Fighting Scala – Scala to Java List Conversion - trong thời gian này tôi quản lý bằng cách sử dụng bộ sưu tập Java cho tên miền thuộc tính đối tượng.

Chưa chạy thử nghiệm/so sánh hiệu suất. Hãy theo dõi :) Hãy cho tôi biết nếu có bất cứ điều gì bạn muốn biết khi tôi nhận được xung quanh để đăng một bài viết blog chi tiết về điều này. Oh và nếu bạn có cơ hội xem qua mã và cho tôi biết những gì có thể được cải thiện, điều đó sẽ tuyệt vời!

tôi đã không nhìn Lift chưa nhưng đây là một bài đăng blog có thể giúp OP: Lift from a Wicket Developer's Perspective

Phải nói rằng tôi sẽ chọn Scala qua Groovy bởi một dặm nếu trộn với Wicket. Tính năng "sắp xếp nhập" IDE tự giải quyết câu hỏi. Hỗ trợ lớp bên trong Groovy mới có một số gotchas nghiêm túc cản trở khi sử dụng Wicket. Cũng gặp một số vấn đề như groovy.lang.Reference không Serializable vv

+0

Bạn có sử dụng dự án mở rộng Scala Wicket không? http://www.mail-archive.com/[email protected]/msg40899.html? –

4

Tôi đã sử dụng Scala + Wicket một chút - đó là một điểm tốt để giới thiệu một số Scala. Việc đóng cửa có thể giúp giảm bớt các dòng mã trong bộ điều khiển Wicket, được đưa ra một vài chuyển đổi ngầm hoặc các phương thức tiện ích. Ngay cả Dave Pollak đã từng gợi ý sự kết hợp này, nếu bạn thích Wicket để nâng hoặc có một ứng dụng Wicket hiện tại bạn muốn trang bị thêm Scala với.

Chỉ cần cẩn thận về các kiểu dữ liệu bạn sử dụng trong bất kỳ thành phần Wicket nào có trạng thái tuần tự. Bạn đôi khi có thể làm mà không có điều này, và sử dụng các thành phần Wicket không quốc tịch.

3

Chúng hoạt động thực sự tốt với nhau. Chưa kể tất cả tiền thưởng của việc sử dụng Scala làm ngôn ngữ của bạn.Trên đường đi, tôi lấy ra các bit mà tôi đã tạo ra mà tôi thấy hữu ích và tạo ra dự án Scala Wicket Extensions: http://www.mail-archive.com/[email protected]/msg40899.html Đã không sử dụng nó trong một thời gian, nhưng nó vẫn tốt. Tôi rất muốn có thêm nhiều người đóng góp cho dự án.

Các repo là ở đây: https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/trunk/wicketstuff-core/scala-extensions-parent/

Đó là một sự xấu hổ wicket-thứ (và wicket) là/đang không ở trong Github:/

1

Tôi chỉ muốn chỉ những phương pháp mới, trong Scala 2.8, để làm scala để chuyển đổi java và trở lại, vì nó đã được chỉ ra như là một vấn đề trong câu trả lời của Peter Thomas. Các công cụ mới được mô tả ở đó: Conversions between Java and Scala collections

Cần giải quyết vấn đề scala < => java sưu tập Tôi đoán

+1

Space Borg, tôi nghĩ rằng, bạn nên đặt nó như là bình luận cho câu trả lời của mình, không phải là câu trả lời riêng biệt vì nó không trả lời câu hỏi. – Alexey

+1

Tôi đồng ý nhưng tôi đã không tìm hiểu làm thế nào, "Thêm bình luận" đã không được cung cấp cho tôi ... Freel miễn phí để chỉnh sửa/thay đổi nó nếu bạn có thể (??). –

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