리팩토링은 간결한 코드를 작성하는 데 도움이 되는 방법과 단계를 말합니다. 이는 많은 편집 없이 코드를 읽고, 확장하고, 재사용할 수 있는 다른 개발자에게 중요합니다. 다음 콘텐츠에서는 논리 코드를 개선하기 위해 리팩토링하는 몇 가지 예를 보여줍니다.
단위 테스트 없이 프로덕션 코드를 리팩토링하지 마세요.첫 번째 조언은 완전한 단위 테스트 없이 논리 코드 리팩토링을 시작하지 말라는 것입니다. 내 추론은 다음과 같습니다. 손상된 기능을 정확히 찾아내기 어렵기 때문에 수정하기 어려운 손상된 기능을 갖게 될 것입니다. 따라서 리팩토링하려면 테스트부터 시작하세요. 리팩토링하려는 부분이 테스트 대상인지 확인하세요. PHPUnit 코드 적용 범위 분석.
아래 그림을 보세요. Github에서 찾아낸 실제 호텔 관리 시스템 프로젝트입니다. 이것은 오픈 소스 프로젝트이지만 비공개 소스 프로젝트는 끔찍할 것입니다.
예: 상향식 리팩토링이 코드를 보면 빨간색으로 표시된 세 가지 레벨이 있습니다. 가장 낮은 수준은 첫 번째 if 조건에서 if/else로 둘러싸인 선언이어야 합니다. 일반적으로 가장 낮은 수준은 단일 논리적 처리에 집중되어 있으며 리팩토링하기가 더 쉽습니다.
메소드를 더 짧게 만들고, 더 작은 메소드나 구성 파일/DB 테이블로 분해하세요여기서 아래와 같이 프라이빗 메소드로 세분화할 수 있습니다.
메소드를 더 짧게 만드세요.The 다음 심층 내용은 매개변수 업로드 및 뷰 로드에 관한 것입니다. 이제 다른 부분을 리팩토링한 후 add()
메서드를 살펴보겠습니다. 더 간결해지고, 읽기 쉽고, 테스트하기 쉬워집니다.
예: 아래쪽 레이어를 먼저 리팩터링add()
方法。它变得更加简洁,易读,易于测试。
示例:首先重构最底层
if 申明坚持使用大括号
大多数编程语言都支持单行 if 申明,因为这样比较简单,所以一些开发就这么使用,但是这样不便于阅读,而且容易造成问题,因为一个空行就可以中断条件造成崩溃。看下下面两个示例的不同:
示例: 使用大括号
别使用魔术数字或者魔术字符串:
下个示例中,你注意到如果房间超过 250 ,会返回一个错误信息。这里,250 就被认为是一个魔术数字。如果你不是写这个的开发者,很难指出这个数字表示什么。
示例:魔术数字
为了重构这个方法,我们可以指出 250 表示最大的房间数。为了替换硬编码,我们可以提取它到一个变量 $maxAvailableRooms
if 문에 중괄호 사용을 고집하세요
대부분의 프로그래밍 언어는 단일 라인 if 문을 지원합니다. 더 간단하기 때문에 일부 개발자는 이 방법을 사용하지만 읽기가 쉽지 않고 쉽게 문제를 일으킬 수 있습니다. 빈 줄은 충돌을 일으키는 조건을 방해할 수 있습니다. 아래 두 예의 차이점을 살펴보세요.
예: Magic Numbers
리팩토링용 그런데 250이 최대 객실 수를 나타낸다는 점을 지적할 수 있습니다. 하드코딩을 대체하려면$maxAvailableRooms
변수로 추출하면 됩니다. 이제 다른 개발자들이 더 쉽게 이해할 수 있게 되었습니다. 🎜🎜🎜🎜🎜예: 마법의 숫자 수정 🎜🎜🎜별로 필요하지 않은 경우 else 문을 사용하지 마세요. 🎜🎜🎜동일 availablerooms() 함수에서 if 문을 쉽게 제거할 수 있다는 것을 알 수 있습니다. else 부분의 논리는 일관성을 유지합니다. 🎜🎜🎜🎜🎜예: else 문을 무시하세요🎜🎜🎜메서드, 변수 및 테스트를 표현하는 이름 지정을 사용하세요🎜🎜다음 예에서는 호텔 관리 시스템에 "index()"와 "room_m()"의 두 가지 메서드가 있음을 알 수 있습니다. 나로서는 그들의 목적이 무엇인지 알 수 없다. 그들의 이름이 자신을 표현한다면 이해하기 쉬울 것이라고 생각합니다.
예: 잘못된 메소드 이름 지정
프로그래밍 언어의 기능을 최대한 활용하세요.
많은 개발자가 자신이 사용하는 프로그래밍 언어의 모든 기능을 활용하지 않습니다. 많은 기능을 사용하면 시간을 절약하고 코드를 더욱 강력하게 만들 수 있습니다. 아래 예제를 살펴보고 유형 힌트를 사용하여 더 적은 코드로 동일한 결과를 더 쉽게 얻을 수 있는 방법을 알아보세요.
마지막으로 더 나은 코딩을 위한 몇 가지 간단한 팁을 제공하고 싶습니다.
원본 주소: https://medium.com/@maladdinsayed/advanced-techniques-and-ideas-for-better-coding-skills-d632e9f9675
번역 주소: https://learnku.com/php/ t/37900
위 내용은 볼만한 가치가 있습니다! 수석 PHP 엔지니어에게 필요한 코딩 기술과 사고의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!