1장 Go: 시작은 쉽지만 마스터하긴 어렵다
__1.1 고 언어의 개요
__1.2 단순하다고 쉬운 것은 아니다
__1.3 고 프로그래밍에서 저지르기 쉬운 100가지 실수
____1.3.1 버그
____1.3.2 과도한 복잡도
____1.3.3 낮은 가독성
____1.3.4 최적이 아니거나 관례에 어긋난 구성
____1.3.5 API 편의성 부족
____1.3.6 최적화되지 않은 코드
____1.3.7 생산성 부족
__1.4 요약
2장 코드와 프로젝트 구성
__2.1 [#1] 의도하지 않은 변수 가림을 조심하라
__2.2 [#2] 필요 이상으로 코드를 중첩하지 마라
__2.3 [#3] init 함수를 잘못 사용하지 마라
____2.3.1 개념
____2.3.2 init 함수를 사용해야 하는 경우
__2.4 [#4] 게터와 세터를 남용하지 마라
__2.5 [#5] 인터페이스 오염을 조심하라
____2.5.1 개념
____2.5.2 인터페이스를 사용해야 하는 경우
____2.5.3 인터페이스 오염
__2.6 [#6] 제공자 측에 인터페이스를 두지 마라
__2.7 [#7] 인터페이스를 리턴하지 마라
__2.8 [#8] any는 아무것도 알려주지 않는다
__2.9 [#9] 제네릭이 필요한 시점을 파악하라
____2.9.1 개념
____2.9.2 주요 사용 사례와 잘못 사용하는 경우
__2.10 [#10] 타입 임베딩을 제대로 하라
__2.11 [#11] 함수형 옵션 패턴을 사용하라
____2.11.1 Config 구조체
____2.11.2 빌더 패턴
____2.11.3 함수형 옵션 패턴
__2.12 [#12] 프로젝트를 제대로 구성하라
____2.12.1 프로젝트 구조
____2.12.2 패키지 구성
__2.13 [#13] 유틸리티 패키지 생성 관련 실수
__2.14 [#14] 패키지 이름 충돌 관련 실수
__2.15 [#15] 코드 문서화 관련 실수
__2.16 [#16] 린터를 활용하라
_
『Effective Java』에 상당하는 Go 책이다.
Go 개발자가 반드시 읽어야 할 책! 니라지 샤, Wayfair CEO
고 프로젝트 과정에서 가장 많이 저지르는 100가지 실수에 대해 적절한 예제와 실수를 해결하는 다양한 방법을 함께 제시했다. 흔히 저지르는 실수를 패턴화하여 익히는 것은 효율적인 방법이다. 여기에 구체적인 예제를 곁들이면 쉽고 빠르게 배울 수 있을 뿐만 아니라, 실수를 저지르는 상황을 기억했다가 나중에 좀더 효과적으로 피할 수 있다. 또한, 각 실수마다 최대한 실전 사례를 함께 제시하여 자세히 설명하므로, 실수가 어떻게 발생하는지 왜 놓치기 쉬운지를 근본적으로 이해하고, 고 언어를 더 깊은 수준에서 이해할 수 있다. 중요한 것은 실수로부터 배울 수 있는 우리의 역량이다. 이 책은 고 애플리케이션의 성능과 개발자의 역량을 함께 향상시킬 수 있는, 고 개발자를 위한 필독서다.
[다루는 내용]
1장 Go: 시작은 쉽지만 마스터하긴 어렵다 · 이 책에서 다룰 다양한 실수 유형 소개
2장 코드와 프로젝트 구성 · 관례를 따르면서 깔끔하게 코드를 구성하는 데 방해되는 실수
3장 데이터 타입 · 기본 데이터 타입과 슬라이스, 맵에 관련된 실수
4장 제어 구문 · 루프와 같은 제어 구문에서 흔히 저지르는 실수
5장 스트링 · 스트링 표현 원칙과 코드를 부정확하고 비효율적으로 만드는 실수
6장 함수와 메서드 · 함수/메서드에서 흔히 발생하는 문제(리시버 타입 선정, defer 버그 방지 등
7장 에러 관리 · 에러를 관례에 맞게 제대로 처리하는 방법
8장 동시성: 기본 개념 · 동시성 기본 개념(동시성의 빠르기, 동시성과 병렬성 차이, 워크로드 타입 등
9장 동시성: 응용 · 채널과 고루틴을 비롯한 동시성 기본 요소를 활용할 때 저지르는 실수
10장 표준 라이브러리 · HTTP, JSPN, time API 등에서 흔히 저지르는 실수
11장 테스팅 · 테스트와 벤치마크를 수행할 때 효과와 정확도를 떨어뜨리는 실수
12