소스 컨트롤 커밋, 체크 아웃, Diff 등 전후에 자동 형식 코드가 가능하다면 회사가 실제로 표준 코드 스타일이 필요합니까?

StackOverflow https://stackoverflow.com/questions/1882664

문제

소스 컨트롤 커밋, 체크 아웃, Diff 등 전후에 자동 형식 코드가 가능하다면 회사가 실제로 표준 코드 스타일이 필요합니까?

프로그래밍이 "다음 줄에 브래킷을 넣는 것"또는 "올바르게 들여 쓰기"와 같이 프로그래밍이 시작된 이래로 격렬한 표준 코딩 스타일 토론처럼 느껴집니다 (더 이상 필수적이지 않습니다.

나는 공백이 중요한 언어에서 Diff가 그것을 고려해야하지만 스타일이 개인 취향 인 언어의 경우 더 이상 걱정할 필요가 있습니까?

도움이 되었습니까?

해결책

자동 형식은 실제로 공백 만 해결할 수 있습니다.

기괴한 무의미한 이름을 기괴한 변수를 제공하는 개발자에게는 주소를 지정하지 않습니다. 기능을 갖는 일부 개발자는 오류에서 NULL을 반환하는 것과 예외를 던지지 않습니다.

나는 다른 사람들이 더 많은 예를 생각할 수 있다고 확신합니다.

다른 팁

이것이 우리가 내 일에서하는 일입니다.

우리 모두는 일식을 사용합니다. 우리는 일식을 사용하는 정책이 없지만 어쨌든 우리 중 누구도 아이디어/지능적인 사람이 아닙니다. 또한 코드는 레거시를 염두에두고 작성되어야한다고 생각합니다. 이것은 우리 코드가 몇 년 후에도 특정 방식으로 읽을 수 있어야한다는 것을 의미합니다.#1) 누가 그것을 썼는지, 그 사람이 더 이상 회사에 있다면.

Eclipse에는 몇 가지 편리한 기능, 저장에 자동 형식 및 특정 포맷터 도구. 링크 된 스크린 샷에서 볼 수 있듯이 XML로 구성 할 수 있습니다. 따라서 우리 회사의 모든 근로자가 이용할 수있는 Precade XML : S가 있으므로 새로운 사람이 들어 오면 전체 프로세스를 안내하고 이클립스를 구성 할 수 있습니다.예, 약간 사악한 일입니다) 실제로 해당 형식 XML : S를 사용하여 제공했습니다. 우리는하다 ~ 아니다 저장의 자동 형식을 시행하고 완전히 방해 받기를 원하지 않습니다. 우리는 모든 개발자를 올바른 방향으로 밀고 싶습니다. 호환성을 높이기 위해 주로 정의 된 규칙을 사용합니다. JCC.

다음은 중요한 부분 인 실제 빌드입니다. 우리는 자동 빌드를 수용하는 사람들이며 Hudson Continuous Integration Server. 이 이상의 구성에는 두 가지 중요한 부분이 있습니다.

CheckStyle 플러그인은 코드 스타일 시행 안내서의 마술사입니다.

  1. CVS에 코드를 저지른 후 Hudson Build가 트리거됩니다.
  2. 빌드가 성공적으로 완료된 후 (모든 단위 테스트 통과 등), CheckStyle은 실제 소스 파일을 검사합니다
  3. CheckStyle은 우리가 정의한 코드 기반 규칙 순위입니다.
  4. Continuous Integration Game은 CheckStyle의 결과를보고 코드의 관련 부분에 대한 소유권이있는 사람을위한 수상/요점을 확인합니다.
  5. 리더 보드는 시스템의 모든 통신기에 대한 총점을 보여줍니다

기본적으로 이것은 그것을 의미합니다 누구든지 CVS에 못생긴 코드를 사용하면 빌드 서버가 해당 사람의 포인트를 자동으로 줄입니다..

이것은 결국 우리 중 누구라도 Demeter, Cyclomatic Complexity 등과 같은 외관 및 OO 원칙 모두에서 일반 코드 품질을 기반으로 리더 보드에서 순위를 매길 수 있음을 의미합니다. 당연히 이것은 완전히 심각한 통계는 아니지만 그것은 다음과 같습니다. CI에서 빌드를 시작할 때 무언가 잘못을하고 있다는 좋은 표시는 포인트를 줄이지 않을 것입니다. 대부분의 커밋은 1 ~ 5 점입니다.

그리고 그것이 작동하고 있습니까? 일종의, 나는 내 작업에있는 우리 중 누구도 추악하거나 인재 할 수없는 코드를 쓰고 있다고 생각하지 않으며 개인적으로 나는 모든 종류의 점수를 사냥하는 것을 좋아하기 때문에 코드를 멋지게 만들고 내가 아는 모든 oo 패러다임을 따르는 코드를 만들도록 동기를 부여합니다.

그리고 회사로서 우리는 정말로 그것을 필요로합니까? 이 전체 답변을 읽음으로써 볼 수 있듯이 우리는 그것이 제기하는 발전에 대한 좋은 관행으로 간주 될 수 있다고 생각합니다.


#1: 관련 메모에서, 나는 2002 년부터 오늘날 그 표준을 사용했던 레거시 코드를 리팩토링했으며, 원래 형태로도 "나쁜"것처럼 보이지 않았으며 새로운 형태로 나쁘지 않습니다.

아니 정말.

실제로 일관되게 작동하도록 할 수 있고 코드를 배치하는 다른 스타일로 인해 플래그 코드가 변경되었습니다.

그러나 이것은 코딩 표준의 작은 부분 일뿐입니다. 여러 리턴 명령문, 3 원 운영자의 사용 여부 등을 다루지 않습니다.

상점이 사용하는 코딩 스타일이 개발 도구가 뒤 따르는 것과 동일하다면 항상 좋습니다.

그렇지 않으면, 이미 상점 표준을 따르는 큰 코드가있는 경우 두 가지 선택이있는 도구와 동일하지 않은 코드가 있습니다.

  1. 도구 표준을 따르도록 모든 코드를 수정하거나
  2. 기존 상점 표준을 유지하십시오.

많은 상점들이 후자를합니다. 어쨌든, 어떤 종류의 표준이 있어야하며 따라야합니다.

일부 개발 도구를 사용하면 표준을 조정할 수 있습니다. 경우에 따라 도구를 상점 표준과 일치시킬 수 있습니다.

팀의 모든 사람이 소스 코드를 "올바르게"보장 할 수 있다면 더 이상 그다지 중요하지 않을 것입니다. 그러나 나는 그렇게 할 수있는 시스템을 보지 못했습니다 - 당신은 그것의 일부를 수행 할 수 있습니다 (예 : 체크인/체크 아웃 전후에 개혁). 요즘에는 버전 제어, 외부 코드 검토 시스템으로 웹 인터페이스를 고려해야합니다. 버전 제어 시스템 등과 직접 상호 작용하십시오.

표준 코드 스타일의 주요 목적은 (IMHO) 모든 코드가 동일한 종류의 안내 원리를 사용하여 작성되기 때문에 리버스 엔지니어링을 시작하지 않고도 다른 팀원의 코드를 쉽게 읽을 수 있도록하는 것입니다. 들여 쓰기 및 괄호 배치는 이것에 대한 주요 교수형 인 것처럼 보이지만, 그것들은 매우 작고 내 의견으로는 코드를 일관성있게 만들어야 할 필요성의 다소 과장된 부분이 아닙니다.

불행히도 나는 소스 코드에 일관된 코딩 원칙을 자동으로 적용 할 수있는 도구를 알지 못합니다 ...

예, 균질 한 코드 기반을 갖기를 원한다면 코딩 스타일이 필요합니다. 이러한 코드 기반은 코드베이스의 일부의 개별 소유권을 방지하는 데 유용 할 수 있으며, 이는 사람들이 팀을 떠날 때 문제를 일으킬 수 있습니다. 크게 다른 스타일과 문제를 이해하는 데 문제가 있다고 상상할 수 없다면, 영어 텍스트가 다양한 커뮤니케이션에서 구성 할 수있는 모든 방법을 살펴보십시오. 모두 작성되었지만 트윗, 이메일, 문자 메시지, IM과 같은 상당히 다릅니다. , 게시판 게시물 등 및 글꼴, 대문자, 장식 등의 변경 사항.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top