Go 언어는 단순성, 가독성, 생산성을 원칙으로 삼고 있다.
Principles underlying Go itself
- Simplicity
- Readability
- Productivity
성능과 동시성은 중요한 속성이지만 단순성, 가독성 및 생산성만큼 중요하지는 않다.
Simplicity
단순성은 신뢰성의 전제 조건이다.
SW 디자인을 구성하는 방법에는 두 가지가 있다.
- 명백하게 결함이 없도록 간단하게 만드는 것
- 명백하게 결함이 없도록 너무 복잡하게 만드는 것
복잡성은 신뢰할 수 없는 소프트웨어에서 신뢰할 수 있는 소프트웨어를 만든다.
복잡성은 소프트웨어 프로젝트를 죽인다. 따라서 단순함이 Go의 가장 큰 목표이다.
어떤 프로그램을 작성하던지 간단하다는데 동의할 수 있어야 한다.
Readability
가독성은 유지 보수에 필수적이다.
프로그램은 사람들이 읽을 수 있도록 신경써야한다. 기계가 실행하는 데에만 신경 써야 하는 것은 부수적이다.
프로그래머에게 가장 중요한 기술은 아이디어를 효과적으로 전달하는 능력이다.
가독성은 프로그램이 수행하는 작업을 이해할 수 있는 핵심이다.
프로그램이 무엇을 하는지 이해할 수 없다면 어떻게 유지할 수 있겠는가?
Productivity
디자인은 오늘날 작동하고 영원히 변경될 수 있도록 코드를 배열하는 기술이다.
Go 개발자는 해당 언어에 내재 된 안정성 문제없이 동적 언어로 작업하는 개발자만큼 생산성을 느낄 수 있다.
개발자의 생산성 문제의 더 기본적인 것으로서 Go에서는 코드를 읽는 행위를 작성하는 행위보다 우선한다.
Go는 도구 및 사용자 지정을 통해 모든 코드가 특정 스타일로 포멧되도록 강제한다.
출처 : Practical Go: Real world advice for writing maintainable Go programs
'삽질의 현장 > - Go' 카테고리의 다른 글
Practical Go - API Design (0) | 2020.12.20 |
---|---|
Practical Go - Project Structure (0) | 2020.12.20 |
Practical Go - Package Design (0) | 2020.12.20 |
Practical Go - Comment (0) | 2020.12.20 |
Practical Go - Identifiers (0) | 2020.12.20 |