Hacker News 의견
  • map, reduce, filter와 같은 함수형 프로그래밍 구조를 연결하는 것은 간결하지만, 긴 체인은 가독성을 해치는 경향이 있음

    • 이는 기사에서 암시된 바가 아님
    • 익숙하지 않아서 나쁘다고 생각하는 일반적인 불평처럼 느껴짐
    • 조금만 익숙해지면 다른 방법보다 읽고 쓰기 쉬움
    • 함수형 프로그래밍의 기본을 배우는 것이 중요함
    • Monad를 설명할 필요는 없지만, map과 filter를 무작위로 비난하지 않을 정도로 익숙해져야 함
  • 좋은 코드의 중요한 측면은 질적이고 문학적임

    • 수학적 사고방식을 가진 프로그래머와 학자들에게는 불편할 수 있음
    • 도스토옙스키와 우드하우스를 좋아하지만, 그들의 글은 매우 다름
    • 코드베이스의 스타일을 이해하는 데 시간이 걸림
  • 코드 읽을 때 가장 피로한 문제는 가변성임

    • 변수를 한 번만 "고정"할 수 있는 능력은 큰 선물임
    • 메서드를 이해하는 과정은 0%에서 100%로 단조롭게 증가해야 함
    • GOTOs가 해로운 이유는 가변 변수의 상태를 알기 어려워서임
  • 작은 함수와 적은 변수는 일반적으로 읽기 쉬움

    • "가독성"에 대한 초점이 미세 가독성에 치우쳐 있음
    • 이는 코드가 지나치게 분열되게 만듦
    • APL 계열 언어는 반대 극단에 있음
  • TypeScript는 코드 읽기 어렵게 만듦

    • 데이터 모델이 "원자적"으로 유지되면 괜찮음
    • 타입 유추에 의존하면 필드를 원래 위치로 추적하기 어려움
  • getOddness4 함수는 비대칭성을 줌

    • getOddness2 함수는 대칭적 선택을 제공함
  • 기사는 흥미롭지만 만족스럽지 않음

    • 언어 특정 연산자나 구문 설탕 사용을 피하라는 의견에 동의하지 않음
    • map, reduce, filter 같은 구조는 잘 사용하면 다른 연산자를 대체하고 "볼륨"을 줄임
  • 가독성을 정의하려는 시도는 칭찬할 만함

    • 많은 사람들에게 테스트를 통해 가독성의 실제 차원을 찾을 수 있을 것임
  • 코드 복잡성은 구문 트리의 크기로 표현됨

    • 지역적 복잡성 감소가 전체 복잡성에 큰 영향을 주지 않음
  • 긴 함수 체인이나 콜백은 작은 그룹으로 나누고 잘 명명된 변수를 사용하는 것이 좋음

    • 두 버전 모두 효율성 면에서 동일함
    • 차이는 컴파일러에 있음