개발자 99% 커뮤니티에서 수다 떨어요!
함수는 작을수록 좋다
함수는 한 가지만 해야한다
함수에도 스토리가 있다
2022.04.25 - 2022. 04. 27
3장
함수를 나눠야하는지 알 수 있는 신호
추상화 수준이 여러 개이다
내려가기 규칙 (to문): 코드를 내려가면서 읽을 때 이야기처럼 읽히지 않는다
switch 문
인수가 여러 개이다
flag 인수 (bool 타입)일 때
출력 인수
오류처리
객체 인자를 사용해서 함수 인수 개수를 줄일 수 있다
switch 문의 경우 추상 팩토리 패턴, 팩토리 메서드 패턴으로 처리하면 깔끔하다
함수에도 스토리가 있다. 함수 코드를 봤을 때 이야기가 엉터리라 생각되면 리팩토링을 고려할 때다. 등장인물 (인수)이 너무 많아도 좋지 않다. 러시아 소설 마냥 복잡한 이름도 피해야 한다. 함수의 맥락을 해치는 것은 과감하게 배제하고 미니멀을 추구하자.
인수 개수가 가변적인 함수 예시) String.format
Variadic Functions
C#에서는 params
키워드로 여러 인자를 받는다
구조적 프로그래밍
절차식 프로그래밍이라고도 불림. 하향식 설계를 추구하고 블록 단위로 프로그램 작성. 안티 goto문법 유파
구조적으로 조립해나가는 방식
DSL (domain specific language)
DSL 이 도메인 전문자 (Domain Expert) 의 입장에서 작성이 되려면 High-Level 언어로 작성이 되고, 이를 Code Generator를 통해서 일반 언어로 변환
내부 DSL vs 외부 DSL
Lisp, Ruby, Smalltalk vs Java, C#, C++