이벤트 기반 구성 요소를 사용할 때 종종 유지 보수 단계에서 약간의 고통을 느낍니다.
실행 된 코드가 모두 분리되어 있기 때문에 런타임에 포함될 모든 코드 부분이 무엇인지 파악하기가 매우 어려울 수 있습니다.
이로 인해 누군가 새로운 이벤트 핸들러를 추가 할 때 미묘하고 디버그하기 어려운 문제가 발생할 수 있습니다.
주석에서 편집 : 응용 프로그램 전체 이벤트 버스 및 응용 프로그램의 다른 부분으로 비즈니스를 위임하는 처리기를 사용하는 등의 모범 사례가 있더라도 코드가 많기 때문에 코드를 읽기가 어려워지는 순간이 있습니다. 여러 장소에서 등록 된 핸들러 (특히 버스가있는 경우에 해당)
그런 다음 시퀀스 다이어그램이 복잡해지기 시작하고, 발생하는 상황을 파악하는 데 소요되는 시간이 길어지고 디버깅 세션이 지저분 해집니다 (핸들러에서 반복하는 동안 핸들러 관리자의 중단 점, 특히 비동기 핸들러 및 그 위에 일부 필터링 사용).
///////////////
예
서버에서 일부 데이터를 검색하는 서비스가 있습니다. 클라이언트에는 콜백을 사용하여이 서비스를 호출하는 기본 구성 요소가 있습니다. 구성 요소 사용자에게 확장 점을 제공하고 다른 구성 요소 간의 연결을 피하기 위해 쿼리가 전송되기 전에, 응답이 다시 올 때, 실패 할 때로 다른 이벤트가 발생합니다. 컴포넌트의 기본 동작을 제공하는 사전 등록 된 기본 핸들러 세트가 있습니다.
이제 구성 요소 사용자 (및 구성 요소 사용자도 있음)는 처리기 (조회, 로그, 데이터 분석, 데이터 필터링, 데이터 마사지, UI 고급 애니메이션, 여러 순차 쿼리 수정)를 수행하기 위해 처리기를 추가 할 수 있습니다. ) 따라서 일부 처리기는 다른 처리기 전후에 실행해야하며 응용 프로그램의 다양한 진입 점에서 등록됩니다.
잠시 후 12 개 이상의 핸들러가 등록 될 수 있으며이 작업을 수행하는 것은 지루하고 위험 할 수 있습니다.
상속을 사용하는 것이 완전히 혼란스러워지기 시작했기 때문에이 디자인이 등장했습니다. 이벤트 시스템은 합성물이 무엇인지 아직 모르는 일종의 구성으로 사용됩니다.
예제 끝
//////////////
그래서 다른 사람들이 어떻게 이런 종류의 코드를 다루는 지 궁금합니다. 읽고 쓸 때.
큰 어려움없이 그러한 코드를 작성하고 유지할 수있는 방법이나 도구가 있습니까?