2009-04-20 12 views
6

Tôi rất thích sử dụng các bao đóng trong Java. Tôi đã đọc rằng họ có thể hoặc không thể làm cho nó thành Java 7. Nhưng một dự án mã nguồn mở gọi là functional-java đã thực hiện các tính năng chức năng bao gồm cả bao đóng.Làm cách nào để sử dụng chức năng-java để thêm các bao đóng vào một dự án sản xuất Java?

Làm cách nào để sử dụng thư viện như vậy trong ứng dụng sản xuất doanh nghiệp?

Có cách nào tốt hơn để thêm đóng cửa vào Java hiện tại không?

+1

Bạn có thể thử sử dụng scala hoặc clojur thay vì – KitsuneYMG

Trả lời

6

Đóng cửa chắc chắn sẽ không biến nó thành Java 7, do thiếu sự đồng thuận xung quanh một triển khai đơn lẻ. See here.

Thư viện Java chức năng được kiểm tra kỹ lưỡng và tích cực phát triển. Nếu bạn duyệt mã nguồn, bạn sẽ thấy rằng nó chỉ đơn giản là Java chuẩn, và không có nhiều thứ có thể sai. Tôi biết ít nhất một ứng dụng doanh nghiệp quan trọng có nhiệm vụ sử dụng nó trong sản xuất. Ứng dụng này có hơn một triệu người dùng.

.

0

BGGA vẫn là một triển khai mẫu thử nghiệm, không chắc chắn bạn thoải mái khi đưa mã nguyên mẫu vào sản xuất như thế nào. kiểm tra google collections nó giúp bạn gần hơn với mục tiêu mặc dù nhiều chi tiết hơn

+0

Thú vị nhưng dường như không có gì giống như đóng cửa - chỉ là bộ sưu tập. –

+0

Java chức năng không yêu cầu BGGA, nhưng không hỗ trợ nó. – Apocalisp

+1

Bộ sưu tập của Google có loại Chức năng và hầu hết các bộ sưu tập của chúng thực hiện một hàm. Các bộ sưu tập của Functional Java thực hiện các hàm functors cũng như monads, cofunctors và comonads. – Apocalisp

4

Java chức năng không yêu cầu bạn sử dụng các bao đóng - nguồn biên dịch với bất kỳ trình biên dịch Java 1.5 nào. Java chức năng hoàn chỉnh hơn nhiều so với các bộ sưu tập của Google và chỉ xảy ra cho phép bạn sử dụng nó tốt với BGGA.

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

2

Nếu bạn đang tìm kiếm một giải pháp nhẹ hơn để có đóng cửa trong Java đơn giản kiểm tra dự án lambdaj:

http://code.google.com/p/lambdaj/

+0

Lambdaj là lần cuối cùng tôi thử nghiệm nó, khá chậm. Thành thật mà nói, tôi đã thực sự thất vọng bởi điều này bởi vì tôi đã hy vọng tận dụng nó. – RHSeeger

+1

Bạn đã thử nghiệm phiên bản nào? Bạn đã tìm thấy tính năng nào chậm? Tất nhiên bạn phải trả một cái gì đó cho việc sử dụng proxy và phản ánh, nhưng mất hiệu suất là khá tốt tài liệu và trong phần lớn nhất của các trường hợp là rất hợp lý. –

+1

Tôi ước tôi có thể trả lời các câu hỏi của bạn, nhưng tôi không làm gì nhiều khi tôi thử nghiệm nó. Tôi dường như nhớ lại là 3-5x chậm hơn cho các trường hợp sử dụng tôi đã thử nghiệm nó trên ... và rằng trường hợp đó là cái gì tôi muốn sử dụng nó cho (tức là, gần với một cái gì đó tôi đang làm trong mã sản xuất), nhưng không nhiều hơn thế. Tôi thực sự muốn tôi có thể cụ thể hơn, nhưng nó đã được một vài tháng trước và tôi đã không mất nhiều trong cách ghi chú. – RHSeeger

4

Tôi nghĩ rằng bạn đang xem xét vấn đề này từ quan điểm sai.

Tôi rất thích sử dụng các bao đóng trong Java. ... Làm thế nào để sử dụng thư viện như vậy trong một ứng dụng sản xuất doanh nghiệp?

Quyết định của bạn về công nghệ sử dụng trong ứng dụng sản xuất doanh nghiệp phải dựa trên những gì sẽ tốt nhất cho doanh nghiệp trong thời gian dài. Bạn nên đặt câu hỏi như:

  • Việc thêm công nghệ sẽ cải thiện đáng kể ứng dụng từ quan điểm của chức năng?
  • Những rủi ro đối với dự án hiện tại là gì?
  • Công nghệ có cho là "sản xuất đã sẵn sàng" không?
  • Công nghệ có được hỗ trợ không. Có khả năng vẫn được hỗ trợ trong thời gian từ 5 đến 10 năm không?
  • Nếu bạn rời khỏi công ty, có ai khác sẽ tiếp quản việc duy trì mã của bạn không?
  • Ý nghĩa đào tạo/tuyển dụng của việc sử dụng công nghệ là gì?

Nói chung, các câu như "Tôi rất thích sử dụng Xxx" sẽ không có chỗ trong việc ra quyết định của doanh nghiệp.(Có các ví dụ phản đối, ví dụ như các công ty khởi nghiệp đặt cược công ty vào một số công nghệ mới, nhưng tỷ lệ thành công thực sự là ... umm ... mở để đầu cơ.)

Tóm lại, nếu bạn đang xây dựng ứng dụng sản xuất doanh nghiệp, bạn cần phải bảo thủ và chống lại sự cám dỗ khi sử dụng công nghệ mới sáng bóng "để giải trí". Cố gắng nghĩ như một người quản lý CNTT.

0

Câu hỏi quá cũ để trả lời. Ở đây chúng ta có lambdas trong java8 để làm cho cuộc sống của bạn dễ dàng hơn.