GN⁺: HN 질문: 당신이 작업한 최고의 코드 베이스는 무엇입니까?
(news.ycombinator.com)- 무엇이 그것을 그렇게 좋게 만들었음?
- 좋은 관행을 강제하는 사람이 있었음?
- 훌륭한 엔지니어 그룹에 속해 있었음?
- 아니면 다른 무언가?
GN⁺의 의견
- 이 기사는 소프트웨어 개발 환경에서 좋은 관행이 어떻게 유지되는지에 대한 흥미로운 질문을 제기함
- 좋은 관행을 강제하는 것과 자율적인 환경에서의 차이를 이해하는 데 도움이 될 수 있음
- 다른 유사한 기능을 가진 프로젝트로는 Google의 Code Review 시스템이나 GitHub의 Pull Request 시스템이 있음
- 새로운 기술이나 오픈 소스를 채택할 때는 팀의 문화와 기존 프로세스에 어떻게 통합될 수 있을지 고려해야 함
- 좋은 관행을 유지하는 것은 팀의 생산성과 코드 품질을 높이는 데 중요한 요소임
Hacker News 의견
-
Google의 모노레포는 도구 측면에서 매우 우수함
- 전체 코드베이스의 스냅샷을 몇 초 만에 생성할 수 있음
- 빌드는 완벽하게 재현 가능하며 빌드 클러스터에서 수행됨
- 빌드 구성 언어가 매우 간단하고 간결함
- 코드 검색이 즉시 가능함
- 파일 히스토리가 즉시 로드됨
- 라인별 블레임이 몇 초 만에 로드됨
- 거의 모든 파일에서 즉시 심볼 조회가 가능함
- 일관된 스타일이 공유 문화, 자동 린터, 사전 제출을 통해 강제됨
- 파일/버전/라인으로 딥링크하는 단축키가 있어 코드 공유가 쉬움
- 많은 사전 제출 체크가 코드/테스트 품질을 보장함
- 코드 리뷰와 코드 변경 시 테스트 페어링이 필수임
-
AOL의 서버 코드는 매우 우수했음
- Unix 프로그래밍과 이벤트 루프 사용에 대한 깊은 이해를 가진 사람들이 작성함
- C 언어로 작성되었으며, 몇 달 동안 크래시 없이 실행될 것으로 기대됨
- 비정상 종료 시 소유자에게 이메일로 코어 백트레이스를 보냄
- 메모리 누수가 발생하면 운영팀이 즉시 대응함
- 모든 것이 재시작 없이 실행 중인 서버에 다시 로드될 수 있었음
- TCP 제어 포트와 TCL 인터프리터를 사용하여 서버를 관리함
- "No Threads Kernel"로 수십 대에서 수백 대의 물리적 머신에 확장됨
- 200명의 Unix 개발자들이 공통된 이해를 가지고 있었음
- 기술 작가들이 개발자와 인터뷰하여 외부 개발자에게 전달할 수 있는 책을 작성함
- 디스크에 쓰지 않고 네트워크 메시지를 주고받는 원칙을 따랐음
-
이전 직장의 코드베이스는 매우 우수했음
- 엔지니어들이 뛰어난 기술을 가지고 있었고, 에고가 없었음
- 4명의 시니어와 3명의 프린시펄 엔지니어가 팀을 구성함
- 새로운 요구사항이 생길 때마다 문명화된 방식으로 논의함
- 주니어 멤버들도 쉽게 기존 코드를 따라갈 수 있었음
-
Postgres 코드베이스는 매우 잘 조직되어 있음
- 메모리 안전성을 걱정하지 않아도 됨
- 매크로를 신중하게 사용하여 인간을 존중함
- Postgres 코드베이스는 개발의 금표준으로 여겨짐
- pgrx 팀에게 감사의 인사를 전함
-
대규모 Python 서비스의 통합 테스트 프레임워크가 매우 우수했음
- 기존 통합 테스트 프레임워크 위에 구축됨
- 테스트 구성 요소에 명확한 의미를 정의함
- 테스트 구성 요소를 초기 세트로 구축함
- 코드 리뷰를 통해 새로운 구성 요소가 의미를 따르도록 보장함
- 장기적으로는 잘 작동하지 않았음
-
Google3 코드베이스는 매우 방대하고 잘 작동함
- 변경할 때마다 종속성을 다시 실행함
- 커밋은 효율적인 불변 스냅샷임
- GitHub보다 훨씬 뛰어남
-
내가 직접 작성한 코드베이스가 가장 우수했음
-
Cocotron 코드베이스는 매우 인상적이었음
- Mac Cocoa 앱을 Windows로 포팅하는 방법을 찾고 있었음
- 단 한 사람이 모든 필수 API를 구현함
- 복잡한 커스텀 GUI 앱에 성공적으로 사용됨
- 집중이 중요함
-
Facebook의 코드베이스는 지속적인 코드 업그레이드가 가능함
- 언어 디자인과 도구에 많은 노력을 기울임
- 기존 코드를 지속적으로 업그레이드함
- 다른 회사의 코드베이스는 주요 재작성 후 전환이 어려웠음
-
CouchDB의 HTTP API는 한 파일에 모두 포함되어 있었음
- 데이터베이스와 웹 프로그래밍을 배우기에 좋은 출발점이었음
- 나중에 팀에 의해 리팩토링됨
- 영감에서 실제 사용으로 전환되는 과정을 보는 것이 흥미로웠음