클로져라 잘 이해 못하는 생키들 많을 테니 가짜 언어로 하나 급조해줌
이게 대략 오리지날 코드야
let location = header AND selectKeys(header, location-keys)
// location => NIL or {:k1 v1 :k2 v2} or {}
reason = validateLocation (location) // validateLocation = NIL or {<non-empty-key-value>}
when reason
throw "Invalid location ..."
let newReq = addIfNotNull(req, :x-current-location, location)
+ addIfNotNull(req, :avaliability, getAvaliablity(header))
requestResult = handler (newReq)
when location // i.e., not false or not NIL
updatePathAccumulator (req, location)
저런 식으로 자꾸 if나 when 남발하는 코든데... 와 저기에 버그하나 들어가니까 옆에 있는 두 생키가 달려들었는데 쩔쩔 매고 있더라구 ㅋㅋ
내가 지나가다 잠깐 보니, 바로 버그가 보여서 이리저리 해보라 하니까 내가 생각한 버그가 맞더라구. 저 위에 주석 달아 놨지만, location에 {}가 될 수 있는데 그걸 처리 안한 버그야. 와 근데 그걸 고치려고 보니까, if, when 남발 때문에 스파케티인거야. 그래서 이 생키들이 키보드를 못두드리더라구 ㅋㅋㅋㅋ
그래서 결국 내가 손대서 더이상 아무도 향상시킬 수 없는 수준이 되게 해놈.
자 답안 공개 전에 니들도 함 해봐라 어케 하면 워즈니악 할아버지가 와도 더이상 손댈 수 없게 할 지
워즈의할아버지는원래코딩못하시지아늘까
ㄴ 엌 ㅋㅋㅋ
와 근데 바꿀려고 생각해보니 유명한 프로그래머 생각나는 사람이 없네 ㅠㅠ
Codesaf.
코세는 이런건 잘 못해. 이건 사람이 이해하기 쉽게 바꾸는 최적화야
원본을 줘라
저게 원본보다 쉬울건디?
원본은 괄호가 다닥다닥 붙어 있는 뭐 그런거겠지
ㄴ 그렇지 괄호수가 라인수*20 정도라 보면 얼추 맞을듯