프로그래밍을 배우기 시작하고 첫 번째... 는 아니고 많았던 의구심 중 하나입니다.
왜 우리는 함수를 사용하는가
main 함수에 10000줄에 다르는 모든 로직을 넣고 실행해도 코드는 돌아가지만
한 달 뒤에 몇 줄의 코드를 수정하려고 할 때 어디에 어떤 코드가 있는지 찾는 건 끔찍합니다...
함수는 여기서 등장합니다. 함수는 기능을 구분합니다.
정말 쉽게 생각해서 100줄의 코드당 하나의 함수로 치환한다고 생각합시다.
그럼 우리가 봐야할 코드는 100개의 함수 이름과 그 안의 로직 100줄로 줄어듭니다.
그렇다고 무턱대고 100줄씩 잡을 수는 없고 어떻게 함수를 나눌 수 있을까요?
기능 별로 나누면 됩니다. 최대한 작게.
그리고 알아보기 쉽게 이름을 붙입니다.
Account getAccount(int AccountId)
boolean isExistedAccountInWinnerAccount(Account account, List<WinnerAccount> winnerAccount)
void sendGiftToAccount(Gift gift, Account account)
이 함수들은 각 추상화 정도는 다르지만 각자 목적을 가지고 있습니다.
뿐만 아니라 함수를 잘 설계하면, 함수 이름의 나열이 명세서가 됩니다.
"계정을 얻고 당첨자 계정에 포함되어 있다면 계정에 선물을 지급하라 "
함수의 입출력이 명확하게 나타나야 합니다.
의미없는 입력과 출력은 코드를 다시 읽게 만듭니다.
위의 코드에서 적절한 입출력으로 변경해봅시다.
Account getAccount(int AccountId)
WinnerAccount.isExistedAccountInWinnerAccount(Account account)
Account.sendGiftToAccount(Gift gift)
의미없는 입력이 사라지고 기능이 명확해 졌습니다.
'개발' 카테고리의 다른 글
Clean Code 2장. 의미 있는 이름 (0) | 2024.06.11 |
---|---|
Clean Code 1장. 깨끗한 코드 (0) | 2024.06.10 |
Clean Code (0) | 2024.06.10 |