2010-05-31 30 views
5

Tôi phụ trách xây dựng lại một trang web có khoảng 250.000 khách truy cập mỗi ngày. Chúng tôi muốn sử dụng Scala, nhưng nó không hoạt động tốt với Spring (trong một số trường hợp nhỏ) và Hibernate (có một sự không phù hợp lớn và rất khó chịu ở đây nếu bạn muốn sử dụng các bộ sưu tập scala, chúng tôi làm).giải pháp cơ sở dữ liệu web tốt nhất cho scala cho trang web có lưu lượng truy cập cao?

Bản thân ứng dụng sẽ có khoảng 40-50 bảng.

Khác với Hibernate, có một ORM hoạt động tuyệt vời với Scala và có hiệu quả và đáng tin cậy như Hibernate không? Liệu nó cũng có các khả năng tương tự, hay chúng ta sẽ chạy vào các trừu tượng bị rò rỉ nếu chúng ta không sử dụng Hibernate?

Nó sẽ là một rủi ro lớn đối với chúng tôi để đi với một khuôn khổ mới hơn và dường như không có nhiều sự ủng hộ của ngành công nghiệp ... và đồng thời, Hibernate là một nỗi đau thực sự để chống lại khi sử dụng Scala.

1) Bộ sưu tập Java < -> Bộ sưu tập Scala hoàn toàn gây đau đớn. Có rất nhiều sự sôi nổi và crap để viết.

2) IDE không tự động nhập JavaConversions và giao diện java ... vì vậy chúng tôi cần thực hiện việc này theo cách thủ công. Tối ưu hóa Nhập khẩu trong IDEA sẽ phá hủy tất cả công việc thủ công.

3) Ngoài ra còn có chi phí hiệu suất để chuyển đổi qua lại mọi lúc trong đối tượng miền của bạn và các lớp học dao của bạn.

4) Chưa kể có cần phải đúc nhiều, sản xuất mã xấu xí như tội lỗi.

Tôi thực sự muốn viết orm của riêng mình 100% phù hợp với scala, nhưng rõ ràng điều này thực sự nằm ngoài phạm vi dự án của chúng tôi bây giờ.

Vậy cách tiếp cận tốt nhất là gì?

Trả lời

6
  1. Bạn có xem xét Lift Framework không? Nó có một mô-đun bền vững rất tốt - Lift Record (thực hiện khái niệm ActiveRecord trong Scala mà bạn đang tìm kiếm).
    Ngoài ra, trong trường hợp bạn quyết định sử dụng NOSQL (có thể đáp ứng nhu cầu của bạn về thông lượng cao tốt hơn nhiều so với RDBMS truyền thống), Lift có các mô-đun cho Mongo DB, Redis and Couch.
  2. Một giải pháp ORM đã được chứng minh khác cho Scala là JPA. Bạn có thể tự do sử dụng chú thích JPA trong Scala.

    Cả hai giải pháp đều khá đáng tin cậy và có hỗ trợ doanh nghiệp (theo như tôi biết).

    P.S. Đáng nói đến - Lift Framework là một loại tiêu chuẩn công nghiệp cho khung web Scala những ngày này. Nó có một danh tiếng đã được chứng minh, và một số cuốn sách bắt đầu tốt đã có sẵn.
+2

Với tất cả sự tôn trọng đối với David và phần còn lại của cộng đồng nâng, nó thực sự không hấp dẫn tôi. Mọi thứ thật kì lạ, và nó quá khác biệt. Có những thứ chỉ nhảy ra và trông không nhất quán. Tôi đã thử nó một vài lần cách đây nhiều tháng ... nhưng cơ sở mã vẫn tiếp tục phát triển và các ứng dụng "bắt đầu" không hoạt động mọi lúc vì chúng được viết chỉ một hoặc hai tháng trước bản phát hành tiếp theo. Và với scala 2.8, mọi thứ sẽ thay đổi nhiều hơn. Tôi muốn một số thông thường hơn - gọn gàng, hiệu quả, sạch sẽ, súc tích, và cũng thông thường. – egervari

+1

Bạn muốn một cái gì đó khác với khung công tác ứng dụng web hiện có và được sử dụng rộng rãi như Grails và Lift và đồng thời là thông thường? –

5

Hãy xem Circumflex. Một ORM được viết bằng Scala, cho Scala.

+1

Có bao nhiêu người đang sử dụng? Bất kỳ câu chuyện thành công nào? Khả năng nó sẽ diễn ra trong một tháng là gì? một năm? :/ – egervari

+0

Nguồn có sẵn trên GitHub (liên kết ở cuối), nhưng như với tất cả các dự án nguồn mở bạn chỉ không biết liệu các tác giả sẽ bỏ cuộc. Đó là một rủi ro mà bạn thực hiện (ngoài các dự án ASF). Cá nhân tôi đã sử dụng nó cho các dự án nội bộ nhỏ và thấy nó hữu ích.Nó ngắn gọn và đơn giản, làm cho nó hoàn hảo như một khuôn khổ trong mắt tôi. URL GitHub: http://github.com/inca/circumflex – KushalP

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