코드 프레젠테이션(code presentation)이란?
코드의 내용이나 논리 구조가 아닌 코드의 겉모습을 말한다.
본래 코드 프레젠테이션에는 문법적, 의미론적 의미는 없다. 또한 컴파일러는 프레젠테이션을 무시한다.
그런데 왜 필요한가? 중요한가?
프레젠테이션은 코드의 질에 상당한 영향을 미치기 때문에!!
프로그래머는 레이아웃을 기초해서 코드 안쪽에 있는 의미를 읽는다.
잘못된 포매팅은 코드를 따라가기 힘들게 만들 뿐만 아니라, 버그도 숨길 수 있기에 중요하다!
누가 읽을 것인지 알아야
소스코드에는 세 종류의 독자가 있다.
우리 자신
코드를 쓰고 난 다음에는 자기 자신이 바로 읽을 수 있어야 할 뿐만 아니라, 몇 년이 지난 후에 다시 보았을 때도 읽을 수 있어야 한다.
컴파일러
코드가 문법에 맞기만 하면 만족
다른 이들
가장 중요한 독자이지만, 가장 신경을 덜 쓰는 경우가 많다.
입장을 바뀔 수 있다고 생각하면서 나의 코드를 볼 사람에게 잘 대해야 한다.
소스 코드의 진짜 독자가 누군지 알자! 다른 프로그래머들이다. 그들을 위해서 코드를 작성하자!
좋은 프레젠테이션이란?
깔끔? 제어의 흐름이 어쩔 수 없이 복잡해진 경우, 레이아웃이 코드 읽기를 도와주도록 작성된 것?
일관성 있고
프로젝트 전체에 걸쳐서 일관성을 유지 하자.
들여쓰기 정책, 스타일, 소괄호/대괄호 위치
나에게 맞는 스타일을 일관성 있게 사용하자.
관례를 따르고
많이 사용되고 있는 스타일을 써야 거부감이 덜 든다.
간단명료한
설명이 필요 없이 간단하게~
중괄호 위치 정하기
K&R 중괄호 스타일: 코어엔진팀 스타일, 자바 코드에서 우세한 스타일..
exdented 중괄호 스타일: 내가 즐겨 쓰던 스타일
indented 중괄호 스타일: 보기 불편하다
그 밖의 중괄호 스타일
선택한 언어에서 일반적으로 사용되는 코드 레이아웃 스타일로는 어떤 것이 있는지 알아보고, 그 스타일 각각을 가지고 일하기에 익숙해지자! 또 좋은 점과 나쁜 점을 평가하자!
코드의 일반적인 거주지
소스 에디터
출판된 코드: 요점만 전달하기 위한 목적으로 제공
인쇄물
훌륭한 코딩 스타일 하나를 골라서 성실하게 사용하자
훌륭한 코딩스타일이 뭘까? 경쟁으로 만들어지는 코드? 경쟁은 유익한 것이기 때문에 더 좋은 코드를 작성하게 된다?
하우스 스타일
내부적인 코딩 스타일
인디안 힐
GNU
MISRA
아무아무 프로젝트
같은 프로젝트에 상충되는 여러 가지 스타일이 있으면 엉성하고 아마추어적으로 보인다
팀에 코딩 표준이 이미 있으면 그것을 사용하십시오.
무엇을 위한 표준인가?
개인에게 좋은 스타일이 반드시 팀 전체를 위한 최고의 스타일이 아니다! 팀의 코드를 통합하고, 팀의 공통 문제점을 예방하는 표준을 만들어내야 한다.
모든 사람들이 표준이 필요하다는 데에 동의하도록 하고, 쉽게 손에 넣을 수 있는 최종 산출물을 만들고, 팀이 현재 가지고 있는 가장 좋은 습관을 표준에 수록하고, 제한적으로 하지 말고, 정말 충분한 근거가 있다면 규칙이 깨지게 허용해라
처음 시작은 중괄호의 레이아웃과 들여쓰기 문자 수에 동의를 얻는 것에서 출발하면 된다!
간추림
프레젠테이션은 좋은 코드와 나쁜 코드를 구분하는 중요한 특성이다!
좋은 프로그래머
코드 레이아웃이 가독성에 얼마나 영향을 미치는지 알고, 가능한 한 명료한 코드를 작성하기 위해 노력한다
나쁜 프로그래머
개인적인 코딩 스타일에 일관성이 없습니다.
하우스스타일을 따라하다가 자기도 모르게 일관성이 없어지게 짜게 된다면 나쁜 프로그래머일까요?
'프로그래밍 > Code Craft' 카테고리의 다른 글
[1부 코드와 마주보기] Chapter6 사람은 실수를 하기 마련 (0) | 2017.10.27 |
---|---|
[1부 코드와 마주보기] Chapter5 가벼운 코멘트 (0) | 2017.10.26 |
[1부 코드와 마주보기] Chapter4 문서화 도구 (0) | 2017.09.27 |
[1부 코드와 마주보기] Chapter3 이름이 뭐길래 (0) | 2017.09.26 |
[1부 코드와 마주보기] Chapter1 방어하기 (0) | 2017.09.21 |
댓글