AndreyChechel/Explosuress: Closure-free C# Expressions
제프리맥길씨 사이버 스토킹하다가 만난 라이브러리인데, 로깅용으로 아주 쓸만해보인다.
기본적으로는 Expression의 람다식에 클로저로 캡쳐된 변수들을 미리 계산해 상수로 만들어 이쁘게 출력해볼수 있게 만들어주는 물건이고,
아래같이 활용하면 Validation 로직에서 변수간의 계산식과 당시 변수의 실제 값을 같이 보여줄수가 있게된다..!
여기에 [CallerArgumentExpression] 까지 끼얻어주면 이쁜 식과 이쁜 값을 동시에 보여줄수가 있게된다!!!
하지만 이것도 마냥 무료는 아닌게, 간단한 연산이 Expression Compile이라는 아주 무거운 동작에 의존해 처리되게 되었고
배치된 변수들을 모두 미리 계산하여야 하기때문에 연산과정이 실제 로직과 무관하게 이뤄지게된다.
false평가 이후의 코드는 연산자체가 이뤄지지 않아야 하나, 표현식에서 값을 보여줘야하기때문에 Explossuress 시점에서 연산이 발생한다.
연산식이 외부 함수등에 의존하는것이 많을수록 로직을 통제하기 어려워질수 있다.
댓글 0