7년간의 오픈소스 DB 개발에서 배운 것
(philipotoole.com)- SQLite 기반의 가벼운 분산 데이터베이스인 rqlite 개발자의 회고
ㅤ→ 처음엔 재미 삼아 RAFT로 SQLite를 분산 복제하려는 시도에서 출발
- 가능하면 작게, 기능 하나씩 개발 할 것
- 명확한 중간 산출물 없이 큰 코드 재작성은 피할 것
- 창의성은 불규칙하고 예측할 수 없음
- 코드의 품질을 높인 건 광범위한 테스트 커버리지
ㅤ→ 실제 코드에 최대한 가깝게 테스트 케이스를 작성할 것
ㅤ→ 스모크 테스트에 대한 통합 테스트를 반드시 유지할 것
ㅤ→ 유닛 테스트가 핵심. 유닛 테스트 수준에서 훌륭한 커버리지가 없다면 소프트웨어는 결코 고품질이 될 수 없음
- Go 는 7년 동안 충분히 생산적이었고 계속 즐기고 있음.
- 홍보는 어려움. GitHub에서 8000개의 Star를 얻는데 7년이 걸렸음.
- 프로그래밍은 치유(therapeutic)
ㅤ→ 내 직업은 프로그래머를 관리하는 것(구글의 엔지니어링 매니저)이고, 흥미롭지만 직접 코딩 하는 것과는 다름
ㅤ→ 팀 활동으로서의 프로그래밍은 코딩 스타일, 버그 해결 정책, 코드 리뷰, 기능 우선순위 결정 등의 활동을 필요로 함. 팀 단위의 소프트웨어 구축에는 많은 비코딩 활동이 필요.
ㅤ→ 내 프로젝트에서는 자유로움. 코딩 스타일을 내가 정하고, 기능도 내가 정함. 어떤 버그를 고칠지 내가 결정하고, 미팅에도 갈 필요 없음.
- 7년을 개발했지만 아직도 할 일은 많음
ㅤ→ "it's done" 까지는 절대 가지 못할 것이라고 생각
ㅤ→ 노병들이 그랬던 것처럼, "다만 사라질 뿐" ( "Old soldiers never die, they simply fade away" 에서 )