삼항 문을 단계적으로 중단하는 이유

나는 약간의 결박에 있다. 소프트웨어 개발 경력의 아주 초기에 저는 삼항문(ternary statements)이라고 불리는 것에 대해 배웠고 이것이 가장 멋진 것이라고 생각했습니다. 나는 그것들을 모든 곳에서 사용하기 시작했지만 지금은 생각이 다릅니다. 그래도 잠시 뒤로 물러나자.

삼항문이란 무엇입니까?



삼항 문은 (간단히 말해서) 다음과 같은 if 문 바로 가기입니다.

const val = "test";
const showTest = val == "test" ? "The value was a test value" : "The value was not a test value";


(삼항 연산자에 대해 자세히 알아보려면 이 MDN 문서로 이동하십시오: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator )

코드가 다음으로 번역되는 일반 영어로 말함:
IF val은 "test"의 값과 같습니다.
그런 다음 변수 showTest를 "값은 테스트 값이었습니다"로 설정합니다.
ELSE 변수 showTest를 "값이 테스트 값이 아닙니다"값으로 설정합니다.

대안은 무엇입니까??



내 경력 초기에 이것은 절대적인 신의 선물처럼 보였습니다. 대체 코드는 다음과 같습니다.

const val = "test";
let showTest;
if (val == "test") {
    showTest = "The value was a test value";
} else {
    showTest = "The value was not a test value";
}


그리고 내가 초기에 했던 것처럼 더 많은 코드 줄을 싫어한다면 이것은 아무 생각도 하지 않는 것처럼 보입니다. 2선 솔루션 대 7선 솔루션은 실제로 의심의 여지가 없습니다.

그래서 문제가 무엇입니까?



처음에 내가 바인드에 있다고 언급했던 것을 기억하세요...여기 바인드가 있습니다.

내가 구축한(지금 내가 일하는 회사를 위해 유지 관리 작업을 하고 있는) 애플리케이션에서 나는 모든 곳에서 삼항문을 사용했습니다. 나는 내가 할 수있는 모든 것을 절대적으로 사용했습니다. 코드 줄 수가 적죠? 글쎄, 나는 당신의 앱에서 코드 라인에 대해 신경을 쓰는 유일한 것은 바로 여기 이 웹사이트라는 것을 깨달았습니다.

https://linesofcode.app

게다가 코드 줄을 줄이는 것이 항상 최선은 아닙니다. 사실, 나는 이제 애플리케이션으로 돌아가서 삼항문을 약간 리팩토링하려고 하는 두 가지 문제에 봉착합니다.
  • 논리를 변경하는 데 필요한 정신적 오버헤드.

  • 삼항 연산자는 if의 각 블록에 대해 하나의 작업만 지원합니다. 따라서 위의 코드에서 내가 처음에 하고 싶었던 것은 showTest 변수를 문자열로 설정하는 것뿐이었습니다. 하지만 이제 val이 동일한 테스트를 수행하는 경우에도 함수를 실행하고 싶다면 어떻게 해야 할까요? 나는 돌아가서 그것이 무엇을하고 있었는지 기억하고 왜 다른 조치가 필요하지 않다고 생각했는지 기억한 다음 어쨌든 게시 한 두 번째 예제처럼 보이도록 리팩토링해야합니다.
  • 코드 가독성의 뚜렷한 부족

  • 몇 줄의 코드로 너무 많은 작업을 수행하는 이와 같은 코드는 가독성 면에서 실제로 광택을 잃습니다. 더 잘 스캔할 수 있지만 가독성과 관련하여 다른 예제에서는 제공하지 않는 정신적 블록을 제공하기도 합니다.

    그래서 무엇?



    대체로, 나는 아마 여전히 삼항 연산자를 사용할 것입니다... 내가 말한 모든 후에도. 왜요? 모든 일이 그러하듯 그들에게도 반드시 때가 있고 장소가 있기 때문입니다. 내가 일하는 곳에서 여기서 배운 것은 시간과 장소가 코드베이스에 흩어져 있지 않고 127줄 파일을 122줄 파일로 줄이려고 한다는 것입니다.

    삼항 연산자에 대해 어떻게 생각하십니까?

    좋은 웹페이지 즐겨찾기