Good programmers ignore best practices...
- 프로그래밍의 핵심은 단순함을 유지하고 과도한 설계나 성급한 최적화를 피하는 것입니다. 💡
- 코드의 복잡성은 '인지 부하'로 이어지며, 이는 코드를 이해하고 작업하는 데 필요한 정신적 노력을 의미합니다. 🧠
- 상속 대신 조합(Composition)을 사용하여 복잡한 계층 구조를 피하고, 작고 명확한 구성 요소를 활용하여 정신적 부담을 줄입니다. 🧩
- 때로는 '반복하지 마라(DRY)' 원칙을 깨고 명시적이고 독립적인 코드를 작성하는 것이 가독성을 높이는 데 도움이 될 수 있습니다. 📝
- Rob Pike의 말처럼, '약간의 복사는 약간의 의존성보다 낫다'는 원칙은 불필요한 의존성보다 명확성을 우선시합니다. 🔗
- 소위 '모범 사례'들이 때로는 언어의 한계를 보완하기 위해 인위적인 인지 부하를 추가할 수 있으므로, 맹목적으로 따르기보다 비판적으로 접근해야 합니다. 🤔
- Kotlin과 같은 현대적인 언어의 명명된 매개변수나 기본 매개변수 기능을 활용하여 모호한 메서드 호출로 인한 인지 부하를 줄일 수 있습니다. 🛠️
- 매직 넘버나 모호한 상태 코드를 설명적인 상수나 문자열로 대체하여 코드의 즉각적인 이해도를 높여야 합니다. 🔢
- 깊게 중첩된 조건문을 조기 반환(early return)으로 평탄화하여 독자가 코드를 따라가는 데 필요한 정신적 추적을 줄입니다. ➡️
- 얕고 서로 참조가 많은 모듈 대신, 깊고 잘 캡슐화된 소수의 모듈을 사용하여 파일 간의 불필요한 이동을 줄이고 인지 부하를 낮춥니다. 📦
- 변수나 함수의 이름을 명확하고 설명적으로 지어 추가적인 주석이나 정신적 번역 없이도 코드를 쉽게 이해할 수 있도록 합니다. 🏷️
- 실제 문제가 없는 한 패턴, 계층 또는 추상화를 도입하려는 유혹에 저항하여 코드를 불필요하게 복잡하게 만들지 않아야 합니다. 🚫
- 궁극적으로 '지루하고' 명백한 코드를 작성하고, 영리함보다는 명확성을 선택하여 다음 개발자가 쉽게 이해하고 변경할 수 있도록 해야 합니다. ✨