의도를 밝히고 구현을 숨김

코드를 작성할 때 INTENT(무엇이 일어나고 있는지)와 IMPLEMENTATION(작동 방식)을 구분하는 것이 중요합니다.

❌ 아래 예에서 의도는 구현과 혼합되어 있습니다.

users
  .filter(user -> user.registrationDate.isBefore(dayjs().minus('years', 1)) && user.hasPurchases())
  .filter(user -> authenticationService.isAuthenticated(user));


이 코드가 수행하는 작업을 이해하려면 뇌가 의도와 구현을 구분해야 합니다. 신중한 생각에 5-10초를 할애해야 합니다. 제한적이고 귀중한 두뇌 연료를 소모합니다. 그리고 그것은 단지 하나의 방법일 뿐입니다.

✅ 이제 코드를 개선해 봅시다. 인텐트는 보이는 상태로 두고 구현은 숨깁니다.

users
  .filter(isLoyal)
  .filter(isAuthenticated);


코드가 무엇을 하는지 즉시 알 수 있습니다. 코드는 구현 세부 사항으로 오염되지 않습니다. 세부 사항은 숨겨져 있습니다. 꼭 필요한 정보만 남기고 노이즈를 제거하는 것을 추상화라고 합니다. 잘 추상화된 코드는 스캔하기 쉽습니다. 제대로 추상화되지 않은 코드에는 많은 신중한 생각과 주의가 필요합니다.

🧠 기억하세요: 좋은 코드는 의도를 드러내지만 필요할 때까지 구현 세부 사항을 숨깁니다. 본질을 가시화하십시오. 나머지는 숨깁니다.



🦄

좋은 웹페이지 즐겨찾기