[실용주의 프로그래머] 코드 생성기 |
-
코드를 작성하는 코드를 작성하라.
-
코드 생성기에는 두 가지 유형이 있다.
수동적 코드 생성기는 결과를 내기 위해 한 번만 실행된다.
능동적 코드 생성기는 코드 생성이 필요할 때마다 작동한다. 이는 종종 어떤 형태의 스크립트나 컨트롤 파일을 읽어서 결과물을 만들어 낸다.
수동적 코드 생성기
-
수동적 코드 생성기는 기본적으로 몇 개의 입력에서 주어진 출력을 생성하는 매개 변수화된 템플릿이다.
-
수동적 코드 생성기로는 아래와 같은 것을 할 수 있다.
템플릿, 소스코드 제어 지시자, 지적재산권 문구, 기본적으로 들어가는 주석 생성.
프로그래밍 언어간 일회용 변환 수행
런타임에 계산하기엔 비용이 많이 드는 참조 테이블과 여타 자원을 생성.
능동적 코드 생성기
-
수동적 코드 생성기는 단지 편하려고 사용하는 반면, 능동적 코드 생성기는 DRY 원칙을 따르고 싶다면 필수적으로 써야 한다.
어떤 지식을 단 하나의 형태로만 만들어놓고 앱이 필요로 하는 온갖 형식으로 변환할 수 있다.
(ex) 데이터베이스 스키마가 있으면 이 녀석으로 저수준 구조체들을 자동 생성하여, 지식을 한 장소(스키마 정의)에서만 관리하는 형태로 한다.)
-
서로 다른 프로그래밍 언어를 사용하는 경우에도 사용할 수 있다.
서로의 의사소통을 위해 데이터 구조, 메시지 형식, 파일 이름 등등의 모든 코드 기반이 공통으로 가져야 하는 정보가 있어야 한다.
이 정보를 중복시키지 말고 코드 생성기를 사용하면 된다.
코드 생성기가 꼭 복잡할 필요는 없다.
-
보통 가장 복잡한 부분은 입력 파일을 분석하는 일을 하는 파서다.
입력 형식을 단순하게 만들면, 코드 생성기도 단순해진다.
코드 생성기가 꼭 코드를 생성해야할 필요는 없다.
-
HTML, XML, Plain text 등등 원하는 어떤 결과물을 얻고자 할 때에도 코드 생성기를 쓸 수 있다.
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[실용주의 프로그래머] 죽은 프로그램은 거짓말을 하지 않는다 (0) | 2018.10.25 |
---|---|
[실용주의 프로그래머] 계약에 의한 설계 (0) | 2018.10.24 |
[실용주의 프로그래머] 텍스트 처리 (0) | 2018.10.22 |
[실용주의 프로그래머] 디버깅 (0) | 2018.10.21 |
[실용주의 프로그래머] 소스코드 관리 (0) | 2018.10.20 |
댓글