왜 우리만의 코딩 표준을 개발해야 합니까?
우리가 코드를 작성할 때 좋은 코딩 표준은 우리에게 예상치 못한 많은 영향을 미칠 수 있습니다. 최소한 다음과 같은 이점이 있습니다.
1. 코딩 효율성을 향상시킵니다. 깔끔하고 균일한 코드를 사용하면 쉽게 복사하여 붙여넣을 수 있습니다!
2. 코드의 가독성을 향상시킵니다.
3. 우리의 전문성을 보여주세요. 다른 사람들은 우리 코드를 보고 전체 코드 작성 과정이 깔끔하고 균일하다는 것을 발견하고 즉시 감동했습니다!
4. 팀 협업을 촉진합니다. 모두가 동일한 표준을 사용하므로 다양한 작성 방법이 필요 없고 통일된 조정이 보장됩니다!
코딩 사양에는 크게 코드 사양과 주석 사양 두 가지가 있습니다
사실 우리가 작성하는 PHP 스크립트는 실제로 코드 작성과 코드에 대한 주석이라는 두 가지 주요 부분으로 구성됩니다! 프레임워크마다, 심지어 회사마다 이 측면에 대해 서로 다른 견해를 가질 수 있습니다. 이것은 단지 내 작성 표준을 요약한 것입니다. 다른 친구들에게 영감을 줄 수 있기를 바랍니다
1. 코드 작성 기준
폴더 이름:
폴더에는 소문자를 사용하세요. 예를 들어 컨트롤러 폴더를 저장하는 경우 이름을 컨트롤러로 지정하세요
파일명 :
클래스 파일인 경우 파일 이름은 유사한 이름으로 일관성을 유지해야 하며 큰 카멜 케이스를 사용해야 합니다. 예를 들어 Session.class.php, 해당 클래스 이름은 Session,
일반적인 도구 스크립트라면 common.php와 같은 작은 카멜 케이스를 사용하세요
클래스 이름:
동일한 클래스 이름은 Camel Case, Cookie 클래스를 사용합니다
메소드 이름:
작은 카멜케이스를 일률적으로 사용하고, 일반적으로 동사명의 형태를 사용하여 sendMessage, 문자 메시지 보내기 등 메소드의 기능을 설명합니다.
객체지향에서는 동일한 규칙을 따르지만 몇 가지 차이점이 있습니다.
public getUserName() protected _getTotalAmount() private _setBlanceAmount()
변수 명명 규칙:
변수에 대해 몇 가지 더 말씀드릴 필요가 있습니다.
1. 객체 지향 구문이든 비객체 지향 구문이든 변수는 $workYears와 같은 작은 카멜 표기법을 사용합니다.
하지만 객체지향에서는 다릅니다. public, protected, private, protected, private 속성 앞에 _가 붙는다는 차이점이 있습니다
public $startPosition = 1; protected $_salaryAmount =1000; private $_sex = 'formale';
2. 상수인 경우 대문자를 사용하고 밑줄을 사용하여 구분합니다.
define('CURRENT_SCRIPT', 'index.php'); const TRANSACTION_TYPE = 'income';
3. 전역 변수는 카멜 표기법을 사용하고 접두어는 _이며 모든 단어의 첫 글자는 대문자로 표시합니다. 변수의 범위를 아는 것은 매우 중요하기 때문에 지역변수와 전역변수를 명확하게 구분해야 합니다!
$_System_Config;
$_Root_Path;
문자 들여쓰기
인코딩의 들여쓰기 기호는 탭 들여쓰기를 일률적으로 사용합니다! 들여쓰기에 공백을 사용하지 않는 이유가 무엇인지 묻는 사람들이 있을 수 있습니다.
그 이유는 매우 간단합니다. 대부분의 편집기에서는 탭 문자와 동일한 공백 수를 지원하므로 공백을 사용할 때 조정할 필요가 없습니다!
연산 기호
모든 이진수 연산 기호 앞에는 공백이 와야 합니다.
$name = 'zero'; $age > 18 ? 'adult' : 'children';
공통 프로세스 명세서 기획
우리는 모든 프로세스 문의 중괄호가 별도의 줄을 차지한다는 데 동의합니다. 이유: 더 복잡한 비즈니스 로직을 접하게 되면 중괄호가 많이 중첩되므로 해당 중괄호를 혼동하게 됩니다!
1. 지점문
if($age >= 18 && $age <= 30) { echo 'young man'; } else if($age > 30 && $age <= 60) { echo 'middle aged'; } else { echo 'old man'; } //下面这段代码高手我们一个问题,在if语句中,即使在可以不要花括号的情况下,花括号也是要写上的 if($age > 60) { echo 'I am very old'; } switch($status) { case 'forbiden': echo 'login forbidden'; break; case 'normal': echo 'login in'; break; default: echo 'status is wrong' : break; }
2. 루프문
while($condition) { statesments......; } foreach($arrayList as $arrayKey => $arrayItem) { states......; } do { statements......; } while($condition) for($start; condition; changenumber) { statements......; }
2. 댓글 사양 작성
많은 사람들이 좋은 코드에는 주석이 필요하지 않다고 말합니다. 사실 저는 개인적으로 이것은 매우 말도 안되는 진술이라고 생각합니다. 사람들의 의견) 코드).
제 개인적인 의견은 댓글을 더 많이 쓰는 것이 팀 내 다른 사람들에게도, 자신에게도 매우 우호적이라는 것입니다!
개인적인 경험에 따르면 댓글에는 최소한 다음과 같은 기능이 있습니다.
1. 코드의 가독성을 높이는 데 도움이 됩니다. 결국 코드보다 주석을 읽는 것이 훨씬 쉽습니다.
2. 자신만의 코드 레이아웃을 계획하는 데 도움이 됩니다! 이렇게 말하는 이유는 코드 주석의 종류와 관련이 있기 때문입니다. "코드 레이아웃에 도움이 된다"는 것은 약간 혼란스러워 보입니다. 이를 뒷받침하려면 실제 예제가 필요합니다.
3. 주석 사양은 PHPDocumentor의 요구 사항을 따르므로 이 도구를 통해 사용 설명서와 동일한 코드에 대한 전반적인 설명을 생성할 수도 있습니다! ㅋ
코드 주석 유형
1. 댓글 차단
블록 주석은 주로 세 가지 장소에서 사용됩니다. PHP 스크립트나 대규모 기능 모듈에 대한 설명을 한 줄로 작성할 수 없는 경우에도 블록 주석에 배치해야 합니다
2. 줄댓글
라인 코멘트는 개인적으로 블록 코멘트와 함께 작동한다고 생각합니다! 일반적으로 대형 기능 모듈의 구체적인 세부 사항을 설명하는 데 사용됩니다!
실제 사례
phpdocumentor 구문의 구체적인 사용법에 대해서는 여기서 자세히 설명하지 않겠습니다.
위 예시를 통해 코드의 전반적인 레이아웃을 살펴볼 수 있지만, 실제로는 천천히 살펴봐야 합니다
아래에 참고할 수 있는 PHP 프로그래밍 사양이 첨부되어 있습니다
1. 파일 태그:
1. 모든 PHP 파일은 코드 태그에 완전한 PHP 태그를 사용합니다. 짧은 태그는 사용하지 않는 것이 좋습니다(짧은 태그는 XML과 쉽게 혼동되며 PHP는 5.4부터 기본적으로 짧은 태그를 지원하지 않습니다).
2. PHP만 있는 코드 파일의 경우 끝에 '?>'를 생략하는 것이 좋습니다. 이는 추가 공백이나 기타 문자가 코드에 영향을 미치는 것을 방지하기 위한 것입니다.
2. 파일 및 디렉터리 이름 지정
1. 프로그램 파일명, 디렉토리명은 모두 의미있는 영어로 명명합니다. 병음 및 의미없는 문자는 사용하지 않습니다. 문자, 숫자, 밑줄 문자만 허용되며 '.php'로 끝나야 합니다. 템플릿 파일의 경우) 여러 단어 사이에 낙타 표기법을 사용하세요.
예: //균일한 클래스 사용: DemoTest.class.php
//인터페이스가 균일하게 채택되었습니다: DemoTest.interface.php
//다른 사람들은 자신만의 방법을 따릅니다: decoTest.{style}.php
3. 파일 디렉토리 구조
표준화된 디렉토리 구조는 팀 협업 개발 및 사후 유지 관리를 용이하게 합니다.
——app //독립 애플리케이션
——class //단일 클래스 파일, 공유 클래스 파일
——conf/inc //구성 파일 또는 디렉터리
——data //데이터 파일 또는 디렉터리
——doc //프로그램 관련 문서
——htdocs //document_root
——images //모든 이미지 파일 저장 경로
——css //css 파일
——js //js 파일
——lib //공유 클래스 라이브러리
——템플릿 //템플릿 파일
——tmp //임시 파일 디렉터리
——캐시 //캐시 파일
——세션 //SESSION 파일
——template_c //컴파일된 템플릿 파일
——기타
——업로드 //파일 업로드
——관리 //백엔드 관리 파일 디렉터리
4. 명명 규칙
1. 변수 이름 지정: PHP의 변수는 대소문자를 구분합니다. 유효한 변수 이름은 숫자, 문자 또는 밑줄로 시작하고 그 뒤에 문자, 숫자 및 밑줄이 옵니다.
a) 전체 프로그램은 소문자로 시작하는 카멜 케이스 이름 지정을 사용하며 이름은 의미가 있어야 합니다. (함수 표시 이름())
b) PHP 전역 변수 키 값은 양쪽에 '_'가 있고 가운데에는 카멜 표기로 이름이 지정되어 있습니다. ($_GLOBAL['_beginTime_'])
c) 일반 변수는 전체적으로 카멜 표기법을 사용합니다. 변수 앞에는 타입을 나타내는 접두사를 추가하는 것이 좋습니다. 정의되지 않은 유형은 대문자로 시작됩니다.
d) 함수 이름은 최대한 의미가 있어야 하며 최대한 단축되어야 합니다.
2. 클래스 및 인터페이스 이름 지정:
a) 대문자로 시작하세요.
b) 여러 단어로 구성된 변수 이름은 단어 사이에 공백이 없으며 각 단어의 첫 글자를 대문자로 표시합니다.
c) 클래스 이름은 클래스 파일 이름과 일치해야 합니다.
d) 프로그램의 모든 수업 이름은 고유합니다.
e) 추상 클래스는 추상으로 시작해야 합니다.
인터페이스 명명 규칙:
i) 클래스와 동일한 명명 규칙을 사용하지만 이름 앞에 'i' 문자를 추가하여 인터페이스를 나타냅니다.
ii) 이를 구현하는 클래스의 이름을 일관되게 유지하십시오.
3. 데이터베이스 이름 지정: 데이터베이스 관련 이름 지정에는 대문자가 절대 표시되지 않습니다.
a) 모든 테이블 이름은 소문자를 사용합니다.
b) 테이블 이름은 동일한 접두사를 사용하며 접두사는 비워둘 수 없습니다.
c) 여러 단어로 구성된 테이블 이름은 '_' 구분을 사용합니다.
d) 테이블 필드 명명 규칙.
i) 모두 소문자를 사용하세요.
ii) 여러 단어를 밑줄로 구분할 필요는 없습니다.
iii) 테이블 이름의 첫 글자를 공통 필드 앞에 붙입니다.
iv) 키워드 및 예약어 사용을 피하세요.
5. 댓글 사양
1. 프로그램 주석: 코드 뒤가 아닌 앞에 작성됩니다. 큰 주석은 /**/는 일반적으로 파일이나 함수의 상단에 있으며 '//'는 코드 내부에서 사용됩니다. 주석은 너무 많아서는 안 됩니다. 코드 주석은 무엇을 해야 할지보다는 이유를 설명해야 하며 코드 판독기에 가장 중요한 정보를 제공해야 합니다.
2. 파일 댓글 : 파일 댓글은 일반적으로 파일 상단에 위치하며 프로그램 설명, 작성자, 프로젝트 이름, 파일명, 시간 및 날짜, 버전 정보, 중요 사용 지침(수업 호출, 주의사항) 등이 포함됩니다. , 등.) . 버전을 변경하려면 버전 번호를 수정하고 수정 설명을 추가해야 합니다.
3. 클래스 및 인터페이스 참고 사항: 일반적인 습관에 따르면 파일에는 클래스가 하나만 포함됩니다.
4. 메소드 및 함수 주석: 메소드 및 함수 주석은 일반적으로 정보의 주요 가시성, 매개변수 유형 및 반환 값 유형을 표시해야 합니다.
/**
* 데이터베이스에 연결
* @param string $dbhost 데이터베이스 서버 주소
* @param string $dbuser 데이터베이스 사용자 이름
* @param string $dbpwd 데이터베이스 비밀번호
*/
를 사용하여 코드 끝에 작성됩니다.6. 코드 스타일
1. 들여쓰기 및 공백: 들여쓰기는 공백 4개를 사용하고, 변수에 값을 할당할 때는 Tab 키를 사용하지 말고 등호 양쪽에 공백을 남겨두세요. ($url = '$_GET['url']';)
2. 명령문 줄바꿈: 프로그램 명령문이 한 줄이 되도록 하세요. 코드 줄이 너무 길면 다음과 같은 방법을 사용하세요. 줄 연결을 끊는 '.='; 실행 데이터베이스에서 SQL 문을 실행할 때는 함수 내에서 SQL 문을 작성하지 말고 먼저 변수로 SQL 문을 정의한 후 수행하는 함수에서 정의된 변수를 호출하세요. 작업.
3. 더 나은 습관: 코드에 아래 나열된 방법을 사용하여 코드를 더욱 우아하게 만드세요.
1): 직접 정의하는 대신 PHP에 이미 존재하는 더 많은 상수를 사용하세요.
예: //줄 바꿈
echo $msg."rn";
에코 $msg,PHP_EOL;
php의 PHP_EOL은 줄의 끝을 나타내는 미리 정의된 상수입니다. 사용하는 시스템에 따라 PHP_EOL을 사용하는 코드가 더 이식성이 뛰어납니다.
2): 에코에서 커넥터 코드로 '.'을 사용하는 것보다 쉼표를 커넥터로 사용하는 것이 더 아름답습니다.
3): 작은따옴표는 큰따옴표보다 효율적이지만 printf 함수 사용법을 알아보세요.
예: //에코
에코 '각'. '약' .floor($ 평균)
//인쇄
$format = '각 %s에는 $d명 이상의 학생이 있습니다';
printf($format,$school,$avg);
4) : 상세설명
5): 구문 설탕을 남용하지 마세요. 구문 설탕은 언어의 무언의 규칙, 즉 보편적으로 대표되지 않는 문법입니다.