코드 정리 팁: 매개변수를 일관된 순서로 유지

3024 단어 cleancode
관련 함수 세트가 있는 경우 항상 일관된 매개변수 순서를 사용하십시오.

이 나쁜 예를 들면 다음과 같습니다.

IEnumerable<Section> GetSections(Context context);

void AddSectionToContext(Context context, Section newSection);

void AddSectionsToContext(IEnumerable<Section> newSections, Context context);

AddSectionToContextAddSectionsToContext에 전달된 매개변수의 순서를 확인하십시오.

상당히 혼란스럽죠?



확실히, 매개변수의 순서가 독자가 기대하는 것과 다르기 때문에 코드를 이해하기가 더 어렵습니다.

그러나 더 나쁜 점은 이 문제는 특히 매개변수가 동일한 유형일 때 찾기 어려운 버그로 이어질 수 있다는 것입니다.

다음 예를 생각해 보십시오.

IEnumerable<Item> GetPhotos(string type, string country);

IEnumerable<Item> GetVideos(string country, string type);


글쎄, 무엇이 잘못 될 수 있습니까?!?

가능한 문제를 방지하는 두 가지 방법이 있습니다.
  • 일관된 순서 사용: 예를 들어 type는 항상 첫 번째 매개변수
  • 입니다.
  • 대신 개체 전달: 코드를 조금 더 추가하지만 이러한 문제를 방지할 수 있습니다
  • .

    이 코드 냄새에 대해 자세히 알아보려면 Maxi Contieri의 this article을 확인하십시오!

    이 기사는 Code4IT에 처음 게재되었습니다.

    결론



    요약하자면, 항상 매개변수의 순서에 주의하십시오!
  • 항상 같은 순서로 유지
  • 이해하기 쉬운 순서 사용(최소한의 놀라움의 원칙을 기억하십니까?)
  • 필요한 경우 개체를 대신 사용합니다.

  • 👉 토론하거나 아래 댓글 섹션에서 논의합시다!

    🐧

    좋은 웹페이지 즐겨찾기