Articles

최고의 코드를 작성하는 방법

주 제:Coding conventions

이 섹션에서도 정말 필수 코딩,로 맥코넬 points out:”설정 프로그래밍 규칙을 시작하기 전에 프로그래밍입니다. 나중에 일치하도록 코드를 변경하는 것은 거의 불가능합니다.”

로 나열의 끝 근처에 Coding conventions,다른 규칙에 대한 다양한 프로그래밍 언어,그래서 될 수 있는 역효과 동일하게 적용 규칙에 따른 언어입니다. 모든 프로그래밍 언어에 대해 하나의 특정 코딩 규칙이 없다는 점에 유의하는 것이 중요합니다. 모든 조직에는 각 유형의 소프트웨어 프로젝트에 대한 사용자 정의 코딩 표준이 있습니다. 따라서 프로그래머가 소프트웨어 프로젝트가 시작되기 전에 특정 코딩 지침 세트를 선택하거나 구성하는 것이 필수적입니다. 일부 코딩 규칙은 일반적이며 특정 프로그래밍 언어로 작성된 모든 소프트웨어 프로젝트에는 적용되지 않을 수 있습니다.

사용을 코딩하는 규칙은 경우 특히 중요한 프로젝트를 포함 하나 이상의 프로그래머(가 있었 프로젝트의 수천 프로그래머). 프로그래머가 모든 코드가 동일한 규칙을 따르는 경우 다른 사람이 작성한 코드를 읽는 것이 훨씬 쉽습니다.

나쁜 코딩 규칙의 몇 가지 예를 들어,Roedy Green 은 유지 관리 할 수없는 코드를 생성하는 방법에 대한 긴(혀-뺨)기사를 제공합니다.

CommentingEdit

인해 시간 제한 또는 열정적하려는 프로그래머에 대한 즉각적인 결과를 자신의 코드,코멘트는 코드 종종이트할 수 있습니다. 프로그래머의 작업 팀으로 해야 그것을 발견 나를 떠나 의견 뒤에 때문에 일반적으로 코딩과 사이클,또 한 사람 이상에서 작동할 수 있는 특정 모듈이 있습니다. 그러나 일부 주석은 동일한 모듈에서 작업하는 개발자 간의 지식 이전 비용을 줄일 수 있습니다.

컴퓨팅 초기에 한 가지 주석 연습은 다음과 같은 간단한 설명을 남기는 것이 었습니다:

  1. 모듈의 이름
  2. 목적이 모듈의
  3. Description 모듈의
  4. 본래 저자
  5. 수정
  6. 저자는 수정한 코드에 대한 설명 그것이 왜 변경되었습니다.

“모듈에 대한 설명”은 가능한 한 간단해야하지만 명확성과 이해력을 희생하지 않아야합니다.

그러나 마지막 두 항목을 주로 사용하여 도래의 개정 제어 시스템입니다. 수정 및 그 저작자는 주석을 사용하는 것이 아니라 그러한 도구를 사용하여 안정적으로 추적 할 수 있습니다.

또한,복잡한 경우에 논리가 사용되는,그것은 좋은 연습에 코멘트를 남겨”블록”근처에는 부분이 그래서 다른 프로그래머가 이해할 수 있는 정확히 무슨 일이 일어나고있다.

단위 테스트는 코드를 사용하려는 방법을 보여주는 또 다른 방법 일 수 있습니다.

명 conventionsEdit

참조:헝가리 표기

의 사용을 적당한 이름 지정 규칙으로 간주 좋습니다. 때로는 프로그래머가 X1,Y1 등을 사용하는 경향이 있습니다. 변수로 그리고 의미있는 것으로 대체하는 것을 잊어 버려 혼란을 야기합니다.

일반적으로 설명적인 이름을 사용하는 것이 좋은 관행으로 간주됩니다.

예:변수를 복용량으로 매개변수에 대한 이름을 지정할 수 있습니다 TrkWeight 또는 TruckWeightKilograms,와 TruckWeightKilograms 는 것이 바람직 하나 때문에,그것은 첫 눈에 알아볼 수 있습니다. 변수의 CamelCase 이름 지정을 참조하십시오.

코드를 simpleEdit

프로그래머가 작성하는 코드는 간단해야합니다. 복잡한 논리를 달성하기위한 간단한 일이 한 최소로 유지 될 때문에 코드를 수정할 수도 있습니다 다른 프로그래머이다. 한 프로그래머가 구현 한 논리는 다른 프로그래머에게 완벽한 이해가되지 않을 수 있습니다. 따라서 항상 코드를 가능한 한 간단하게 유지하십시오.

예를 들어,이러한 상응하는 라인의 C 코드:

if (hours < 24 && minutes < 60 && seconds < 60){ return true;}else{ return false;}
if (hours < 24 && minutes < 60 && seconds < 60) return true;else return false;
return hours < 24 && minutes < 60 && seconds < 60;

1 에 접근하는 훨씬 더 일반적으로 사용되는,상당히 큰 것보다 3. 특히,소비 5 배 더 많은 화면에 수직공간(라),97 자 대 52(지만 편집 툴을 줄일 수 있는 차이에는 실제 입력). 그러나 논쟁의 여지가 있지만,이는”더 간단합니다”. 첫 번째는 명시 적 if/then else 를 가지고 있으며 명시 적 반환 값은 분명히 각각과 연결되어 있습니다. 두 번째는 단지 중괄호를 버리고 개념적 복잡성의 변화가 거의없는”수직”크기를 반으로 자릅니다. 대부분의 언어에서”return”문 될 수도 추가되기 전에 선을 가져,”수직”크기만 하나 더 많은 선 3 형태입니다.

세 번째 형태는 분명히 크기를 최소화하지만 복잡성을 증가시킬 수 있습니다: “True”및”false”값을 암시 적으로 남겨두고”조건”및”반환 값”의 개념을 혼합합니다. 그것은 가능성이 분명하는 대부분의 프로그래머,하지만 초보자도 없는 즉시는 것을 이해하는 결과를 평가하는 조건은 실제로 값(Boolean 유형의,또는 그에 상응하는 언어에 상관없이),따라서 조작할 수 있거나 반환됩니다. 더 현실적인 예는,제 3 양식 문제가 있으로 인해 선행 연산자는,아마도 반환하는 예상치 못한 유형,이전의 형태에서 어떤 언어를 보고서는 오류가 있습니다. 따라서,”단순하게는”단지의 문제이지만,길이의 논리적 개념 및 구조물;코드 짧은 할 수 있습니다 그것은 미만 또는 더 복잡합니다.

장황한 대안을 사용하는 크고 수명이 긴 프로그램의 경우 팽창에 기여할 수 있습니다.

소형화는 코더가 페이지 당 더 많은 코드를 볼 수있게하여 스크롤 제스처 및 키 입력을 줄일 수 있습니다. 주어진 얼마나 많은 시간 코드에서도 볼 수 있는 경우 프로세스의 쓰기고 유지할 수 있습량을 크게 절감 프로그래머 키 입력에서 생활의 코드입니다. 이 보이지 않을 수 있습니다 중요한 학생에게 첫 번째 학습 프로그램이지만,때를 생산하고 유지하는 큰 프로그램의 감소는 얼마나 많은 라인의 코드가 수 이상의 코드에 맞게 스크린,보조 코드 단순화할 수 있 생산성을 향상시키고 또한을 줄이는 손가락,손목하고 눈은 일반적인 의료 문제에 의해 고통을 생산 코더와 정보를 노동자입니다.

Terser 코딩은 더 적은 심볼을 처리해야하므로 컴파일 속도가 매우 빠릅니다. 또한,3rd 접근을 허용할 수 있습 유사한 라인의 코드를 더욱 쉽게 비교,경우에 특히 많은 이러한 구조에서 나타날 수 있는 하나의 화면에서 동일한 시간입니다.

마지막으로,매우 terses 레이아웃을 더 잘 활용하는 현대적인 와이드 스크린 컴퓨터 디스플레이에 따라,모니터 레이아웃 및 설정할 수 있습니다. 과거에 스크린에 제한되었을 40 또는 80 문자(그러한 제한 유래까지 이전:원고를 인쇄된 책,심지어 스크롤하기 위해,천년용되는 매우 짧은 줄이십시오(예를 들어 구텐베르크 성경). 현대 화면은 200 개 이상의 문자를 쉽게 표시 할 수 있으므로 매우 긴 줄이 가능합니다. 대부분의 현대적인 코딩 스타일과 표준은 그 전체 너비를 차지하지 않습니다. 따라서 화면만큼 넓은 하나의 창을 사용하는 경우 사용 가능한 많은 공간이 낭비됩니다. 에 다른 손으로 여러 윈도우를 사용하거나 IDE 또는 다른 도구를 다양한 정보 측면에서 창을 사용할 수 있는 폭를 위해 코드에서는 범위에서 익숙한 이전 시스템입니다.

인간의 시각 시스템이 선 길이에 크게 영향을 받는다는 점도 주목할 가치가 있습니다; 매우 긴 줄은 읽기 속도를 약간 증가 시키지만 이해력을 감소시키고 눈 추적 오류에 추가됩니다. 일부 연구에서는 더 이상인 요금 더 나은 온라인상에서의 인쇄,그러나 이것은 여전히 유일까지 간 약 10 인치,그리고 주로 원 속도의 읽기 소중히 생각하세요?

PortabilityEdit

프로그램 코드가 포함되어 있지 않아야 합”하드 코딩”(문자)값을 참조하고 환경 변수,같은 절대적인 파일에 경로,파일의 이름,사용자 이름,호스트명,IP 주소,Url,UDP/TCP 포트가 있습니다. 그렇지 않으면 응용 프로그램이 예상과 다른 디자인을 가진 호스트에서 실행되지 않습니다. 주의깊은 프로그래머들은 이와 같은 변수를 변수화와 구성 호스팅 환경에 대한 외부 응용 프로그램의 적절한(예를 들어 재산에 있는 파일은 응용 프로그램 서버에서,또는 데이터베이스에서). “단일 정의 지점”(SPOD)의 만트라를 비교하십시오.

연장으로,리소스 그러한 XML 파일로 포함하고 있어야 합 변수가 아닌 문자 값,그렇지 않으면 응용 프로그램 될 수 없 휴대용하는 또 다른 환경없이 편집 XML 파일이 있습니다. 예를 들어,J2EE 응용 프로그램 실행 중인 응용 프로그램에서,서버에 같은 환경에 매개 변수를 정의할 수 있습의 범위 내에서 JVM 응용 프로그램을 얻어야 하는 값입니다.

ScalabilityEdit

디자인 코드와 확장성을 디자인으로 목표이기 때문에 매우 자주에서 소프트웨어 프로젝트,새로운 기능은 항상 프로젝트에 추가가 더 크다. 따라서,시설의 새로운 기능을 추가하여 소프트웨어 코드 베이스가 귀중한 방법을 쓰는 소프트웨어

ReusabilityEdit

다시 사용하기가 매우 중요한 디자인 목표는 소프트웨어 개발. 다시 상처를 사용하는 개발 비용을 절감하고 또한 감소시에 대한 개발 경우에는 구성 요소 또는 모듈은 다시 사용이 이미 테스트합니다. 매우 자주,소프트웨어 프로젝트를 시작으로 기존의 기준을 포함하는 프로젝트에서 이전 버전에 따라 프로젝트의 많은 기존 소프트웨어 모듈과 구성품은 재사용을 줄여 개발하고 테스트하는 시간이 따라서 확률을 증가를 제공하는 소프트웨어에서 프로젝트 일정입니다.

briefEdit 의 건설 지침

위의 모든 것에 대한 일반적인 개요: