> 개발 도구 > phpstorm > phpStorm을 사용하여 코드를 리팩터링하는 방법

phpStorm을 사용하여 코드를 리팩터링하는 방법

(*-*)浩
풀어 주다: 2020-01-13 15:53:11
원래의
4958명이 탐색했습니다.

phpStorm을 사용하여 코드를 리팩터링하는 방법

코드 리팩터링은 소프트웨어 구축 및 유지 관리의 중요한 측면입니다.

코드를 직접 리팩토링할 때는 이전 코드를 사용하든 새 코드를 생성하든 메소드 이름을 바꿀 때 코드 사용을 잊어버리는 등 실수를 하기 쉽습니다. 이것이 제가 정기적으로 PhpStorm의 리팩토링 기능을 사용하는 것을 좋아하는 이유입니다. (권장 학습: phpstorm)

이 용어를 처음 들어보신 경우 Martin Fowler는 리팩토링을 다음과 같이 설명합니다.

重构是一种用于改进现有代码库设计的受控技术。它的本质是应用一系列小的行为保留转换,每个转换“都太小,不值得做 ”。但是,每个转换的累积效果都非常显着。通过分步进行,可以降低引入错误的风险。您还可以避免在进行重组时损坏系统,这使您可以在较长的时间内逐步重构系统。
로그인 후 복사

리팩토링은 모바일, 추출, 복사, 삭제를 포함한 다양한 기술을 포괄합니다. 그리고 이름을 바꿉니다. 여기에는 시간이 지남에 따라 코드에 적용할 수 있는 모든 유형의 변경 사항이 포함됩니다.

다행히도 PhpStorm의 리팩토링 기능(핵심 패키지에 포함됨)은 이러한 기능을 모두 지원합니다. 이 튜토리얼에서는 그 중 일부를 단계별로 살펴보겠습니다. 특수:

새 메소드로 코드 추출

함수 이름 바꾸기

함수 서명 변경

코드를 새 메소드로 추출

코드를 새 메소드로 추출하는 것은 리팩토링이며 내 직업은 대부분의 것보다 낫습니다. (어쩌면 다른 것일지도) 무엇보다. 나는 긴 함수를 더 작고, 더 재사용 가능하고, 더 테스트 가능한 일련의 함수로 나누어 더 잘 구성할 수 있는 긴 함수를 접한 횟수를 셀 수 없습니다.

다음 기능을 예로 들어보세요.

public function populate($data)
{
    if (is_array($data) && empty($data)) {
        throw new HydrationException();
    }

    $this->id = $data['id'];
    $this->userId = $data['userId'];
    $this->entry = $data['entry'];
    $this->created = $data['created'];
    $this->updated = $data['updated'];
}
로그인 후 복사

작지만 이 예에서는 충분합니다. 함수 끝에 있는 다섯 줄이 클래스의 다른 부분에 필요하거나 별도의 함수에서 더 잘 사용될 수 있다고 가정해 보겠습니다.

우리가 원하는 것은 그것들을 별도의 방법으로 추출하는 것입니다. 이를 위해 먼저 추출하려는 행을 강조 표시하고 "Refactor->Extract->Method"를 클릭합니다. 그러면 아래에서 볼 수 있는 추출 방법 대화 상자가 표시되며 기본 옵션 세트가 미리 채워져 있습니다.

phpStorm을 사용하여 코드를 리팩터링하는 방법우리가 해야 할 최소한의 일은 메소드의 이름을 입력하는 것입니다. 나머지 옵션은 좋은 기본값 세트이므로 그대로 둘 수 있습니다. 그러나 제가 한 또 하나의 작업은 유일한 매개변수인

$data
로그인 후 복사

에 대한 유형 힌트를 지정하는 것이었습니다. 이렇게 하면 기능이 더 명확해지고 생성된 PhpDoc 블록에도 해당 정보가 포함됩니다. 리팩터링을 클릭하면 새 메서드를 생성하고 강조 표시된 코드를 해당 메서드에 대한 호출로 바꿀 수 있습니다. 아래에서 확인할 수 있습니다.

아아아아

위 내용은 phpStorm을 사용하여 코드를 리팩터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿