Community

요즘 else를 사용하지 말자는 주장들이 보인다. 들어줄 가치가 있나? Why Functional Programming Matters 페이퍼의 composition과 decomposition 내용

요즘 else를 사용하지 말자는 주장들이 보인다. 들어줄 가치가 있나? Why Functional Programming Matters 페이퍼의 composition과 decomposition 내용을 처음 읽었을 때 "이건 OO에서도 항상 하는건데 무슨 소리야?" 라고 생각했다. 하지만 금새 내가 합성과 분해를 쉽게 할 수 있었던 코드는 expression 기반 코드였다는 것을 깨달았다. FP에 대한 정의는 여러가지가 있겠지만 순수 FP 변절자인 에릭 마이어는 FP를 "a style of programming in which expressions are more important than using statements."라고 정의했는데 이 정의를 따르자면 내 경험이 Why FP 페이퍼의 설명과 연결된다. 내가 최근까지 사용해본 도구들은 side-effect가 없을 때 if { return } else { return } 을 expression으로 인식하지만 if { return } return 을 expression으로 인식하지 않는다.(그 몇 개월 사이에 변화가 있었는지는 모르겠다.) 따라서 전자는 expression 대상의 리팩터링 기능이 동작하기 때문에 단축키 몇번으로 코드 구조를 개선할 수 있지만 후자는 한땀한땀 코딩해야 리팩터 할 수 있다. 또 경험과 취향에 따라 차이가 있겠지만 그 의미가 expression으로 해석되는 코드라면 else가 있을 때가 없을 때보다 맥락 범위를 줄이기 쉽기 때문에 읽기 편하다. 문자 수가 적다고 읽기 쉬운 것은 아니다. 그래서 가능하면 else를 사용하지 않아야 좋은 코드라는 주장에 나는 동의하지 않는다. else가 문제가 아니라 else를 잘 못 사용하는 코더에게 문제가 있을지도 모르겠다.

알림

알림이 없습니다