CẬP NHẬT: Tapestry 5.2 đã hết, vì vậy nó không bị bỏ rơi như trước đây. Kinh nghiệm của tôi là với Tapestry 4, không phải 5, vì vậy số dặm của bạn có thể thay đổi. Quan điểm của tôi về Tấm thảm đã thay đổi trong những năm qua; Tôi đã sửa đổi bài đăng này để phản ánh nó.
Tôi không còn có thể giới thiệu Tapestry như trước đây nữa. Tapestry 5 dường như là một cải tiến đáng kể, nhưng vấn đề chính của tôi với Tapestry không phải với bản thân nền tảng; nó với những người đứng sau nó.
Trong lịch sử, mọi bản cập nhật phiên bản lớn của Tapestry đều phá vỡ khả năng tương thích ngược với định kiến cực đoan, nhiều hơn những gì người ta có thể mong đợi. Điều này dường như là do sự kết hợp của các kỹ thuật mã hóa hoặc công nghệ mới đòi hỏi phải viết lại nhiều.
Howard Lewis Ship (tác giả chính của Tapestry) chắc chắn là một nhà phát triển xuất sắc, nhưng tôi không thể nói rằng tôi quan tâm đến việc quản lý dự án Tapestry của anh ấy. Việc phát triển Tapestry 5 bắt đầu gần như ngay lập tức sau khi Tapestry 4 xuất xưởng. Từ những gì tôi có thể nói, Ship đã dành rất nhiều tâm huyết cho việc đó, để lại Tapestry 4 cho những người đóng góp khác, những người mà tôi cảm thấy gần như không có khả năng như Ship. Sau khi thực hiện chuyển đổi đau đớn từ Tapestry 3 sang Tapestry 4, tôi cảm thấy rằng mình đã bị bỏ rơi gần như ngay lập tức.
Tất nhiên, với việc phát hành Tapestry 5, Tapestry 4 đã trở thành một sản phẩm kế thừa. Tôi sẽ không gặp vấn đề với điều này nếu đường dẫn nâng cấp không quá tàn bạo nữa . Vì vậy, bây giờ nhóm phát triển của chúng tôi đang ở một vị trí khá bất khả thi: Chúng tôi có thể tiếp tục sử dụng một nền tảng web đã bị bỏ rơi về cơ bản (Tapestry 4), thực hiện nâng cấp liên tục lên Tapestry 5 hoặc từ bỏ hoàn toàn Tapestry và viết lại ứng dụng của mình bằng một nền tảng khác. Không có lựa chọn nào trong số này là rất hấp dẫn.
Tấm thảm 5 được cho là được viết để giảm khả năng bị hỏng cập nhật từ thời điểm này trở đi. Một ví dụ điển hình là trong các lớp trang: trong các hóa thân trước đây, các lớp trang là con số của một lớp cơ sở do Tapestry cung cấp; các thay đổi API không tương thích trong lớp này là nguyên nhân của một số lượng lớn các vấn đề tương thích ngược. Trong Tapestry 5, các trang là POJO được tăng cường trong thời gian chạy với "bụi tiên thuật Tapestry" thông qua chú thích. Vì vậy, miễn là hợp đồng cho các chú thích được duy trì, các thay đổi đối với Tấm thảm sẽ không ảnh hưởng đến các lớp trang của bạn.
Nếu điều này là đúng, thì việc viết một ứng dụng mới bằng Tapestry 5 có thể thành công. Nhưng cá nhân, tôi không cảm thấy muốn đặt tay lên đầu đốt một lần nữa.