목록전체 글 (103)
정글에서 온 개발자
Go 탄생신화에 따르면 Go는 45분의 빌드 타임 동안에 잉태되었다고 한다.C, C++의 방식/* 긴 길이의 저작권과 라이센스 알림 */#ifndef _SYS_STAT_H_#define _SYS_STAT_H_/* 타입과 다른 정의들 */#endifc는 이렇게 guard 하는 ANSI C 방식이 널리 퍼져있었다. 이 방법은 의존성 파일을 중복 임포트하지 않기 위한 것이지만, 이 guard를 읽기 위해 여러번의 의미 없는 i/o가 일어났다.아티클에서는 Unix의 ps 명령어가 #include 를 37번 사용하는 것을 발견했고, 이는 의미없는 36번의 파일 I/O가 일어나는 것을 의미한다.이 문제 해결을 위해 Plan 9이라는 라이브러리의 디자이너는 다른 방법을 사용했다. 모든 헤더파일에서 #include ..
해결하고자 하는 문제수십분, 수시간이 걸리는 빌드 -> 설명동일한 내용의 표현 방법이 프로그래머마다 달라서 생기는 가독성 저하 -> gofmt라는 자동 포맷팅 툴 제공자동화 툴 작성이 어려움 -> net/http, os/exec, sync 등 강력한 패키지 제공높은 비용이 드는 버전 관리 및 버전 변경멀티 코어 프로세서, 네트워크 시스템, 대규모 계산 클러스터 및 웹 프로그래밍 모델에서 개발할 때 발생하는 문제 -> 고루틴과 채널 이를 해결하기 위한 목표동적 타이핑 언어의 특징인 쉬운 프로그래밍정적 타이핑 언어가 가진 효율성과 타입 안정성-> 타입추론 키워드 := 를 이용하여 동적 타이핑의 쉬운 장점을 가져갔고, 컴파일 타임에 타입 검사를 해 오류 가능성을 줄였다.네트워크 프로그래밍, 멀티 코어 프로그래..
비공개 메서드원칙적으로 테스트하면 안된다.커버리지가 부족하다면죽은 코드거나,추상화가 누락된 것이다. -> 다른 클래스로 분리해 공개메서드로 빼자테스트해도 되는 경우식별할 수 있는 동작이면 테스트해도 된다.예를 들면 ORM의 비공개 생성자 같은 경우비공개 상태테스트를 위해 노출시키지 말자노출 안된 이유가 있을 것이다. 비공가 상태가 아닌 다른 메서드를 이용해 최종 상태를 체크하자.도메인 지식 유출테스트하려는 코드의 로직을 그대로 구현하지 말자.입력과 출력만 확인한다. - 오히려 이부분을 하드 코딩하자코드 오염테스트에만 필요한 메서드를 만들지 말자 (로그 안 찍게 만드는 스위치 메서드 등)차라리 인터페이스를 만들어서 테스트용 구현을 새로 만든다.인터페이스도 코드 오염의 일종이지만 구현이 없어 손상이 적다...