2010-06-18 30 views
9

Tôi đang bước đột phá đầu tiên vào scala cho một ứng dụng sản xuất. Ứng dụng hiện được đóng gói dưới dạng tệp chiến tranh. Kế hoạch của tôi là tạo một tệp jar của các tạo phẩm được biên dịch scala và thêm vào thư mục lib cho tệp war. Tính năng nâng cao của tôi là ứng dụng được mysql hỗ trợ được hiển thị qua Jersey & sẽ được tích hợp với trang web của bên thứ ba thông qua lời mời HttpClient. Tôi biết làm thế nào để làm điều này thông qua java đơn giản. Nhưng khi làm điều đó trong scala, có một số điểm quyết định mà tôi đang pussyfooting trên.Những khung công tác nào để sử dụng để khởi động dự án scala sản xuất đầu tiên của tôi?

  1. scala 2.7.7 hoặc 2.8 RC?
  2. JDBC qua querulous API này có sẵn sàng để sản xuất không?
  3. sbt vs maven. Tôi cảm thấy thoải mái với maven.
  4. Có một trình bao bọc thành ngữ scala cho HttpClient (hay tôi nên sử dụng nó giống như trong java)?

Tôi muốn nghe ý kiến ​​và kinh nghiệm của bạn khi bắt đầu với scala.

Trả lời

10
  1. Tôi sẽ sử dụng 2.8.0. Chỉ có quá nhiều tính năng hữu ích trong 2.8. Bên cạnh đó, 2.8 sẽ kết thúc phiên bản cuối cùng. Nếu bạn mới bắt đầu, tại sao không bắt đầu với điều đó? FWIW, tôi đã sử dụng 2.8.0 kể từ Beta1, trong nhiều công cụ và thư viện khác nhau mà tôi sử dụng hàng ngày. Trong khi đã có lỗi, họ đã không đủ để làm cho tôi rơi trở lại 2.7.7. YMMV, mặc dù.
  2. Điều này sẽ không làm cho quyết định của bạn dễ dàng hơn, nhưng có những khả năng khác để truy cập cơ sở dữ liệu. Ví dụ: tôi đã sử dụng SQueryL; Tôi thích nó. ORBroker là một tùy chọn khác.
  3. Nếu bạn cảm thấy thoải mái với Maven, hãy sử dụng nó, bằng mọi cách. Cá nhân tôi thích SBT hơn. Tôi có được toàn bộ sức mạnh của một ngôn ngữ lập trình thực sự, khi tôi cần thực hiện logic xây dựng đặc biệt. Cũng hữu ích, tôi không phải đối phó với các tệp cấu hình XML. (XML là tốt cho dữ liệu, nhưng nó là một định dạng crappy cho một tập tin cấu hình do con người chỉnh sửa.)
  4. Bạn có thể thử Databinder Dispatch. Xem this article để biết tổng quan tốt đẹp.
1
  1. Nếu bạn chỉ mới bắt đầu phát triển, Scala 2.8 GA có thể sẽ khả dụng khi bạn đi sản xuất. Ngay cả khi không, tôi sẽ chọn gói 2.8RC mới nhất thay vì gắn bó với 2.7.7. 2.8 không chỉ có một số tính năng tuyệt vời mà còn chứa rất nhiều lỗi 2.7.7.
  2. Hiện tại, không có quá nhiều ORM được sản xuất cho Scala. Tôi có lẽ sẽ chọn Lift Persistence, vì đội ngũ chuyên gia và cộng đồng thân thiện đằng sau Khung nâng. Nhưng nếu bạn không muốn mạo hiểm, bạn nên cân nhắc sử dụng ORMs Java đã được chứng minh cũ: Hibernate, JPA, iBatis (đã được đổi tên thành myBatis), v.v.
  3. Bạn nên thử SBT! Nó tương thích với POMs maven, do đó, di chuyển đến SBT không nên quá đau đớn cho bạn. Lợi ích từ việc sử dụng SBT:
    • Nó được thiết kế cho Scala, vì vậy bạn sẽ được thuyên giảm từ gánh nặng của việc duy trì vô số plugin cho Maven để làm cho nó làm việc với Scala luôn
    • Bạn sẽ có thể viết xây dựng các kịch bản trong Scala (đó là một trải nghiệm tuyệt vời so với XML)
    • SBT có tính năng sát thủ - continuous whatever (xây dựng, thử nghiệm, triển khai).SBT theo dõi mã của bạn, phát hiện khi nào mã của nó thay đổi và kích hoạt một hành động (kiểm tra, triển khai lại, v.v.).
Các vấn đề liên quan