You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Guard clause를 사용할 때는 가장 아래에 코드의 진짜 의도를 위치하고, 이 진짜 의도를 달성하기에 충족되지 않은 조건이 있을 때 함수를 빠르게 종료시켜 진짜 의도를 더 드러내고, 그렇지 않은 경우가 어떤 경우들이 있는지 더 의도를 드러낼 수 있습니다.
위의 예를 들면 할일이 존재할 경우 상태 코드를 200 OK로 응답을 주고 그렇지 않을 경우 404 Not found를 반환합니다. 이 코드의 진짜 의도는 주어진 할 일 아이디로 찾는 것이고, 그렇지 않을 경우에는 찾지 못했다는 응답을 주어야 합니다. 그래서 없는 경우 빠르게 종료하고, 진짜 의도는 아래에 위치시킬 경우 다음과 같습니다.
@GetMapping("/{taskId}")
publicTaskgetDetails(@PathVariable("taskId") LongtaskId, HttpServletResponseresponse) {
Optional<Task> task = taskService.getDetails(taskId);
// 할 일이 없는 경우if (task.isEmpty()) {
response.setStatus(HttpStatus.NOT_FOUND.value());
returnnull;
}
// 진짜 의도는 할 일을 찾아 할 일을 반환하는 것response.setStatus(HttpStatus.OK.value());
returntask.get();
}
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
문제
if
와else
가 함께 존재해서 함수의 진짜 의도가 무엇인지 판단하기 어렵다.예시
Guard clause를 사용할 때는 가장 아래에 코드의 진짜 의도를 위치하고, 이 진짜 의도를 달성하기에 충족되지 않은 조건이 있을 때 함수를 빠르게 종료시켜 진짜 의도를 더 드러내고, 그렇지 않은 경우가 어떤 경우들이 있는지 더 의도를 드러낼 수 있습니다.
위의 예를 들면 할일이 존재할 경우 상태 코드를
200 OK
로 응답을 주고 그렇지 않을 경우404 Not found
를 반환합니다. 이 코드의 진짜 의도는 주어진 할 일 아이디로 찾는 것이고, 그렇지 않을 경우에는 찾지 못했다는 응답을 주어야 합니다. 그래서 없는 경우 빠르게 종료하고, 진짜 의도는 아래에 위치시킬 경우 다음과 같습니다.따라서 Guard clause를 사용해서 진짜 의도를 더 드러낼 수 있습니다.
See also
Beta Was this translation helpful? Give feedback.
All reactions