이 "역방향"또는 "역사적"디버깅에 대해 조금 더 확장하는 것이 중요하다고 생각합니다. 나는 그 시스템의 복잡한 시스템과 행동을 이해하고 상태를 명시 적으로 만드는 "이벤트"를 재생하는 것이 절대적으로 중요하다고 생각합니다.
내가 표현하고자하는 것은 오늘날이 기술이 왜 그렇게 많이 적용되지 않았는지 또는 왜 관련 문제가 명확하게 논의되지 않는지 궁금해하는 데 혼자가 아니라는 것입니다.
여기서 두 가지 매우 중요한 개념을 강조하겠습니다.
1. 프로그래밍 시스템을 이해하려면 상태를 명시 적으로 만드는 것이 도움이됩니다
프로그래밍 시스템의 상태 시퀀스 (이벤트)를 더 잘 이해하려면 많은 도움이 될 수 있습니다.
다음은 문제를 해결하고 문제에 대한 해결책을 제안하거나 설계 한 소스입니다 (복잡한 시스템의 상태 처리).
-타르 비트를 벗어난 용지 : http://shaffner.us/cs/papers/tarpit.pdf
주요 아이디어 : 피하거나 격리하거나 상태를 명시 적으로 지정
-CQRS
http://www.cqrs.nu/
이것은 명령 쿼리 분리 및 이벤트 소싱이라는 두 가지 개념의 조합입니다. 다른 구현 (Java, C #, Scala)이 있습니다. 테이트 시퀀스의 재생과 도메인 모델의 진화는 여기서 중요한 부분입니다.
당신이 경우 정말 축소와 매우 광범위한 사진을 볼 이미 가진 것을 볼 수있는이 상태가 명시 적으로 만들기 때문에 이미 ((UN)이 의식적으로) FP에 매력을 함수형 프로그래밍 사람들의 "상승"! 그러나 그것은 하나의 포인트만을 다루고, 두 번째를 다루기 위해서는 기능적으로 반응하는 프로그래밍으로 "느슨하게"묘사 될 수있는 다른 개념이 필요합니다.
그렇다면 CQRS와 FRP를 실제로 사용하는 사람은 누구입니까? 나는 (구체적인 숫자가 없기 때문에 IMO) 실제로 많은 회사들이 그들이하는 일이이 용어를 가지고 있다는 것을 모른다는 것입니다. 어쩌면 당신은 약간의 구글을하고 CQRS를 사용하는 기업들로부터 소식을 듣고, 이미 성공 사례가 몇 가지 있습니다. : FRP 너무 나는 넷플릭스 줄 수있는 예제로 천천히 상승 http://techblog.netflix.com/2013/02/rxjava-netflix-api.html
단지를 기반으로 실제로 .NET 인 RX의 구현을 발표했다 (그러나이 자바 스크립트 구현도). 오늘날 사람들은 복잡한 시스템을 이해하고 더 나은 시스템을 만들기 위해 이러한 기술을 이미 사용하고 있습니다. 이것이 리버스 디버깅 기술을 사용하는 이유입니다.