본문 바로가기
  • GDSC Ewha Tech Team Blog

3-2기 스터디/클린코드 독서7

[7주차] 17장 정리 [17장] 냄새와 휴리스틱 🚩 나쁜 코드 정리하기 주석 부적절한 정보 다른 시스템에 저장할 정보는 주석으로 적절하지 않다 작성자, 최종 수정일, SPR 번호 쓸모없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석 쓸모없는 주석은 빠르게 삭제하는 것이 좋다 중복된 주석 주석은 코드만으로 다하지 못하는 설명을 부언한다 성의없는 주석 간결하고 명료하게 가치 있는 주석을 작성한다 주석 처리된 코드 주석으로 처리된 코드를 발견하면 즉각 삭제한다 환경 여러 단계로 빌드해야 한다 한 명령으로 전체 를 체크아웃해서 한 명령으로 빌드할 수 있어야 한다 여러 단계로 테스트해야 한다 모든 단위 테스트는 한 명령으로 돌려야 한다 모든 테스트를 한번에 실행하는 능력은 아주 근본적이고 아주 중요하다 함수 너무 많은 인수 함수에서.. 2022. 5. 28.
[6주차] 15~16장 정리 📌15장 JUnit 들여다보기 JUnit 프레임워크 JUnit은 저자가 많다. 시작은 엔지니어 둘이 비행기에서 기초를 구현한 것이다. 우리가 살펴볼 모듈은 문자열 비교 오류를 파악할 때 유용한 코드다. ComparisonCompactor는 두 문자열을 받아 차이를 반환한다. 오늘날 사용하는 개발 환경에서는 변수 이름에 범위를 명시할 필요가 없다. fexpected 처럼 접두어 f는 중복되는 정보이므로 모두 제거한다. 다음으로 의도를 명확히 표현하려면 조건문을 캡슐화 해야한다. 조건문을 메서드로 뽑아내 적절한 이름을 붙인다. 그리고 부정문은 긍정문보다 이해하기 약간 더 어려우므로 긍정문을 주로 쓰자. 함수 이름, 멤버 변수 이름 또한 좀 더 정확하게 바꾸도록 한다. 그리고 불필요한 부분을 제거하고 구조를 .. 2022. 5. 22.
[5주차] 14장 정리 14장은 점진적인 개선을 보여주는 명령행 인수 구문분석기에 대한 사례 연구를 다룬다. 프로그램을 짜다 보면 종종 명령행 인수의 구문을 분석할 필요가 생긴다. 편리한 유틸리티가 없다면 main 함수로 넘어오는 문자열 배열을 직접 분석하게 된다. 내 사정에 딱 맞는 유틸리티가 없다면 직접 짜게 되는데, 이렇게 새로 짜게 될 유틸리티를 Args라 칭하며 아래 내용을 읽어보도록 한다. Args에 대하여 Args는 기본적으로 생성자에 입력으로 들어온 인수 문자열과 형식 문자열을 넘겨 Args 인스턴스를 생성한 후 Args 인스턴스에다 인수값을 정의한다. public static void main(String[] args) { try { Args arg = new Args("l,p#,d*", args}; boole.. 2022. 5. 17.
[4주차] 클린코드 11~13장 정리 11장. 시스템 높은 추상화 수준(= 시스템 수준)에서도 깨끗함을 유지하는 방법 시스템 제작과 시스템 사용 분리하기 ✅ SW시스템은 준비과정과 런타임 로직을 분리하라 ✅ 시작단계를 분리하라 설정 논리는 일반 실행 논리와 분리해야 모듈성↑ 주요 의존성 해소를 위해 전반적이고 일관적인 방식 필요 Main 분리: 생성과 관련한 코드는 모두 main 혹은 main이 호출하는 모듈로 이동 팩토리 사용: 객체 생성 시점을 애플리케이션이 통제해야할 경우 사용 의존성 주입: 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘기는 **제어 역전 기법(Inversion of Control, IoC)**을 의존성 관리에 적용 확장 ‘처음부터 올바른’ 시스템 제작은 어렵다. 대신 사용자 스토리의 변화에 따라 시스템을 .. 2022. 5. 17.
[3주차] 클린코드 7~10장 정리 🚩 7장 오류처리 7장에서는 오류처리를 처리를 하는 기법과 고려사항을 소개한다. 사실 과제나 개인 프로젝트를 하는데 오류를 따로 처리한적이 많지 않았던것 같다. 특히나 java 언어를 쓸때 예외처리를 catch, throw과 같은 코드를 종종 배우는 과정에서 사용했던건 기억나는데 실제로 어떤 프로그램을 혼자 만들때는 잘 쓰지 않았다.. 이 장에서도 돌아가기만 하면 되는 방식으로 코드를 작성했던 방식이 자각이 되었다. 너무 시간이 촉박한 상황에서 코딩해야 하는때가 대부분이었다는것과 예외처리를 하는것에 대한 중요성을 크게 못느꼈다는게 요인이 아니었다 싶다. 하지만 실제로 서비스되는 프로그램의 코드를 짜게된다면 예외처리를 깔끔하게 잘하는것이 정말 중요할것같다. 오류를 처리하는 방법 명시적으로 많은 오류코드를 .. 2022. 4. 15.
[2주차] 클린코드 4~6장 정리 4장 ) 주석 주석은 나쁜 코드를 보완하지 못한다. 표현력이 풍부하고 깔금하며 주석이 거의 없는 코드가 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. 코드를 의도로 표현하라 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 TODO 주석 : 프로그래머가 필요하다 여기지만 당장 구현하기 어려운 업무를 기술한다. 중요성을 강조하는 주석 나쁜 주석 주절거리는 주석 같은 이야기를 중복하는 주석 오해할 여지가 있는 주석 의무적으로 다는 주석 있으나 마나 한 주석 함수나 변수로 표현할 수 있다면 주석을 달지 마라 위치를 표시하는 주석 닫는 괄호에 다는 주석 공로를 돌리거나 저자를 표시하는 주석 주석으로 처리한 코드 HTML 주석 : 도구.. 2022. 4. 6.