2011-08-22 21 views
6

Tôi có một số kinh nghiệm với scala. Tôi muốn giới thiệu nó vào dự án mới với 10 thành viên. Nhưng mặc dù tất cả sự biểu cảm của scala, tôi rất không chắc chắn về cách đơn giản mã có thể được duy trì và chuyển giao cho các thành viên trong nhóm mới. Tại thời điểm này tôi đã nghiên cứu chỉ có một dự án lớn trên một scala http://code.google.com/p/factorie/ và một số scala DSL (apache lạc đà). Vì vậy, câu hỏi của tôi là bao nhiêu scala duy trì/hỗ trợ so với java, python và groovy cho đội ngũ các nhà phát triển cấp trung?Mã scala có thể duy trì được không?

+1

Có lẽ sẽ nhận được một số sự chú ý trên Programmers.SE, nhưng không phải ở đây. –

Trả lời

11

Nói chung: khả năng bảo trì của codebase phụ thuộc vào (đến tên một vài)

  1. Ý chí của các nhà phát triển để thiết kế cho khả năng bảo trì
  2. Các kỹ năng của các nhà phát triển để thực hiện ý định của họ
  3. Mức độ và độ chính xác của tài liệu (độ chính xác liên quan đến cách tài liệu hướng dẫn chân thực hệ thống thực tế không liên quan đến chi tiết tài liệu)
  4. Kỹ năng của nhà phát triển chăm sóc bảo trì

Bạn có thể tạo một mớ hỗn độn bằng bất kỳ ngôn ngữ nào có sẵn. Có thể cho rằng bạn có thể tạo ra một dự án sạch sẽ và có thể duy trì ở bất kỳ kích thước nào bằng cách sử dụng bất kỳ ngôn ngữ lập trình nào được thiết kế để sử dụng cho sản xuất.

Điều đó có nghĩa là - scala không được ít bảo trì hơn java, python hoặc groovy. Kết quả của dự án đầu tiên có thể ít được bảo trì hơn.

6

Câu trả lời ngắn: Có

Câu trả lời dài: So với Java, rất nhiều.

Đặc điểm, kiểu chữ, kiểu mẫu, loại cao cấp, đóng cửa, vv tất cả âm mưu loại bỏ boilerplate và giúp bạn thực thi nguyên tắc DRY dễ dàng hơn. Codebase của bạn sẽ có kích thước khoảng 1/3, và dễ dàng hơn nhiều khi cô lập các abstractions chính thay vì sao chép logic.

Các khuôn khổ kiểm tra độc đáo cũng giúp dễ dàng hơn trong việc giữ một bộ thử nghiệm hiệu quả tại chỗ.

Tất nhiên ... Tất cả điều này xuất phát sau điểm của Aleksi về ý chí/kỹ năng của các nhà phát triển cá nhân có liên quan. Nếu nhóm không chủ động hướng tới khả năng bảo trì, ngôn ngữ duy trì nhất trên thế giới sẽ không giúp bạn!

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