Tôi làm việc trên một ứng dụng, cốt lõi trong số đó là rất bộ biểu mẫu web phức tạp. Nguồn gốc của sự phức tạp nàyquản lý các biểu mẫu web phức tạp
- quy mô, một số hình thức chứa khoảng 50 trang, trong đó lên đến 30 câu hỏi trên mỗi trang
- quy định phức tạp, ví dụ nếu câu trả lời người dùng "không" với câu hỏi 4, sau đó câu hỏi 5-15 không áp dụng, vì vậy cần được loại bỏ từ hình thức
Hiện nay chúng tôi sử dụng Angular Schema Form cho các hình thức, nhưng nó không cung cấp một cách thuyết phục để quản lý số lượng lớn các quy tắc phức tạp giữa các trường biểu mẫu.
Tôi không có nhiều kinh nghiệm với rules-based programming, nhưng dường như với tôi rằng điều này có thể cung cấp cách quản lý tốt hơn các quy tắc trong các trường biểu mẫu. Ví dụ, bằng cách sử dụng một phương pháp dựa trên quy tắc, chúng tôi có thể xác định các quy tắc liên quan đến từng trường biểu mẫu và công cụ quy tắc có thể sử dụng các quy tắc này để quyết định (các) trường nào sẽ hiển thị tiếp theo. Sử dụng cách tiếp cận hiện tại của chúng tôi, chúng tôi đạt được điều này với một lượng lớn JavaScript bắt buộc mà hầu như không thể kiểm tra và duy trì.
Nếu có ai có kinh nghiệm phát triển các biểu mẫu web phức tạp như vậy, tôi muốn được nghe về trải nghiệm của họ, ví dụ: công cụ/thư viện mà họ có thể đề xuất. Ngăn xếp hiện tại của chúng tôi dựa trên JDK (Java, Groovy, Grails) và JavaScript (Angular, Node) để các công cụ/thư viện/khung công tác chạy trên các nền tảng đó sẽ được quan tâm đặc biệt.
Bạn đã so sánh với việc sử dụng một cách chính thức chưa? – charlietfl
@charlietfl no, tôi biết rằng formly là một thư viện góc rất phổ biến khác để phát triển các biểu mẫu, nhưng không nhận thức được ưu và khuyết điểm so với Biểu mẫu góc –
Khó để đánh giá điều gì sẽ giúp đỡ mà không hiểu vấn đề chi tiết nhưng nó chắc chắn âm thanh với tôi như bạn có thể được hưởng lợi bằng cách có nhiều tuyến cho mỗi * "biểu mẫu" * trong đó mỗi tuyến đường là biểu mẫu của chính nó được xác định bởi cây quyết định và mỗi tuyến phụ liên kết với một dịch vụ được chia sẻ. Có thể muốn thử nghiệm một cách công khai góc cạnh và xem liệu nó có giúp bạn với nhiều tính năng hơn sẽ mang lại lợi ích cho bạn – charlietfl