From 4a262208901228c616216541699a842a1d7faedd Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 27 Apr 2016 21:57:12 +0900 Subject: [PATCH] Update CONTRIBUTING.md --- CONTRIBUTING.md | 69 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fd98ea028..47666763d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ - 2가지 이상 서로 다른 문제가 있는 경우, 각각 이슈를 등록해 주십시오. - 보안 취약점은 공개적으로 언급하지 말고 devops@rhymix.org로 알려 주시면 감사하겠습니다. - **버그 신고 전 자신의 서버가 Rhymix의 실행 환경을 충족하는지 확인해 주십시오.** - - PHP 5.3 미만, EUC-KR 환경, 퍼미션 오류 등은 호스팅 업체에 문의하셔야 합니다. + - PHP 5.5 미만, EUC-KR 환경, 퍼미션 오류 등은 호스팅 업체에 문의하셔야 합니다. - 자신의 서버 환경은 `phpinfo`를 사용하여 확인할 수 있습니다. - **버그 신고에는 아래의 내용을 반드시 포함시켜 주십시오.** - 실행 환경 @@ -30,10 +30,13 @@ 작성 후에 수정할 것이 있으면 이 브랜치에서 계속 작업하고 커밋하시면 됩니다. PR 페이지에 자동으로 반영됩니다. - 개발 진행 및 안정화에 따라 브랜치별 운영 정책이 변경될 수 있으니 유의하십시오. - 아래의 코딩 규칙을 지키려고 노력해 주시기 바랍니다. -- 코딩 규칙에 맞지 않는 소스를 발견하더라도 PR의 주제외 관계없는 부분은 함부로 고치지 마세요! - 코딩 규칙에 맞도록 소스를 수정하는 작업은 모두 별도의 PR로 처리하여야 합니다. -- 단, PR을 검토하는 개발자들은 괄호의 위치와 같은 사소한 문제를 지적하느라고 - 실제 기능에 관심을 주지 못하는 오류를 범하지 않도록 노력해야 합니다. +- **코딩 규칙에 맞지 않는 소스를 발견하더라도 PR의 주제와 관계없는 부분은 함부로 고치지 마세요! + 코딩 규칙에 맞도록 소스를 수정하는 작업은 모두 별도의 PR로 처리하여야 합니다.** +- **단, PR을 검토하는 개발자들은 괄호의 위치와 같은 사소한 문제를 지적하느라고 + 실제 기능에 관심을 주지 못하는 오류를 범하지 않도록 노력해야 합니다.** +- PR의 제목은 커밋 메시지에 적용되는 규칙을 참고하되, 가능하면 한글로 작성해 주십시오. +- 유닛 테스트를 통과하지 못하거나, 통과하기 위해 테스트를 삭제할 경우 PR이 거부될 수 있습니다. + 단, 테스트 자체에 문제가 있거나 테스트 내용을 변경해야 한다고 생각되는 경우 개발팀과 의논해 주십시오. ## 저작권 및 라이선스 @@ -73,10 +76,23 @@ PHP 코드만으로 이루어진 파일은 맨 끝에 `?>` 태그를 사용하 } } -단, 클로져는 같은 줄에 중괄호를 쓸 수 있으며, 이 경우 중괄호 앞뒤에 한 칸씩 공백을 둡니다. +조건문이나 순환문 내에 하나의 명령만 있는 경우에도 반드시 중괄호를 사용합니다. +그래야 나중에 명령이 추가될 경우 수정하기 편리합니다. + + if (!$foo) return false; // WRONG + if (!$bar) // RIGHT + { + return true; + } + +단, 클로져는 같은 줄에 중괄호를 쓸 수 있으며, +이 경우 중괄호 앞뒤에 한 칸씩 공백을 두어 클로져가 시작되고 끝나는 지점을 찾기 쉽도록 합니다. 닫는 중괄호와 그 뒤의 기호 사이에는 공백을 두지 않습니다. $foo = function($bar) { return $bar + 1; }; // RIGHT + $foo = function($bar) { // RIGHT + return $bar + 1; + }; $foo = function($bar){return $bar + 1;}; // WRONG 자바스크립트에서는 거의 모든 함수가 클로져이며, 잘못 줄바꿈할 경우 세미콜론이 삽입될 수 있으므로 @@ -101,6 +117,24 @@ PHP 코드만으로 이루어진 파일은 맨 끝에 `?>` 태그를 사용하 if($foo === $bar) // OK for XE Compatibility if($foo==$bar){ // WRONG +여러 줄에 걸쳐 배열을 선언할 경우, 마지막 구성요소 뒤에 쉼표를 남깁니다. +그래야 나중에 구성요소를 추가할 때 편리합니다. + + $animals = array( + 'bear', + 'cat', + 'dog', // COMMA + ); + +단, 자바스크립트 및 JSON에서는 마지막 쉼표를 반드시 삭제해야 합니다. +쉼표를 남겨둘 경우 일부 브라우저에서 오류가 발생할 수 있기 때문입니다. + + var animals = [ + 'bear', + 'cat', + 'dog' // NO COMMA + ]; + ### 주석 주석은 관련 코드 윗줄에 써야 합니다. 조건문이나 루프의 경우에도 마찬가지입니다. @@ -150,9 +184,27 @@ PHPDoc 주석 작성에 어려움이 있는 경우, 다른 클래스와 함수 불가피한 경우를 제외하면 주석은 영문으로 쓰는 것을 원칙으로 하며, 대문자로 시작하는 완전한 문장으로 이루어져야 합니다. +### 커밋 메시지 + +커밋 메시지는 가능하면 영문으로 작성하며, **현재형** 동사로 시작하는 **명령형** 문장 사용을 원칙으로 합니다. + + Delete unnecessary condition // RIGHT + Fix #1234 // RIGHT + Deletes unnecessary condition // WRONG (불필요한 동사변화) + Fixed #1234 // WRONG (불필요한 과거형) + +이 규칙에 맞추어 영문으로 커밋 메시지를 작성하기 어려운 경우, 한글로 작성해도 무방합니다. +한글 커밋 메시지는 **어디서** **무엇을** **어떻게** 했는지 간결하고 명확하고 격식있게 표현하며, +가능하면 현재형 동사로 마치도록 합니다. + + 크롬 최신 버전에서 스크립트 오류 해결 // RIGHT + Foo 클래스에 bar() 메소드 추가 // RIGHT + 파일첨부 에러나는거 고쳤쩌염~^^ // WRONG (격식없는 표현) + 함수 개선 // WRONG (두리뭉실한 표현) + ### 기타 -Rhymix에서 정한 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 합니다. +Rhymix의 기본 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 합니다. 문자열과 문자열, 정수와 정수를 비교할 때는 가능하면 `==` 대신 `===`을 사용합니다. 실제 자료형이 다를 가능성이 있는 경우 `intval()`, `strval()` 등의 함수와 함께 사용합니다. @@ -160,5 +212,8 @@ Rhymix에서 정한 `error_reporting` 설정 하에서 어떤 에러도 발생 PHP 5.4 이상에서 지원하는 간단한 배열 문법(`[1, 2, 3]`)을 사용할 수 있으나, 복잡한 구조의 배열을 선언할 때는 이 문법이 오히려 가독성을 해칠 수 있으니 주의하시기 바랍니다. +전역 상수를 참조할 때는 `\RX_CLIENT_IP`와 같이 `\`를 앞에 붙여서, +추후 다른 네임스페이스로 코드를 이동 또는 복사하더라도 문제가 생기지 않도록 합니다. + 여기에서 규정하지 않은 내용은 [PSR-1](http://www.php-fig.org/psr/psr-1/)과 [PSR-2](http://www.php-fig.org/psr/psr-2/)를 따릅니다.