뭐 이리 당연한 소리를 하냐 하는데 '보기에' 직관적이어야 한다는 것 외에 작명에도 '직관적으로' 접근하는게 좋다고 봄.
다 그렇지는 않겠지만 보통 깊게 생각하면 할 수록 어렵게 꼬아지고 점점 다 아닌 것 처럼 느껴져서 나중엔 이게 습관돼가지고 쉽게 작명할 수 있는 것도 어렵게 생각하게 되는 것 같어
그냥 이게 어떤 거다! 라는 게 적은 수의 단어 조합으로 완벽히 모든 걸 파악하게 할 필요는 없다고 생각한다. 왜냐하면 이미 그 의미를 파악해야하는 사람은 관련 지식이라던가 사전에 비슷한 걸 이미 봤을 것이기 때문임
예를 들어 리눅스 커널 소스도 보면 그냥 진짜 아주 일차원적으로 단순하게 작명한 게 많음.
그게 시스템적으로 엄청나게 복잡하고도 어려운 개념이 집약된 함수일지라도 일단은 술술 읽히는 단어의 단순한 조합으로 만듦.
어차피 커널 소스는 어느정도 운영체제 지식이 있다는 전제하에 볼 거니까 말이야.
오히려 이게 사전지식을 가지고 있다면 빠르게 의미파악 시키는 것에 도움이 된다고 본다. 단어 하나하나가 묵직하면 의미 잘못 이해하는 순간 더 헷갈리기 쉽상임. 읽기에도 당연히 더 피로하고 부담 됨.
대신 주석으로 이 함수는 어떤 것이며, 말로는 설명하기 힘든 건 적극적으로 예시까지 같이 써주는 게 가장 합리적이고 친절한 코드라고 생각한다.
verbose 하면서 서술식인 코드 vs simple 하면서 단순 객관적인 코드
다 그렇지는 않겠지만 보통 깊게 생각하면 할 수록 어렵게 꼬아지고 점점 다 아닌 것 처럼 느껴져서 나중엔 이게 습관돼가지고 쉽게 작명할 수 있는 것도 어렵게 생각하게 되는 것 같어
그냥 이게 어떤 거다! 라는 게 적은 수의 단어 조합으로 완벽히 모든 걸 파악하게 할 필요는 없다고 생각한다. 왜냐하면 이미 그 의미를 파악해야하는 사람은 관련 지식이라던가 사전에 비슷한 걸 이미 봤을 것이기 때문임
예를 들어 리눅스 커널 소스도 보면 그냥 진짜 아주 일차원적으로 단순하게 작명한 게 많음.
그게 시스템적으로 엄청나게 복잡하고도 어려운 개념이 집약된 함수일지라도 일단은 술술 읽히는 단어의 단순한 조합으로 만듦.
어차피 커널 소스는 어느정도 운영체제 지식이 있다는 전제하에 볼 거니까 말이야.
오히려 이게 사전지식을 가지고 있다면 빠르게 의미파악 시키는 것에 도움이 된다고 본다. 단어 하나하나가 묵직하면 의미 잘못 이해하는 순간 더 헷갈리기 쉽상임. 읽기에도 당연히 더 피로하고 부담 됨.
대신 주석으로 이 함수는 어떤 것이며, 말로는 설명하기 힘든 건 적극적으로 예시까지 같이 써주는 게 가장 합리적이고 친절한 코드라고 생각한다.
verbose 하면서 서술식인 코드 vs simple 하면서 단순 객관적인 코드
뭐 우스갯소리로 작곡가들이 진짜 고생고생하며 심혈을 기울여 오래 다듬은 음원이 오히려 실패하고 그냥 갑자기 생각나서 몇 분만에 끄적인 음원이 흥하는 경우가 있다는 얘기하기도 하잖아 이게 괜히 하는 얘기가 아니라 그 의미를 너무 압축하고 어렵게 담아내느라 오히려 독이 될 수 있다는 좋은 예인 것 같음
std::iota
이건 진짜 좀 오바지 싶음 ㅋㅋㅋㅋ C 표준 함수도 뒤로 가면 작명센스 좀 더 나아지긴 함
iota가 뭐의 약자임? input output task async ??ㅅㅂ
약자 아니고 무슨 라틴어일걸?
APL에서 그리스 문자 iota가 range임
https://stackoverflow.com/a/9244949
아 iota 구나 저건 진짜 뭐가 어원인지도 모르겠네
ㄴ 그냥 그리스 문자 요타임
주석으로 보강해야 한다는 논지가 있는데 주석은 코드와 같이 바뀌지 않게되는 경우가 많아서 오히려 주석을 피해야 한다는 관점도 있음. 이건 어떻게 생각함?
주석 자체를 작성하지 말자는 게 아니라 주석에 담길 정보가 변수명 같은 데로 옮겨가야 한다는 생각임
그래도 주석은 달아야겠지만 난 무조건 공감함. 무슨 win32 api처럼 극단적으로 하지만 않는다면 이름을 서술하는게 타이핑은 더 칠지라도 주석 자체도 줄이고, 코드 방치하다가 다시 보수해도 읽기 쉬워지니까
변수함수명 약어 쓸 때 특징 : 1-2달만 방치해도 자기가 쓴 코드도 못 읽음