본문 바로가기

WEB/Clean Code14

[Clean Code] 3장. 함수 Clean Code 3장 (함수) 작게 만들어라! 함수를 만드는 규칙은 작게 만드는것이다. 20줄도 길다. 이 책의 저자 켄트벡은 java swing의 함수들이 2~3줄 이었다고 한다. (이게 닌자코딩아닌가?) if/else, while문에 들어가는 블록은 한 줄이어야 한다. 함수를 잘 만드는 원칙 함수는 한가지를 해야한다. 그 한 가지를 잘 해야한다. 그 한가지만을 해야한다. 워렌버핏의 주식 투자원칙이 생각나는 말인데, 결론은 제발 한가지만 하자 인것으로... 함수 당 추상화 수준은 하나로! (이해 좀 더 필요) getHtml()은 추상화 수준이 높다. String pagePathName = PathParser.render(pagepath); 는 추상화 수준이 중간이다. .append('\n&#.. 2022. 1. 22.
[Clean Code] 3장. 함수 Clean Code 3장 (함수) 작게 만들어라! 함수를 만드는 규칙은 작게 만드는것이다. 20줄도 길다. 이 책의 저자 켄트벡은 java swing의 함수들이 2~3줄 이었다고 한다. (이게 닌자코딩아닌가?) if/else, while문에 들어가는 블록은 한 줄이어야 한다. 함수를 잘 만드는 원칙 함수는 한가지를 해야한다. 그 한 가지를 잘 해야한다. 그 한가지만을 해야한다. 워렌버핏의 주식 투자원칙이 생각나는 말인데, 결론은 제발 한가지만 하자 인것으로... 함수 당 추상화 수준은 하나로! (이해 좀 더 필요) getHtml()은 추상화 수준이 높다. String pagePathName = PathParser.render(pagepath); 는 추상화 수준이 중간이다. .append('\n&#.. 2022. 1. 22.
[Clean Code] 2장. (의미있는 이름, 요약 : 닌자코딩 금지) 의도를 분명히 밝혀라 변수, 함수, 클래스명을 보고 주석이 필요 없는 이름이 중요하다 (진짜다) int elapsedTimeInDays; int d; or int time; elaspedTimeInDays가 훨씬 직관적이다. x[0] == 1 대신 flag[SELECTED] == 1 이 좀 더 직관적이다. (매우 인정) 의도를 함축하지마라 (닌자코딩 금지, 1장에서도 언급됨) 결론 : 읽는 사람이 알도록 이름을 지어라. 발음하기 쉬운 이름을 사용하라 제니md흠스 변수좀 고쳐주세요! private Date genymdhms; // 이게 사람이 할짓인가? 실화를 바탕으로 재구성(generate date, year, month, day, hour, min, sec) private Date generationT.. 2022. 1. 1.
[Clean Code] 1장. 깨끗한 코드 좋은 팀원들을 만나서 함께 스터디를 하면서 기록을 하게 됐습니다. 제가 발표할 자료들을 짧게 요약한 파일입니다. 1회독이라 이해가 잘못된 부분이 있을 수 있습니다. 언제든지 비난, 비판은 환영입니다 ^^. Clean Code 1장 (깨끗한 코드) 코드가 존재하리라 책에서는 코드를 자동으로 생성해주는 시대가 온다고 말한다. 근데 Copilot은 이미 왔다. 물론 엄청나긴 하지만, 고도로 추상된 언어나 특정 도메인 지식의 언어들을 이해하진 못할것이다. (그라고 그래야한다. 아니면 난 일자리를 잃는다...) 제대로 명시한 요구사항은 코드만큼 정형적이고, 테스트 케이스로 사용해도 좋다. 테스트케이스는 잘 설명된 요구사항 그 자체로도 만족할 수 있다. 나쁜 코드 르블랑의 법칙(Leblanc's law) 나.. 2021. 12. 26.
728x90