코드 탐색

코드 내비게이션 - 코드 이해에 필요한 기본 기술 중 하나.예를 들어 어떤 코드가 어떻게 작동하는지 알고 싶으면 함수(또는 클래스, 하위 루틴 등)가 어떻게 작동하는지 알아야 한다. 이를 위해 함수의 정의로 넘어가 원본 코드를 읽거나 문서를 읽을 수 있다. 만약 그것이 내장 함수라면.

텍스트 검색
가장 보편적인 방법.만약 다른 모든 것이 실패한다면 나는 그것을 쓸 것이다.

찬성 의견
모든 내용에 적용: 코드, 주석, 비코드 파일(예를 들어 번역 파일).

기만하다
예를 들어 변수를 찾으려면 주석의 텍스트, 키워드, 함수 이름, 클래스, 문자열의 텍스트, 유사한 이름을 가진 변수 등과 일치하는 대량의 오보를 보냅니다.

실패할 때
메타프로그래밍은 검색을 파괴할 수 있습니다. 예를 들어 rails의 신기한 방법의 코드 라이브러리에서 동적 find_by_* 검색기와 동적 *_path URL 경로 생성기를 찾을 수 없습니다.
스마트 코드.예를 들어, 번역 키 page.component.header을 찾고 싶지만, 작성 방식은
const t = (key) => i18n.t("page.component." + key);
t("header");
또는 예를 들어, 번역 파일은 다음과 같습니다.
{
  "page": {
    "component": {
      "header": "Title"
    }
  }
}
예를 들어, some text을 검색했지만 코드는 다음과 같습니다.
print("long bla-bla ... some " + "text ... more bla-bla");
별견:Too DRY - The Grep Test.

플러그 인

The ctags and etags programs generate an index (or "tag") file for a variety of language objects found in source files. This tag file allows these items to be quickly and easily located by a text editor or other utilities.

-- MAN ctags


텍스트 검색과 유사한 기술로 문법만 알고 있기 때문에 이름과 표지부의 종류를 검색할 수 있다.예를 들어, C 언어의 경우 매크로, 함수, 변수, 유형 정의 등의 유형을 정의합니다.

찬성 의견
텍스트 검색에 비해 오보율이 더 낮다.그러나 여전히 오보가 존재한다. 예를 들어 다른 범위에서 비슷한 이름을 가진 변수를 찾을 수 있다.
const fn1 = (x) => {
  console.log(x);
};
const fn2 = (x) => {
  console.log(x);
};

실패할 때
메타 프로그래밍과 스마트 코드(텍스트 검색 부분 참조).

모든 참고 자료를 찾다
모든 사용법 찾기
기본적으로 화사한 CTAG입니다.모든 사용 클래스, 방법, 변수, 또는 유사한 내용을 신속하게 볼 수 있습니다.약간의 정의와는 상반된다.
현식 가져오기가 있는 언어와 정적 형식이 있는 언어에서 오보를 적게 제공합니다.

실패할 때
모듈 프로그래밍 (텍스트 검색 부분 참조).

정의 들어가기
신고하다
일부 IDE에서는 Cmd/Ctrl+ 클릭을 통해 활성화됩니다.이런 기술은 완전히 문법에 의존한다.이것은 주어진 범위 내에서 정확한 변수 정의를 찾을 것이다.

찬성 의견
오보가 없다.물품의 출처를 추적할 수 없을 때 시스템은 유사한 CTAG 방법으로 되돌아갑니다(이 경우 오보가 발생할 수 있습니다).
많은 변수와 함수 호출("체인"의 분배와 호출)을 통해 원점으로 쉽게 이동할 수 있다. 예를 들어 y에서 f1까지 쉽게 이동할 수 있다.
const f1 = () => {};
// a lot of code
const x = f1();
// a lot of code
const y = x + 1;
// a lot of code
fn2(y);

기만하다
한 방향으로만 내비게이션 (아래에서 위로) 하다.
잘못된 재할당:
let x = 1;
// a lot of code
x = 2;
// even more code
fn(x);

실패할 때
모듈 프로그래밍 (텍스트 검색 부분 참조).
명시적으로 가져오지 않은 프로그래밍 언어(예: Rails 항목)는 실패할 수 있습니다(CTAG와 같은 방법으로 폴백하는 방법).
CSS의 클래스나 TypeScript의 인터페이스와 같은 재선언된 프로그래밍 언어는 실패할 수 있습니다. (CTAG와 같은 방법으로 되돌아갈 수 있습니다.)
리셋 (기타 함수 매개 변수) 은 이 체인을 깨뜨릴 것이다.그런 다음 모든 참조 찾기(또는 CTAG 또는 텍스트 검색)를 사용하여 함수가 사용되는 위치를 가져오고 원하는 값을 추적해야 합니다.

실행
Go To 구현을 사용하면 기본 클래스나 유형에서 구현을 탐색할 수 있습니다.OOP 언어나 정적 유형 언어에 적용됩니다.정적 유형의 언어에만 적용될 가능성이 높다.

기지로 가다
Go To Base를 사용하면 선택한 요소의 상속 체인을 위로 탐색할 수 있습니다.OOP 언어에만 유용합니다.정적 유형의 언어에만 적용될 가능성이 높다.

유형 검색
형식 서명을 통해 변수와 함수를 찾을 수 있습니다. 예를 들어 hoogle.

찬성 의견
체인이 끊어진 경우(전환 정의가 실패했을 때) 도움이 될 수 있습니다.

기만하다
정적 유형의 언어에만 적용됩니다.
기본 유형 (문자열, 숫자 등) 에서는 쓸모가 없지만, 함수와 대상 서명 같은 독특한 유형에는 유효하다.

파일, 행, 열로 이동
어떤 파일이 필요한지 알았을 때, 파일로 이동하는 것은 (일부 IDE에서 Cmd/Ctrl+P) 매우 유용합니다. 예를 들어 코드 약속이 존재할 때, 예를 들어 Rails에 있습니다.또는, 예를 들어, 파일 Component.js에서 해당하는 테스트 파일로 이동하기를 희망하고, 코드 약속이 있으면 이 조작을 쉽게 실행할 수 있습니다. - Component.test.js.
파일 as URI scheme(예: some/file.js:30:10)로 이동합니다.예를 들어 브라우저에서 이상 스택 추적을 볼 때 IDE에서 이 코드 위치로 이동하려면 누르십시오.그것도 터미널 (컨트롤러) 에서 일할 수 있다.

후퇴
이런 방법은 브라우저 역사 기록 행위와 유사하지만, 웹 페이지를 뛰어넘는 것이 아니라 커서 위치를 뛰어넘는 것이다.
파일 사이를 이동하거나 큰 파일에서 이동할 때, 예를 들어 '정의로 이동' 이나 '파일로 이동' 을 사용하면 원래의 위치로 이동하는 것이 매우 유용합니다.

책갈피
브라우저의 영감을 받은 또 다른 기술몇몇 코드의 위치를 여러 번 돌려야 할 때 매우 유용하다.

도구책
  • Visual Studio Code, Code Navigation
  • Visual Studio IDE, Navigate your code
  • CLion, Navigation and usages search
  • PyCharm, Smart code navigation
  • RubyMine, Navigation and usages search
  • 좋은 웹페이지 즐겨찾기