코드 냄새 149 - 선택적 연결
10283 단어 beginnersprogrammingjavascriptwebdev
TL;DR: Avoid Nulls and undefined. If you avoid them you will never need Optionals.
문제
솔루션
문맥
Optional Chaining , 옵션, 병합 및 기타 여러 솔루션은 악명 높은 null을 처리하는 데 도움이 됩니다.
코드가 성숙하고 강력하며 null이 없으면 사용할 필요가 없습니다.
샘플 코드
잘못된
const user = {
name: 'Hacker'
};
if (user?.credentials?.notExpired) {
user.login();
}
user.functionDefinedOrNot?.();
// Seems compact but it is hacky and has lots
// of potential NULLs and Undefined
오른쪽
function login() {}
const user = {
name: 'Hacker',
credentials: { expired: false }
};
if (!user.credentials.expired) {
login();
}
// Also compact
// User is a real user or a polymorphic NullUser
// Credentials are always defined.
// Can be an instance of InvalidCredentials
// Assuming we eliminated nulls from our code
if (user.functionDefinedOrNot !== undefined) {
functionDefinedOrNot();
}
// This is also wrong.
// Explicit undefined checks are yet another code smell
발각
[X] 자동
이것은 언어 기능입니다.
우리는 그것을 감지하고 제거할 수 있습니다.
태그
잘못된
const user = {
name: 'Hacker'
};
if (user?.credentials?.notExpired) {
user.login();
}
user.functionDefinedOrNot?.();
// Seems compact but it is hacky and has lots
// of potential NULLs and Undefined
오른쪽
function login() {}
const user = {
name: 'Hacker',
credentials: { expired: false }
};
if (!user.credentials.expired) {
login();
}
// Also compact
// User is a real user or a polymorphic NullUser
// Credentials are always defined.
// Can be an instance of InvalidCredentials
// Assuming we eliminated nulls from our code
if (user.functionDefinedOrNot !== undefined) {
functionDefinedOrNot();
}
// This is also wrong.
// Explicit undefined checks are yet another code smell
발각
[X] 자동
이것은 언어 기능입니다.
우리는 그것을 감지하고 제거할 수 있습니다.
태그
결론
많은 개발자는 null 처리로 코드를 오염시키는 것이 안전하다고 느낍니다.
실제로 이것은 NULL을 전혀 처리하지 않는 것보다 안전합니다.
Nullish Values , Truthy 및 Falsy도 코드 냄새입니다.
우리는 더 높은 목표를 세우고 더 깨끗한 코드를 만들어야 합니다.
장점: 코드에서 모든 null을 제거합니다.
단점: 옵셔널 체이닝 사용
못생긴: null을 전혀 처리하지 않음
처지
코드 냄새 145 - 단락 해킹
Maxi Contieri ・ 6월 30일 ・ 2분 읽기
#webdev
#beginners
#programming
#tutorial
코드 냄새 12 - Null
Maxi Contieri ・ 2020년 10월 31일 ・ 2분 읽기
#codenewbie
#tutorial
#oop
Code Smell 69 - Big Bang (JavaScript Ridiculous Castings)
Maxi Contieri ・ 2021년 5월 4일 ・ 2분 읽기
#codenewbie
#oop
#programming
#webdev
더 많은 정보
코드 냄새 145 - 단락 해킹
Maxi Contieri ・ 6월 30일 ・ 2분 읽기
#webdev
#beginners
#programming
#tutorial
코드 냄새 12 - Null
Maxi Contieri ・ 2020년 10월 31일 ・ 2분 읽기
#codenewbie
#tutorial
#oop
Code Smell 69 - Big Bang (JavaScript Ridiculous Castings)
Maxi Contieri ・ 2021년 5월 4일 ・ 2분 읽기
#codenewbie
#oop
#programming
#webdev
더 많은 정보
Null: 10억 달러의 실수
Maxi Contieri ・ 11월 18 '20 ・ 6분 읽기
#codenewbie
#tutorial
#programming
#webdev
성가신 IF를 영원히 없애는 방법
Maxi Contieri ・ 2020년 11월 9일 ・ 5분 읽기
#oop
#programming
#codenewbie
#tutorial
WAT?
학점
사진 제공: engin akyurt on Unsplash
He who fights with monsters might take care lest he thereby become a monster. And if you gaze for long into an abyss, the abyss gazes also into you.
니체
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(코드 냄새 149 - 선택적 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-149-optional-chaining-jk
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
He who fights with monsters might take care lest he thereby become a monster. And if you gaze for long into an abyss, the abyss gazes also into you.
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(코드 냄새 149 - 선택적 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-149-optional-chaining-jk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)