본문 바로가기
반응형

까망 동네/클린 코드6

[클린코드] 객체와 자료구조 자료 구조 자료를 그대로 공개하며 별다른 함수 제공 X class Point { public: double x; double y; }; 내부 구조가 노출되어, 직접적으로 좌표값을 읽고 설정할 수 있다. 직접적인 접근을 제한하기 위해 비공개 private로 선언하고 getter와 setter 함수를 제공한다 class Point { private: double x, y; public: double getX() {return x;} double getY() {return y;} } 함수라는 계층을 넣었다고 완전히 감춰지지 않는다. 내부 구조를 노출하는 구조에 해당된다. 객체 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개 class Point { public: virtual double getX() .. 2022. 7. 19.
[클린코드] 형식 (Format) ✔️ 개념은 빈 행으로 분리 글에 문단이 있듯이 코드에도 빈 행으로 구분해주면 좋다. public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells; } 변수는 변수끼리, 로직은 로직끼리 적절한 행 구분은 가독성을 높여준다. public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (Cell cell : gameBoard) { if (cell.isFlagged()) { flaggedCells.add(cell.. 2022. 7. 18.
[클린코드] 함수 Function 클린 코드(Clean Code) 클린 코드(Clean Code)란? 💻 클린 코드 (Clean Code)? • 프로그래밍을 모르는 사람도 한눈에 읽히는 코드 (가독성) • 다른 사람이 수정하기 쉬운 코드 • 한 가지 일에 집중하는 코드 • 중복이 적은 코드 • 테스트가 zoosso.tistory.com ✔️ 작게 만들어라 ✔️ 한가지만 해라 → 내부에 다른 함수로 추출할 수 있는 section이 더 있는가? ✔️ 서술적인 이름 사용 (동사구 활용) ex) isOrderable(), hasAvailableProduct 예제 코드 static string renderPageWithSetupsAndTeardowns(PageData pageData, bool isSuite) { bool isTestPage = .. 2022. 7. 18.
[클린코드] 주석 Comment Q) 주석은 많이 있을수록 좋은가? A) 아니오! 주석은 오래될수록 코드에서 멀어진다. 코드(Code)는 유지보수를 해도, 주석(Comment)도 함께 유지보수되기 어렵다. 주석 없이 코드만으로도 충분히 의미를 전달할 수 있다. // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((emplotee.flags & HOURLY_FLAG) && (employee.age > 65) if 조건이 길고 어렵기 때문에 주석을 달아놓은 것이지만 사실 의미 있는 이름만으로도 충분하다. if (employee.isEligibleForFullBenefits()) 📌 [클린코드] 의미 있는 이름 2500; i++) { threadList.push_back(thread(WidgetBuilderThread, widg.. 2022. 7. 18.
[클린코드] 의미 있는 이름 개발자가 자주 고민하는 것 중 "의미 있는 이름" 📌 프로그래머가 가장 힘들어 하는 것은? 프로그래머가 가장 힘들어 하는 것은? IT 혹은 SW 업계에 있다보면 가끔 "프로그래머가 가장 힘들어 하는 것"이 무엇일까? 물론 개인 역량, 역할에 따라 비중은 달라질 수 있지만 아래 항목들이지 않을까 생각이 든다. ① 이름 짓기 코 zoosso.tistory.com ✔️ 의도(존재 이유, 기능, 사용 방법)를 분명히 하라 ✔️ 검색하기 쉬운 이름 사용 (+ 자동완성 기능) ex) 긴 이름이 짧은 이름보다 검색하기 좋다. 예시 코드 vector getData() { vector ret_list; for (int* x : theList) { if (x[0] == 4) { ret_list.push_back(x); }.. 2022. 7. 17.
클린 코드(Clean Code)란? 💻 클린 코드 (Clean Code)? • 프로그래밍을 모르는 사람도 한눈에 읽히는 코드 (가독성) • 다른 사람이 수정하기 쉬운 코드 • 한 가지 일에 집중하는 코드 • 중복이 적은 코드 • 테스트가 존재하는 코드 • 유지보수가 쉬워진다. * 유명한 프로그래머들이 언급하는 항목들이다. 사실, 프로그래머 수 만큼 클린 코드 기준도 다양하다. 방 청소 기준이 개인마다 다른 것과 같다 🤔 구현 당시 최선이었지만 환경이 변하면서 더 이상 최선이 아닐 수 있다. A 환경에서 적용된 항목이 B 환경에서 맞지 않을 수 있다. 그럼에도 대다수가 끄덕이는 정도가 있다. 쌓여버린 Bad Smell 업무 생산성을 저하시킨다. 그렇기에 꾸준히 관심가지고 리팩토링해야 한다. 💻 왜? 클린 코드 작성이 어려울까? • 기존(Le.. 2022. 7. 17.
반응형