문제

루틴, 절차, 방법 - 당신이 부르는 모든 것이 우리 개발자에게 중요한 빌딩 블록입니다. 당신은 어떤 단일 특성을 평가할 것입니다 가장 중요한 하나?

(답변 당 하나의 특성을 제공함으로써 개별적으로 투표 할 수 있습니다. 즉,이 질문의 목적은 하나의 특성을 결정하는 것이 아니라 오히려 강조하는 것입니다. 모든 중요한 것들.)

도움이 되었습니까?

해결책

가장 중요한 기준은 단일 목적을 가지고 있다는 것입니다.

그 후, 그것은 그 목적 (그리고 그 목적 만)을 올바르게 만족시킨다.

다른 팁

자체 주석 절차 이름.

예 : GetStorefromAddress getCarsbymake

쉽게 단위 테스트해야합니다.

루틴의 이름은 기능에 하나씩지도를합니다.

함수 X가 X와 Y 또는 대부분의 X를 얼마나 자주 수행하는지는 놀랍습니다.

거기 ~이다 좋은 루틴을 나쁜 일과 구별하는 단일 기준은 없습니다.

의 사이에 기준은 다음과 같습니다.

  • 개념적 무결성 : 단순한 짧은 형태, 한 문장 또는 단락으로 설명 할 수있는 일을합니다.
  • 느슨한 커플 링 : 동작은 주변 코드에서 진행되는 것에 민감하지 않습니다.
  • 합리적인 크기 : 긴 루틴은 읽고 이해하기가 더 어렵고 개념적 무결성이 우수 할 가능성이 적습니다.
  • Parnas의 기준 : 변경할 수있는 한 가지를 "숨기기"하므로 요구 사항 변경은 시스템의 나머지 부분에 제한된 영향을 미칩니다.

인간이 쉽게 읽고 이해할 수 있도록 설계되었습니다. 그 자리에 없으면 여기에 나열 될 다른 모든 훌륭한 속성을 갖도록 수정하기가 훨씬 어렵습니다.

그것이 시도하는 것의 수.

이것이 정확히 1이 아니라면 아마도 문제가있을 것입니다.

예상치 못한 부작용이 없어야합니다.

좋은 오류 처리 (신뢰성)

짧음

(이것은 반 펑크 대답으로 여겨졌지만 스스로 한 단어를 게시하지 못할 것입니다!)

원자력이어야합니다

코드 줄.

루틴을 사용한 후 필요한 편집 횟수를 추적해야합니다. '좋은'루틴은 편집이 거의 필요한 일 루틴입니다. '나쁜'루틴은 필요한 수정 사항이 필요한 경우 분명히 그 자체로 증명됩니다.

각 편집 후 업데이트되는 각 메소드 호출에 대한 주석 헤더로 쉽게 달성 할 수 있습니다.

한 가지 일을하거나 여러 가지를 다른 기능으로 위임합니다.

명확성 - 이해하기 쉽습니다

API의 일부로 루틴을 고려하면 이것이 더 쉽게 대답 할 수 있다고 생각합니다. 적어도 진정으로 유용한 시스템에 있지 않은 일상은 많지 않습니다. 솔직히, 나는 루틴을 작성할 때 고려해야 할 가장 중요한 것들이 다음과 같습니다.

  1. 직관 내 지침 세트는 얼마나 직관적인가?

  2. 직교성 내 루틴은 얼마나 직교입니까? 각각 하나의 특정 작업을 수행합니까, 아니면 같은 일을 할 수있는 여러 가지 (그러나 약간 다른) 방법이 있습니까? 있다면, 이것은 나쁘고 API를 재 설계해야 할 것입니다.

  3. 소형 간단한 작업을 수행하는 데 얼마나 많은 API가 필요합니까? 무언가를 끝내기 위해 많은 일을 배워야합니까, 아니면 직관적이고 강력한 일을하는 몇 가지 일상으로 충분할 수 있습니까? 특정 영역에 대한 균형을 맞추기 위해서는 직교성 으로이 것의 트레이드 오프를 평가해야합니다.

일상적인 이름에서, 당신은 루틴이하는 일을 말할 수 있습니다 (그리고 코드를 확인할 때 자신이 옳다는 것을 알게됩니다 ;-)

일상은 전체적으로 일관된 수준의 추상화를 사용합니다.

나는 잘 문서화 된 (그리고 실제로 시행 된) 사전 및 사후 조건을 말할 것입니다.

단일 리턴 포인트

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