Một ví dụ điển hình nếu bạn muốn minh họa tính đồng nhất của mã chức năng có thể sử dụng các bộ sưu tập và các hoạt động của chúng. Ví dụ, hãy xem xét một lớp Customer
và một phương thức tạo ra một danh sách sắp xếp tên khách hàng từ danh sách khách hàng.
Đây là cách triển khai Java:
class Customer
{
String name;
... // Other attributes.
}
List<String> sortedCustomerNames(List<Customer> customers)
{
List<String> names = new ArrayList<String>();
for (Customer customer : customers)
names.add(customer.name);
Collections.sort(names);
return names;
}
Phiên bản Scala:
class Customer(val name: String, /* ... other attributes */)
def sortedCustomerNames(customers: List[Customer]): List[String] =
customers.map(c => c.name).sorted
GHI CHÚ
Sự đồng nhất về các tổ hợp phím không phải lúc nào cũng là thước đo tốt về chất lượng mã và khả năng bảo trì.
Ngoài ra, nói chung tôi sẽ không khuyên chuyển từ Java sang Scala chỉ vì Scala mới hơn. Nếu hầu hết các thành viên trong nhóm quen thuộc với Java, nhóm sẽ làm việc hiệu quả hơn với Java so với Scala (hoặc bất kỳ ngôn ngữ lập trình nào khác mà họ không biết rõ).
Tôi đã học Scala trong thời gian rảnh khoảng hai năm nay và chỉ gần đây (sau khi tham gia một khóa học trực tuyến) tôi có cảm giác tôi có thể làm việc hiệu quả hơn ở Scala so với tôi ở Java. Trước khi đạt đến điểm này, tôi sẽ không cân nhắc sử dụng Scala cho sản xuất.