원칙 프로그래밍 가이드 라인

PIE(Program Intently and Expressively)

의도를 표현해서 프로그래밍 해라.

코드는 컴파일러가 아닌 사람이 읽기 위한것이다. 그래서 어떻게 하면 다른사람이 잘 이해하게 직관적으로 코딩하자.

코드는 소프트웨어 동작을 정확하고 완벽하게 알기 위한 유일한 실마리다. 소프트웨어개발중에 수많은 문서가 작성되지만 문서들만으로 소프트웨어가 어떻게 동작하는지 관해 정확하게 알수없다. 개발과 코드 동기화가 깨지는 경우도 빈번하고 만들어지는 문서들이 아주 상세한 내용까지 존재하지 않기 때문에 결국엔 코드를 읽어서 코드로 상세기능을 파악해야 된다. 그래서 코드를 읽는 시간이 많이 일어나고 이해를 해야되는데 직관적인 코드를 작성해야 된다.

코드는 읽기 쉬운것이 최우선이다.

코드를 작성할때 ‘작성하기 쉬움’보다 ‘읽기 쉬움’을 중시하자 코드는 작성하는 시간보다 읽는 시간이 훨씬 많은 법이다. 내가 작성을 하지만 그뒤로 유지보수한 시간만큼 많이 읽힌다. 코드는 실행 효율(성능)보다 읽기 효율이 우선시 된다. 읽기 쉬우면 나중에 성능을 높히는것도 그만큼 쉽다. 남이 읽은수 없는 코드는 좋은코드가 아니다 신기술이 아무리 좋아도 다른사람이 읽기 어렵다면 사용하지 않는것이 좋다.

두더지 잡기식 개발은 피한다.

빨리 개발하라는 온갖 압력에 직면하는데 읽기 쉽고 오류가 없으며 품질이 좋은코드를 작성하려면 시간이걸린다. 단기적으로는 손실로 보이지만, 두더지 잡기식 개발이 되지 않으므로 장기적으로 반드시 이익을 가져다 준다.

주석을 작성한다.

주석 없이도 읽을 수 있을 법한 이해하기 쉬운 코드를 작성하는 것이 이상적이다. 다만 코드는 어디까지나 what과 how, 즉 ‘무엇을 하는지’와 ‘어떻게 하는지’밖에 표현하지 못한다. why, 즉 ‘어째서 그것을 하는지’를 표현할려면 주석을 사용할 필요가 있다. 코드라는 문서를 읽는 사람과의 의사소통에 사용하는 것이다.주석을 수단으로 사용하자.

문학적 프로그래밍

문학적 프로그래밍은 코드 자체를 문서화하는 기법이다. java doc, swagger

참조