조기 반품 패턴을 사용하는 이유는 무엇입니까?
Thanks to Sarah Kilian @rojekilian for making this photo available freely on Unsplash 🎁
처음에는 초기 수익을 사용하는 것을 좋아하지 않았지만 시간이 흐르고 팀원들과 짝을 이루면서 이 간단한 패턴이 얼마나 강력한지 이해했다고 말하면서 이 기사를 시작하고 싶습니다.
나는 프로그래머로서 첫해에 나쁜 습관을 배웠고 새로운 습관을 개발하는 것은 괜찮습니다. 일상 생활에서 예를 들어 보겠습니다.
간단한 코드가 얼마나 빨리 모든 것을 망칠 수 있습니까?
async function getDeliveryType(prod: Product, user: Client) {
if (prod.isValid()) {
if (user.isValid()) {
const address = await getClientAddress(user.id);
if (address) {
const fee = await calculateFee(user, address);
if (fee > 0) {
return 'delivery';
} else {
return 'online';
}
} else {
throw new Error();
}
} else {
throw new Error();
}
} else {
throw new Error();
}
}
위의 코드는 배송 유형을 파악하기 위한 간단한 아이디어였으며 코드를 엉망으로 만들지 않고 조기 반품을 적용하는 힘을 이해하는 데 도움이 되는 완벽한 예입니다.
코드에서 무엇을 관찰할 수 있습니까?
조기 귀국이란 무엇입니까?
함수와 메서드의 가독성을 유지하기 위한 접근 방식입니다.
😂 네, 대답은 매우 간단합니다.
함수나 메서드를 작성할 때 조기 반환이란 기대한 긍정적인 결과가 함수의 끝에 반환되는 것을 의미하며 조건이 충족되지 않으면 나머지 코드는 예외를 반환하거나 throw하여 실행을 종료합니다.
function sayMyName(name: string): string {
if (!name || name.length < 0) {
return;
}
return `Hello, ${name}`
}
초기 반환 패턴을 사용하도록 코드 리팩터링
내가 말했듯이 너무 많은 if-else는 코드를 따라가기 어렵게 만들 수 있습니다. 들여쓰기가 "이 코드의 기능"을 이해하는 데 집중하는 데 도움이 되기 때문에 이 접근 방식이 마음에 듭니다. "여기서 무슨 일이 일어나고 있습니까?"
예제 코드를 리팩토링해 봅시다.
async function getDeliveryType(prod: Product, user: Client) {
if (!prod.isValid()) {
throw new Error();
}
if (!user.isValid()) {
throw new Error();
}
const address = await getClientAddress(user.id);
if (!address) {
throw new Error();
}
const fee = await calculateFee(user, address);
if (fee > 0) {
return "delivery";
}
return "online";
}
지금 우리는 무엇을 관찰할 수 있습니까?
결론
스타일 가이드라인으로 채택하는 것을 추천하지만, 이는 주관적인 것이므로 사용 여부는 귀하의 결정입니다.
Reference
이 문제에 관하여(조기 반품 패턴을 사용하는 이유는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/malaquiasdev/why-i-like-to-use-early-returns-pattern-52b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)