Tôi đã xem xét các khung công tác web như Rails, Grails, v.v. Tôi đã từng làm các ứng dụng trong Spring Framework với Hibernate ... và tôi muốn một cái gì đó hiệu quả hơn.Nền tảng web nào phù hợp với tôi?
Một trong những điều tôi nhận ra là trong khi một số điều trong Grails là gợi cảm, có một số vấn đề nghiêm trọng với nó. Bộ điều khiển của Grails:
1) được triển khai hết sức. Họ dường như không thể mở rộng từ các lớp siêu trong thời gian chạy. Tôi đã thử điều này để thêm các hành động cơ bản và các phương thức trợ giúp, và điều này dường như làm cho grails nổ tung.
2) dựa trên mô hình tham số yêu cầu lỗi thời (thay vì đối tượng sao lưu biểu mẫu, đẹp hơn nhiều).
3) khó kiểm tra. Các đối tượng lệnh được xử lý hoàn toàn khác nhau ... và thực sự nó khó khăn hơn để viết thử nghiệm hơn là viết mã bộ điều khiển.
4) Các đối tượng lệnh hoạt động hoàn toàn khác nhau. Chúng được xác nhận trước và bị ràng buộc, gây ra nhiều mâu thuẫn so với mô hình tham số cơ bản.
5) Các đối tượng lệnh không thể sử dụng lại được, và đó là một cơn đau ở phía sau để sử dụng lại hầu hết nội dung từ các lớp miền, như các ràng buộc và các trường. Đây là TRIVIAL để làm trong Spring cơ bản. Tại sao địa ngục lại không tầm thường để làm ở Grails?
6) Giàn giáo được tạo ra là crap thuần túy. Nó không tổng quát các chèn và cập nhật ... và nó thực sự sao chép/dán một đống mã trong hai khung nhìn: create.gsp và edit.gsp. Các quan điểm mình là đống khổng lồ của doggie do-do. Điều này được thêm phức tạp bởi thực tế là nó sử dụng các thông số cấp thấp và không phải các đối tượng.
Kiểm tra tích hợp chậm hơn 30 lần so với kiểm tra tích hợp Spring. Thật là kinh tởm.
Một số thử nghiệm giả mạo khó viết và không được đảm bảo hoạt động khi được triển khai, tôi nghĩ rằng nó không khuyến khích các chu kỳ kiểm tra nhanh, tdd.
Hầu hết mọi thứ dường như làm hỏng các grails khi nó đang chạy, như thêm taglib hoặc bất kỳ thứ gì thực sự. Vấn đề khởi động lại máy chủ không được giải quyết chút nào.
Tôi bắt đầu nghĩ rằng sẽ đi với Spring/Hibernate/Java là cách duy nhất để thực hiện. Trong khi có một chi phí khá lớn khi khởi động, tôi biết nó sẽ dần dần suôn sẻ.
Tôi không thể sử dụng ngôn ngữ như Scala ... vì thành ngữ, nó không tương thích với Hibernate.
Ứng dụng này cũng không phải là giao diện người dùng đang chạy trên cơ sở dữ liệu. Nó có một số trong đó, nhưng nó sẽ không phải là một slouch. Tôi sợ chết vì Grails bây giờ vì nó nằm trong lớp Controller.
Đề xuất về những gì tôi có thể làm?
"Tôi không thể sử dụng ngôn ngữ như Scala ... vì thành ngữ, nó không tương thích với Hibernate." - thú vị, bạn sẽ xây dựng? –
Về cơ bản, vì có rất nhiều phương thức spring/hibernate lấy hoặc trả về đối tượng, bạn phải thực hiện rất nhiều asInstanceOf [Bleh] trong mã của bạn. Ngoài ra còn có một sự không phù hợp giữa bộ sưu tập scala và bộ sưu tập java, vì vậy bạn cần phải thêm một số sưng lên thêm để chuyển đổi chúng. Ngoài ra còn có một hiệu suất nó. Khi sử dụng chú thích, scala cần sử dụng Array (...) xung quanh mọi tham số vì nó không có ngoại lệ một phần tử được tích hợp trong systax ... điều này làm cho một số thứ trở nên cồng kềnh hơn một chút. – egervari
tại sao sử dụng instanceof? Tại sao không thêm thông tin về loại đối tượng? –