코드 품질 향상, 관념에서 실천까지 - Clean Code 교육 요약
6080 단어 학습 노트
프로그래밍 가치관
이전에 나는 항상 좋은 코드를 간소화하는 것이 첫 번째라고 생각했다. 이렇게 해야만'우아하다'고 생각했다. 내가 20줄의 코드를 쓰는 기능은 다른 사람이 10줄로 실현할 수 있는 것이 바로 나보다 대단하다.그러나 프로젝트의 세계에서 프로그래머가 코드를 쓰는 것은 자신에게 보여주는 것이 아니라 뒤에 동료가 당신의 코드를 유지해야 한다는 것을 고려해야 한다.따라서 좋은 코드가 무엇인지 다시 정의해야 한다. 코드의 줄 수를 최소화하지 말고, 코드를 읽는 데 걸리는 시간을 최소화하는 것을 최우선으로 해야 한다.아래 나열된 조직 코드 지침을 통해 이러한 핵심 목표를 달성할 수 있습니다.
프로그래밍 기술(건제품)
다음은 코드의 질을 향상시키는 구체적인 기교를 소개한다.
1, 위구문 사용
Replace Nested Conditional with Guard Clauses (끼워 넣는 조건 표현식 대신 위문구) 의 정수는 특정한 부분에 특별한 중시를 한다는 것이다.그것은 읽는 사람에게 이런 상황은 매우 보기 드물기 때문에 만약 그것이 실제로 발생한다면 필요한 정리 작업을 하고 물러나라고 말했다.다음 두 가지 쓰기 방법을 비교하십시오.
// ,
double getPayAmount(){
double result;
if(_isDead){
result = deadAmount();
} else {
if (_isSeparated){
result = separatedAmount();
} else {
if (_isRetired){
result = retiredAmount();
} else {
result = normalPayAmount()
}
}
}
return result;
}
//
double getPayAmount(){
if(_isDead){
return deadAmount();
}
if(_isSeparated){
return separatedAmount();
}
if(_isRetired){
return retiredAmount();
}
return normalPayAmount();
}
이를 통해 알 수 있듯이 위문구를 이용하여 복잡한 조건 표현식을 여러 조건 표현식으로 나누자 구조가 많이 뚜렷해졌다.
2, 정상 코드와 비정상 처리 분리
먼저 너도 이런 코드를 썼는지 살펴보고 여러 층의 조건 표현식을 끼워 넣었는데, 단지 정상적인 조건하의 비공식 값을 얻기 위해서였다
//
queryCustCashAmout(){
QueryCustResponse response = thirdPartyFacade.getCustInfo();
if(response != null) {
CustomerLoanInfo cust = response.getCustLoanInfo();
if(cust != null){
return cust.getCashAmount();
}
}
return -1;
}
일종의 효과적인 방식은 정상적인 처리 프로세스와 이상한 프로세스를 분리하여 아래의 코드가 구조가 훨씬 뚜렷한지 보는 것이다
queryCustCashAmout(){
try{
QueryCustResponse response = thirdPartyFacade.getCustInfo();
CustomerLoanInfo cust = response.getCustLoanInfo();
return cust.getCashAmount();
}catch(Exception e){
log.error(' ',e);
return -1;
}
}
3, 제어 태그 제거
코드를 먼저 볼게요.
var remove_one = function(array,value_to_remove){
var index_to_remove = null;
for(var i=0; i< array.length; i++){
if(array[i] === value_to_remove){
if(array[i] === value_to_remove){
index_to_remove = i;
break;
}
}
}
if(index_to_remove !== null) {
array.splice(index_to_remove,1);
}
}
이 방법의 indexto_remove는 어떤 조작을 실행할지 여부를 판단하기 위한 제어 표시입니다.그것이 가져온 번거로움은 그것이 가져온 편리함을 훨씬 능가한다.코드에 제어 표시가 있는지 확인해 보세요. 조건 문구를 제거하면 정말 용도가 뚜렷해질 것입니다.
var remove_one = function(array,value_to_remove){
for(var i=0; i< array.length; i++){
if(array[i] === value_to_remove){
if(array[i] === value_to_remove){
array.splice(index_to_remove,1);
return;
}
}
}
}
4, 제3자 포장 방법
공정의 세계에서 수요는 항상 변하고 코드도 끊임없이 교체된다.당신이 사용하는 제3자 방법도 바뀔 수 있음을 감안하여 그것을 봉하여 제3자 코드가 바뀔 때 한 곳만 바꾸면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
axios 요청 차단, 응답 차단,router 내비게이션 수위axios 요청 차단: 요청 헤더에 token 등을 통일적으로 추가할 수 있습니다 axios 응답 차단: 로그인 판단 내비게이션 선행 수위beforeEach: 로그인 여부를 판단할 수 있지만, 응답으로 차단하는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.