코드

가독성 높은 코드를 작성하기 위한 몇 가지 팁 from '코드 작성 가이드'

네이밍에 사용할 단어를 선택할 때 의미가 제한적인 단어를 사용하면 오해의 소지를 줄일 수 있습니다. 예를 들어 값의 한계를 나타내는 limit이라는 단어는 그것이 상한선인지 하한선인지 모호합니다. 그보다는 max나 min을 사용해야 어느 쪽의 한계인지가 더 명확합니다. (2.3 단어 선택)

직관적으로 이해하기 어려운 코드가 있다면 비형식 주석으로 보완해서 가독성을 크게 향상시킬 수 있습니다. 오해의 소지가 있는 코드에는 주의 사항을 추가하고, 충분히 생각해야 이해할 수 있는 코드에는 이해를 돕는 설명을 추가하는 것이 좋습니다. 특히, 방치해 두면 누군가가 잘못된 방식으로 리팩터링할 여지가 있는 코드에는 반드시 주석으로 주의 사항을 알려야 합니다. (3.3 비형식 주석)

객체가 취할 수 있는 상태의 수가 두 개 이하이고, 그 상태를 전환하는 함수가 한 개인 경우, 가능하면 함수가 멱등성(idempotent)을 지니도록 만드는 것이 좋습니다. 멱등성이란 한 번 실행한 결과와 여러 번 실행한 결과가 동일하다는 개념입니다. (4.3 상태 전이의 설계)

함수가 여러 책임을 지게 되면 함수의 동작을 추상적으로 이해하기가 어려워집니다. 또한 함수의 재사용이 어려워지고 코드 복제의 원인이 되는 등 설계에 악영향을 끼칠 수도 있습니다. 하나의 함수가 지는 책임은 오직 하나이어야 하며, 이를 위해서는 함수를 적절히 분할해야 합니다. (5.1 함수의 책임)

추상화는 가독성을 향상시키는 효과적인 수단 중 하나이지만, 동시에 암묵적 의존 관계의 원인이 되기도 합니다. 따라서 추상화할 때는 어떤 목적으로 추상화할 것인지를 먼저 생각해봐야 합니다. (6.5 의존의 명시성)

용어

멱등성

동일한 연산을 여러 번 수행해도 결과가 달라지지 않는 성질

아키텍쳐

클린아키텍쳐