최근 들어 알맹이를 비워두는 식으로 if-else문을 짜기 시작했다.

무슨 뜻이고 하니.. 요런 느낌이다

function toggle(item) {
    const isChecked = Boolean(item.checked); // simplified
    item.checked = (isChecked == false);

    if (isChecked) { // ON-> off
        // do nothing

    } else { // off-> ON
        renderInfo(item);
    }
}

탑다운으로 내려오며 필터되는(=if (isValid == false) return false;) 구조가 아니라면..
가능하면 if-else문을 다 그려놓고,
필요없는 쪽의 알맹이는 그냥 비워놓고 있다.
요게 장점이 있다.

1. 조건 만들기 편하다 🤯

조건은 가능한 true로 만들라는 이야기가 있는데
true에 해당하는 조건으로 만드는건 생각보다 번거로울 때가 있다.
특히 not이 들어가는 조건이 그런데..
그냥 생각하기 편하게 조건을 만들고, 로직은 else쪽에 기술하면 된다.

2. 의도가 명시적으로 보인다 🧐

1에 연결되는 이야기인데.. 다른 사람이 볼 때 의도가 쉽게 보인다.
우선 !이나 == false를 붙이는 것 보다 훨씬 잘 보이고
무엇보다.. 아무것도 하지 않음을 명시적으로 보여주는 것이다.
else가 없을 경우 이 부분이 암시적이 되고,
보는 사람은 한 번 더 생각해야 한다.

3. true와 false를 같은 레벨로 본다 🙂🙃

요건 솔직히 잘 전달하기 어려운데..;;
if문은 true를 실행하기 위한 일종의 예외 처리가 아니라
true와 false 둘로 나뉘는 분기문이라고 생각하는게 중요하다고 생각한다.
이를 의식aware하기 위한 일종의 의식ritual 같은 거라고 생각한다. (의도치 않은 말장난..;)

물론.. 예외 처리로서의 if를 의식해서 너무 사용하지 않으면
반대로 지나친 추상화가 될 수 있으니 주의해야 하겠지만..

이런 생각을 갖고 있습니다! (어색;;)