function showMenuItems() {
const menuItems = getMenuItems();
...
menuItems.forEach(item => {
console.log(item);
});
...
}
위 코드는 아래와 같이 분리될 수 있습니다.
function logMenuItems(menuItems) {
menuItems.forEach(item => {
console.log(item);
});
}
function showMenuItems() {
const menuItems = getMenuItems();
...
logMenuItems(menuItems);
...
}
const menuItems = getMenuItems();
menuItems.map(item => {
if (item.isSoldOut) {
...
}
})
const menuItems = getMenuItems();
const soldOutMenuItems = menuItems.filter(item => item.completed)
if (soldOutMenuItems) {
...
}
복잡한 계산이 필요하다면 함수로 분리하면 좋습니다.
빠른 실패를 하게끔 코드를 구현하면 depth를 줄일 수 있습니다. depth를 늘리는 것은 코드를 복잡하게 만드는 습관 중 하나이기 때문에 의식적으로 depth를 줄이는 것이 좋습니다.
if (성공로직 || isTrue) {
...
}
// 아래와 같이 빠른 실패를 하면 코드의 의도와 예외 조건이 명확해지고 나중에 분리하기도 쉽습니다.
if (실패로직) {
return
}
... // 성공 로직