CHAPTER 17 Code Search

Part IV 도구

구글이 이용하는 코드 브라우징 및 검색 도구

Code Search UI

핵심요소는 검색창

파일 하나를 들여다 볼때 대부분은 토큰을 바로 클릭하여 관련 정보로 빠르게 이동 할수 있다

  • 이슈 트래커
  • 코드 참조 클래스

구글 개발자가 Code Search를 이용하는 방법

코드에 대한 답을 찾고 코드의 의도를 분명하게 이해하는것

  • 어디에?
  • 무엇을
  • 어떻게
  • 왜?
  • 누가 언제?

독립된 웹 도구로 만든 이유

  • 대규모 코드베이스 지원
  • 설정 없이 모든 코드 보기
  • 기능 특화
  • 다른 도구에 통합
  • API 제공

규모가 설계에 미치는 영향

  • 검색 쿼리 지연시간
  • 인덱싱 지연시간

구글은 어떻게 구현했나?

  • 검색 인덱스
    • 초기엔 트라이그램 기반의 방식
    • 커스텀한 접미사 배열
  • 랭킹
    • 쿼리 독립적 시그널
      • 파일 조회수
      • 파일로의 참조량
    • 쿼리 의존적 시그널
    • 검출
    • 결과 다양성

      구글이 선택한 트레이드오프

  • 완벽성
    • 헤드 리포지터리
    • 전부 vs 가장 관련성 높은 결과만
    • 헤드 vs 브랜치 vs 모든 변경 이력 vs 작업 공간
  • 표현력
    • 토큰 vs 부분 문자열 vs 정규 표현식

참조