All199 [클린코드] 9일차/10일차 - 나쁜 주석이 될 수 밖에 없는 주석 조건 [클린코드] 9일차/10일차 - 나쁜 주석이 될 수 밖에 없는 주석 조건 클린코드 9일차 (p. 74~83(4장) ) 클린코드 10일차 (p. 84~94(4장) ) 4 주석 4. 나쁜 주석 1) 주절거리는 주석 - 특별한 이유 없이 의무감으로 한다면 시간 낭비이다. - 주석을 달기로 결정했다면 충분한 시간을 들여 최고의 주석으로 달도록 노력하라. 2) 같은 이야기를 중복하는 주석 - 같은 코드 내용을 그대로 중복하는 주석은 피하라. - 자칫 코드보다 주석 읽는 시간이 길어진다. 3) 오해할 여지가 있는 주석 ..Nope! 4) 의무적으로 다는 주석 ..Nope!! 5) 이력을 기록하는 주석 .. Nope!! 6) 있으나 마나 한 주석 - 너무 당연한 사실을 언급하는 주석으로 새로운 정보를 제공하지 못하는.. 2023. 11. 1. [클린코드] 8일차 - 나쁜 코드에 주석을 달지 마라. 새로 짜라. 하지만 좋은 주석은 분명히 있다. [클린코드] 8일차 - 나쁜 코드에 주석을 달지 마라. 새로 짜라. 하지만 좋은 주석은 분명히 있다. 클린코드 8일차 (p. 67~74(4장) ) 4 주석 나쁜 코드에 주석을 달지마라. 새로 짜라. - 주석은 쉰들러 리스트가 아니다. ‘순수하게 선하지‘ 못하다. - 주석은 항상도 아니고 고의도 아니지만 너무 자주 거짓말을 한다. - 왜냐? 현실적으로 주석을 유지보수하기 쉽지 않기 때문이다. 1. 주석은 나쁜 코드를 보완하지 못한다. - 깔끔하고 주석이 거의 없는 코드가, 복잡하며 주석이 많이 달린 코드보다 훨씬 좋다. 2. 코드로 의도를 표현하라! - 확실히 코드만으로 의도를 설명하기 어려운 경우가 존재하지만, 많은 개발자들이 코드는 훌륭한 수단이 아니라는 의미로 해석한다. 3. 좋은 주석 1) 법적인 .. 2023. 11. 1. [클린코드] 7일차 - 오류 보단 예외처리, 그리고 클린코드로 인한 중복 알레르기 [클린코드] 7일차 - 오류 보단 예외처리, 그리고 클린코드로 인한 중복 알레르기 클린코드 7일차 (p. 57~66(3장) ) 들어가기 전..) 벌써 클린코드 고생길이 보이는 중 .. 다시 열심히 해야지. 작심삼일도 안 끊기면 된다. 3 함수 9. 오류 코드보다 예외를 사용하라! - 명령 함수에서 오류 코드를 반환하는 방식은 명령/조회 규칙을 미묘하게 위반한다. - 오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다. 1) try/catch 블록 뽑아내기 - try/catch 블록을 함수로 뽑아내는 편이 좋다. // 모든 오류 처리 public void delete(Page page){ try { deletePageAndAllReference(page); } ca.. 2023. 10. 31. [클린코드] 6일차 - 좋은 함수를 위한 n가지 주의사항 [클린코드] 6일차 - 좋은 함수를 위한 n가지 주의사항 클린코드 6일차 (p. 46~56(3장) ) 3 함수 3. 함수 당 추상화 수준은 하나로! - 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야한다. - 한 함수 내에 추상화 수준을 섞으면 코드 읽는 사람이 헷갈린다. 위에서 아래로 코드 읽기: 내려가기 규칙 4. Switch 문 - switch 문은 작게 만들기 어렵다. - 본질적으로 switch문은 N가지를 처리한다. - 하지만 각 switch 문을 저차원 클래스에 숨기고 절대로 반복하지 않는 방법이 있는데, '다형성'을 이용하는 것이다. public Money calculatePay(Employee e) throws InvalidEmployeeType { s.. 2023. 10. 30. [클린코드] 5일차 - 분명한 이름을 위한 의미있는 맥락(Context) 부여, 함수는 한 가지 일만. [클린코드] 5일차 - 분명한 이름을 위한 의미있는 맥락(Context) 부여, 함수는 한 가지 일만. 클린코드 5일차 (p. 35~38(2장) / 39~45(3장) ) 2 의미 있는 이름 15. 의미있는 맥락을 추가하라 - 클래스, 함수, 이름 공간 등으로 감싸서 맥락을 부여. // 맥락이 불문명한 변수 // 함수 이름은 맥락의 일부만 제공하며, 알고리즘이 나머지 맥락을 제공. private void printGuessStatistics(char candidate, int count){ String number; String verb; String pluralModifier; if (count == 0){ number = "no"; verb = "are"; pluralModifier = "s"; } e.. 2023. 10. 29. [클린코드] 4일차 - 의미 있는 이름 짓는 시간은 유의미하다. 클린코드 4일차 - 의미 있는 이름 짓는 시간은 유의미하다. 클린코드 4일차 (p. 24~34(2장) ) 2 의미 있는 이름 1. 그릇된 정보를 피하라 - 여러 계정을 그룹으로 묶을 때, 실제 List가 아니라면 명명에 조심해야한다. (accountList → accountGroup/Accounts) - 프로그래머에게 List는 특수한 의미. - 유사한 개념은 유사한 표기법 사용 - 일관성이 떨어지는 표기법은 그릇된 정보 2. 의미 있게 구분하라 - 연속적인 숫자를 덧붙은 이름 X // 연속적으로 덧붙인 이름은 그릇된 정보를 제공하는 이름도 아니고, 아무런 정보를 제공하지 않음!! public static void copyChar(char a1[], char a2[]){ for (int i = 0; i .. 2023. 10. 27. [클린코드] 3일차 - 의미 있는 이름은 어떻게 지을까? 클린코드 3일차 - 의미 있는 이름은 어떻게 지을까? 클린코드 3일차 (p.13~23(1장) / 21~23(2장) ) 2 의미 있는 이름 의도를 분명히 밝혀라 - 의도가 분명한 이름이 정말로 중요하다. - 더 나은 이름이 떠오르면 개선해라. 다음 질문에 모두 답할 수 있는 이름이어야 한다. 존재 이유는? 수행 기능은? 사용 방법은? // Bad int d; // 경과 시간(단위: 날짜) // Good int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; 변수 d는 무슨 의도로 작성됐는지 모를 변수명이다. n일 뒤에 보면 나도 모를 작명 말고 타인이 봐도 알 법한 작명이 필요하다. 측정하려는 값과.. 2023. 10. 25. [클린코드] 2일차 - 장인정신 길들이기 및 클린코드 고생길 시작 클린코드 2일차 - 장인정신 길들이기 및 클린코드 고생길 시작 클린코드 2일차 ( p.1~12(1장) ) 클린코드 3일차 ( p.13~23(1장) / 21~23(2장) ) 0 들어가면서 난관에 부딪힐 때 옳은 문 뒤에 있으려면 어떻게 해야 할까? 답은 장인 정신이다. 장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다. 첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식 습득 둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득 단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야한다. (즉, 고생하며 읽어야하는 책) 그 책의 흐름을 보고자 하면 목차를 봐야한다. 이 책은 총 세 부분으로 나눠진다고 한다. 1) 깨끗한 코드를 작성하는 원칙, 패턴, 실기 - 코.. 2023. 10. 25. PUB/SUB 구조와 Redis, Kafka를 이해하기 위한 과정 PUB/SUB 구조 pubsub을 어렵게 받아들일 필요가 없다는 것을 이해하고 글을 써본다. PUB/SUB의 구조는 유튜브 생태계로 이해해보자. 우리 곁에서 가장 쉽게 Publisher와 Subscriber의 관계를 볼 수 있는 곳은 바로 유튜브이다. 그럼 유튜브의 생태계에 빗대어 보자. Publisher는 유튜버, Channel은 유튜브 채널, Event는 유튜브 영상, Subscriber는 구독자라고 생각하면 이해하기 쉽다. 유튜버(=Publisher)는 자신의 유튜브 채널(=Channel)에 유튜브 영상(=Event)을 생성 및 업로드한다. 여기서 유튜브 영상을 하나의 이벤트(메세지)라고 이해할 수 있다. 특정 Channel을 구독하고 있는 구독자(=Subscriber)는 Channel에 올라온 유.. 2023. 10. 16. 이전 1 2 3 4 5 6 7 ··· 23 다음