개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.23
오늘 읽은 범위
3장. 함수
책에서 기억하고 싶은 내용을 써보세요.
서술적인 이름ㅇ르 사용하라. 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면, 깨끗한 코드라 불러도 되겠다. 한 가지만 하는 작은 함수에 좋은 이름을 붙인다면 이런 원칙을 달성함ㅇ 있어 이미 절반은 성공했다. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다. 이름을 붙일 때는 일관성이 있어야 한다.
함수에서 이상적인 인수 개수는 0개다 다음은 1개(단항)이고, 다음은 2개(이항)이다. 3개(삼항)는 가능한 피하는 편이 좋다. 4개 이상은 특별한 이유가 필요하다. 특별한 이유가 있어도 사용하면 안 된다.
일반적으로 출력 인수는 피해야 한다. 함수에서 상태를 변경해야 한다면 함수가 속한 객체 상태를 변경하는 방식을 택한다.
함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야한다. 객체 상태를 변경하거나 아니면 객체 정보를 반환하거나 둘 중 하나다.
어쩌면 중복은 소프트웨어에서 모든 악의 근원이다. 많은 원칙과 기법이 중복을 없애거나 제어할 목적으로 나왔다.
소프트웨어러를 짜는 행위는 여느 글짓기와 비슷하다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다, 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 매서드를 줄이고 순서를 바꾼다.
master 프로그래머는 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수 인수는 삼항 이상이 되면 안 된다는 글을 보고 방금 내가 짠 인수가 4개 들어간 함수가 생각났다. 나름 문제 해결을 위해 고심하다가 내린 결론인데 나쁜 함수의 대표적 예라니! 다시 한 번 다른 방법으로 코드를 짜봐야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
사실 예시로 나온 함수들 무슨 언어를 쓴건지.. 하나도 이해할 수가 없었다...