몇 천 명의 Meta 개발자들의 생산성을 책임지는 개발 도구들
Sapling: Meta에서 직접 개발한 버전 관리 시스템. GitHub이 대중화 한 Branch/Pull Request 모델이 아닌 Commit/Stacked Change로 코드를 리뷰하고 가꾼다. 또 Sapling의 virtual file system을 활용해 Meta의 거대한 모노리포에 있는 수억 개의 파일을 효과적으로 수정할 수 있다고 한다. https://sapling-scm.com/ Buck2: Meta에서 사용되는 모든 프로그래밍 언어를 지원하는 통합 빌드 시스템. 수천 개의 빌드 머신과 리모트 캐슁을 활용하여 Meta의 제품들을 지탱하는 대규모 서버의 빌드를 빠르게 처리해준다. https://buck2.build/ Infer/RacerD/Jest: Java/C++/Objective-C 코드의 버그를 찾아주는 정적 분석 도구 Infer, 동시성 코드에서 발생하는 문제를 해결해주는 RacerD, 그리고 유명한 JS 테스트 프레임워크인 Jest! https://fbinfer.com/ 놀랍게도 위에 언급된 도구들은 모두 Meta에서 오픈소스로 공개되어 누구나 사용해 볼 수 있다. 우리 팀도 Meta의 개발툴을 채택해 보는 것도 재미있것 같다. https://engineering.fb.com/2023/06/27/developer-tools/meta-developer-tools-open-source/