롭파이크의 룰 5개
Rob Pike의 5가지 프로그래밍 규칙
규칙 1. 프로그램이 어디에서 시간을 보낼지 알 수 없습니다. 병목 현상은 예상치 못한 곳에서 발생하므로 병목 현상이 있는 곳이 어디인지 입증할 때까지 다시 추측하거나 속도를 높이려고 하지 마십시오.
규칙 2. 측정. 측정을 완료할 때까지 속도를 조정하지 마세요. 코드의 한 부분이 나머지 부분을 압도하지 않는 한 속도를 조정하지 마세요.
규칙 3. Fancy한 알고리즘은 n이 작을 때 느리고 n은 일반적으로 작습니다. Fancy한 알고리즘에는 큰 상수가 있습니다. n이 자주 커지는 경우가 많다는 사실을 알기 전까지는 너무 공상하지 마세요.
(n이 커지더라도 규칙 2를 먼저 사용하십시오.)
규칙 4. 화려한 알고리즘은 단순한 알고리즘보다 버그가 많고 구현하기가 훨씬 어렵습니다. 간단한 알고리즘과 간단한 데이터 구조를 사용하세요.
규칙 5. 데이터가 지배적입니다. 올바른 데이터 구조를 선택하고 잘 구성했다면 알고리즘은 거의 항상 자명할 것입니다. 알고리즘이 아닌 데이터 구조가 프로그래밍의 핵심입니다.
Pike의 규칙 1과 2는 Tony Hoare의 유명한 격언인 "성급한 최적화는 모든 악의 근원입니다."를 다시 설명합니다.
Ken Thompson은 Pike의 규칙 3과 4를 "의심스러운 경우 무차별 대입을 사용하십시오"라고 다시 표현했습니다.
규칙 3과 4는 KISS 디자인 철학의 예입니다.
규칙 5는 이전에 Fred Brooks가 The Mythical Man-Month에서 언급한 바 있습니다.
규칙 5는 종종 "smart objects를 사용하는 어리석은 코드 작성"으로 축약됩니다.