▲GN⁺ 2025-03-12 | parent | ★ favorite | on: 코드 가독성을 떨어뜨리는 시각적 복잡성 패턴 (2023)(seeinglogic.com)Hacker News 의견 map, reduce, filter와 같은 함수형 프로그래밍 구조를 연결하는 것은 간결하지만, 긴 체인은 가독성을 해치는 경향이 있음 이는 기사에서 암시된 바가 아님 익숙하지 않아서 나쁘다고 생각하는 일반적인 불평처럼 느껴짐 조금만 익숙해지면 다른 방법보다 읽고 쓰기 쉬움 함수형 프로그래밍의 기본을 배우는 것이 중요함 Monad를 설명할 필요는 없지만, map과 filter를 무작위로 비난하지 않을 정도로 익숙해져야 함 좋은 코드의 중요한 측면은 질적이고 문학적임 수학적 사고방식을 가진 프로그래머와 학자들에게는 불편할 수 있음 도스토옙스키와 우드하우스를 좋아하지만, 그들의 글은 매우 다름 코드베이스의 스타일을 이해하는 데 시간이 걸림 코드 읽을 때 가장 피로한 문제는 가변성임 변수를 한 번만 "고정"할 수 있는 능력은 큰 선물임 메서드를 이해하는 과정은 0%에서 100%로 단조롭게 증가해야 함 GOTOs가 해로운 이유는 가변 변수의 상태를 알기 어려워서임 작은 함수와 적은 변수는 일반적으로 읽기 쉬움 "가독성"에 대한 초점이 미세 가독성에 치우쳐 있음 이는 코드가 지나치게 분열되게 만듦 APL 계열 언어는 반대 극단에 있음 TypeScript는 코드 읽기 어렵게 만듦 데이터 모델이 "원자적"으로 유지되면 괜찮음 타입 유추에 의존하면 필드를 원래 위치로 추적하기 어려움 getOddness4 함수는 비대칭성을 줌 getOddness2 함수는 대칭적 선택을 제공함 기사는 흥미롭지만 만족스럽지 않음 언어 특정 연산자나 구문 설탕 사용을 피하라는 의견에 동의하지 않음 map, reduce, filter 같은 구조는 잘 사용하면 다른 연산자를 대체하고 "볼륨"을 줄임 가독성을 정의하려는 시도는 칭찬할 만함 많은 사람들에게 테스트를 통해 가독성의 실제 차원을 찾을 수 있을 것임 코드 복잡성은 구문 트리의 크기로 표현됨 지역적 복잡성 감소가 전체 복잡성에 큰 영향을 주지 않음 긴 함수 체인이나 콜백은 작은 그룹으로 나누고 잘 명명된 변수를 사용하는 것이 좋음 두 버전 모두 효율성 면에서 동일함 차이는 컴파일러에 있음
Hacker News 의견
map, reduce, filter와 같은 함수형 프로그래밍 구조를 연결하는 것은 간결하지만, 긴 체인은 가독성을 해치는 경향이 있음
좋은 코드의 중요한 측면은 질적이고 문학적임
코드 읽을 때 가장 피로한 문제는 가변성임
작은 함수와 적은 변수는 일반적으로 읽기 쉬움
TypeScript는 코드 읽기 어렵게 만듦
getOddness4 함수는 비대칭성을 줌
기사는 흥미롭지만 만족스럽지 않음
가독성을 정의하려는 시도는 칭찬할 만함
코드 복잡성은 구문 트리의 크기로 표현됨
긴 함수 체인이나 콜백은 작은 그룹으로 나누고 잘 명명된 변수를 사용하는 것이 좋음