일반
<aside> 💡
관례보다 구조를 사용하라
</aside>
<aside> 💡 조건을 캡슐화하라
</aside>
→ 조건 의도를 분명히 밝히는 함수로 표현하라
//좋은 예
if (shouldBeDeleted(timer))
//좋지 않은 예
if (tiemrhasExpired() && !timer.isRecurrent())
<aside> 💡
경계 조건을 캡슐화하라
</aside>
if (level + 1 < tags.legnth)
{
parts = new Parse(body, tags, level + 1, offset + endTag);
body = null;
}
→ level + 1이 두 번 나온다. 이런 경계 조건은 변수로 캡슐화하는 편이 좋다
int nextLevel = level + 1;
if (nextLevel < tags.length)
{
parts = new Parse(body, tags, nextLevel, offset + endTag);
body = null;
}