Code Smell 133 - 하드코딩된 IF 조건
TL;DR: Don't leave a hardcoded mess on IFs.
문제
솔루션
문맥
iF 조건을 하드코딩하는 것은 .
물건을 정리해야 합니다.
샘플 코드
잘못된
private string FindCountryName (string internetCode)
{
if (internetCode == "de")
return "Germany";
else if(internetCode == "fr")
return "France";
else if(internetCode == "ar")
return "Argentina";
//lots of elses
else
return "Suffix not Valid";
}
오른쪽
private string[] country_names = {"Germany", "France", "Argentina"} //lots more
private string[] Internet_code_suffixes= {"de", "fr", "ar" } //more
private Dictionary<string, string> Internet_codes = new Dictionary<string, string>();
//There are more efficient ways for collection iteration
//This pseudocode is for illustration
int currentIndex = 0;
foreach (var suffix in Internet_code_suffixes) {
Internet_codes.Add(suffix, Internet_codes[currentIndex]);
currentIndex++;
}
private string FindCountryName(string internetCode) {
return Internet_codes[internetCode];
}
발각
[X] 자동
If/else 조건을 확인하여 하드 코딩된 조건을 감지할 수 있습니다.
태그
잘못된
private string FindCountryName (string internetCode)
{
if (internetCode == "de")
return "Germany";
else if(internetCode == "fr")
return "France";
else if(internetCode == "ar")
return "Argentina";
//lots of elses
else
return "Suffix not Valid";
}
오른쪽
private string[] country_names = {"Germany", "France", "Argentina"} //lots more
private string[] Internet_code_suffixes= {"de", "fr", "ar" } //more
private Dictionary<string, string> Internet_codes = new Dictionary<string, string>();
//There are more efficient ways for collection iteration
//This pseudocode is for illustration
int currentIndex = 0;
foreach (var suffix in Internet_code_suffixes) {
Internet_codes.Add(suffix, Internet_codes[currentIndex]);
currentIndex++;
}
private string FindCountryName(string internetCode) {
return Internet_codes[internetCode];
}
발각
[X] 자동
If/else 조건을 확인하여 하드 코딩된 조건을 감지할 수 있습니다.
태그
결론
과거에는 하드 코딩이 옵션이 아니었습니다.
최신 방법론을 사용하면 하드 코딩을 통해 학습한 다음 솔루션을 일반화하고 리팩토링합니다.
처지
Code Smell 36 - Switch/case/elseif/else/if 문
Maxi Contieri ・ 11월 28 '20 ・ 1분 읽기
#oop
#webdev
#tutorial
#codenewbie
코드 냄새 102 - 화살표 코드
Maxi Contieri ・ 2021년 11월 15일 ・ 2분 읽기
#oop
#javascript
#cleancode
#refactoring
더 많은 정보
Code Smell 36 - Switch/case/elseif/else/if 문
Maxi Contieri ・ 11월 28 '20 ・ 1분 읽기
코드 냄새 102 - 화살표 코드
Maxi Contieri ・ 2021년 11월 15일 ・ 2분 읽기
더 많은 정보
학점
Unsplash의 Jessica Johnston 님의 사진
Don't be (too) clever. My point was to discourage overly clever code because "clever code" is hard to write, easy to get wrong, harder to maintain, and often no faster than simpler alternatives because it can be hard to optimize.
Bjarne Stroustrup
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 133 - 하드코딩된 IF 조건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-133-hardcoded-if-conditions-53bi
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Don't be (too) clever. My point was to discourage overly clever code because "clever code" is hard to write, easy to get wrong, harder to maintain, and often no faster than simpler alternatives because it can be hard to optimize.
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
Reference
이 문제에 관하여(Code Smell 133 - 하드코딩된 IF 조건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-133-hardcoded-if-conditions-53bi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)