Khi sử dụng một thành phần dựa trên sự kiện tôi thường cảm thấy đau ở giai đoạn bảo trì.
Vì mã thực thi được phân chia xung quanh nên có thể khá khó để tìm ra phần nào sẽ là phần mã sẽ tham gia vào thời gian chạy.
Điều này có thể dẫn đến các vấn đề tinh vi và khó gỡ lỗi khi ai đó thêm một số trình xử lý sự kiện mới.
Chỉnh sửa từ nhận xét: Ngay cả với một số thực tiễn tốt trên tàu, như có một xe buýt sự kiện rộng ứng dụng và người xử lý ủy thác kinh doanh cho phần khác của ứng dụng, có một thời điểm mã bắt đầu trở nên khó đọc vì có rất nhiều xử lý đã đăng ký từ nhiều nơi khác nhau (đặc biệt đúng khi có xe buýt).
Sau đó, sơ đồ trình tự bắt đầu xem xét phức tạp, dành thời gian để tìm hiểu những gì đang xảy ra và phiên gỡ lỗi trở nên lộn xộn (điểm dừng trên trình quản lý trình xử lý trong khi lặp trên trình xử lý, đặc biệt vui mừng với trình xử lý async và một số bộ lọc trên đầu trang).
//////////////
Ví dụ
Tôi có một dịch vụ đang lấy một số dữ liệu trên máy chủ. Trên máy khách, chúng tôi có một thành phần cơ bản đang gọi dịch vụ này bằng cách gọi lại. Để cung cấp điểm mở rộng cho người dùng thành phần và để tránh ghép nối giữa các thành phần khác nhau, chúng tôi sẽ thực hiện một số sự kiện: một sự kiện trước khi truy vấn được gửi, một khi câu trả lời trở lại và một sự kiện khác trong trường hợp thất bại. Chúng tôi có một bộ trình xử lý cơ bản được đăng ký trước, cung cấp hành vi mặc định của thành phần.
Bây giờ người dùng của thành phần (và chúng tôi cũng là người dùng của thành phần) có thể thêm một số trình xử lý để thực hiện một số thay đổi về hành vi (sửa đổi truy vấn, nhật ký, phân tích dữ liệu, lọc dữ liệu, tạo khối dữ liệu, hoạt hình ưa thích UI, chuỗi nhiều truy vấn tuần tự , bất cứ điều gì). Vì vậy, một số trình xử lý phải được thực thi trước / sau một số trình xử lý khác và chúng được đăng ký từ rất nhiều điểm nhập khác nhau trong ứng dụng.
Sau một thời gian, có thể xảy ra việc một tá hoặc nhiều trình xử lý được đăng ký và làm việc với điều đó có thể tẻ nhạt và nguy hiểm.
Thiết kế này nổi lên vì sử dụng sự kế thừa đã bắt đầu là một mớ hỗn độn. Hệ thống sự kiện được sử dụng tại một loại sáng tác mà bạn chưa biết những gì sẽ là vật liệu tổng hợp của bạn.
Kết thúc ví dụ
//////////////
Vì vậy, tôi tự hỏi làm thế nào những người khác đang giải quyết loại mã này. Cả khi viết và đọc nó.
Bạn có bất kỳ phương pháp hoặc công cụ nào cho phép bạn viết và duy trì mã như vậy mà không phải chịu nhiều đau đớn không?