일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 기초100제
- mariadb
- golang
- 파이썬
- Git
- GitHub
- Postman
- 알고리즘
- Spring
- 코드업
- Vue.js
- 클린 코드
- 클린코드
- 객사오
- MySQL
- 롬복
- 스프링
- springboot
- thymeleaf
- 오블완
- JPA
- go
- java
- 티스토리챌린지
- Spring Boot
- H2 설치
- Gradle
- Python
- Codeup
- spring security
- Today
- Total
목록클린 코드 (7)
nyximos.log
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 클래스 체계 추상화 단계가 순차적으로 내려간다. 변수 목록 : 정적 공개 상수 -> 정적 비공개 변수 -> 비공개 인스턴스 변수 함수 : 공개 함수 -> 비공개 함수 캡슐화 변수와 유틸리티 함수는 공개하지 않는 편이 낫지만 반드시 숨길 필요가 없다. 때로는 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 그러나 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. 클래스는 작아야한다! 클래스의 크기가 중요하다. 작아야 한다. 클래스의 크기는 클래스가 맡은 책임을 센다. 단일 책임 원칙 Single Responsibility Principle 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin TDD 법칙 세 가지 첫째 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 코드 유지하기 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 쉽다. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야한다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 버팀목 = 단위 테스트 테스트 커버리지가 높을수록 공포는 줄어든다. 깨..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. 이 장에서는 깨끗하고 튼튼한 코드에 한걸음 더 다가가는 단계로 우아하고 고상하게 오류를 처리하는 기법과 고려 사항 몇 가지를 소개한다. 오류 코드보다 예외를 사용하라 이전에는 오류 플래그를 설정하거나 호출자에게 오류 코드를 반환하는 방법이 전부였다. → 함수를 호출한 즉시 오류를 확인해야 하기 때문에 호출자 코드가 복잡해짐 오류가 발생하면 예외를 던지는 편이 좋다. → 논리가 오류 코드와 섞이지 않기 때문에 호출자 코드가 더 깔끔해짐 Try-Catch-Finally문 부터 작성하라 try 블록에 들어가는 코드를 실행하면 어..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 형식을 맞추는 목적 코드 형식은 중요하다! 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 맨 처음 잡아놓은 구현 스타일과 가독성 수준 → 유지보수 용이성, 확장성에 영향 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 적절한 행 길이를 유지하라 대다수 자바 소스 파일은 크기가 어느 정도일까? 500줄을 넘지않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 ..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 나쁜 코드에 주석을 달지 마라. 새로 짜라. - Brian Wilson Kernighan, Phillip James Plauger 주석이 필요한 상황에 처하면 곰곰이 생각하기 바란다. 상황을 역전해 코드로 의도를 표현할 방법은 없을까? 코드로 의도를 표현할 때마다 스스로를 칭찬해준다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 코드만이 자기가 원하는 일을 진실되게 말한다. 그러므로 우리는 (간혹 필요할지라도) 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가 복잡하고..
클린 코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가면서 소프트웨어에서 이름은 어디에나 쓰인다. 많이 사용하므로 이름을 잘 지으면 편하다. 이 장에서는 이름을 잘 짓는 간단한 규칙을 소개한다. 의도를 분명히 밝혀라 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 중요한 것은 코드의 함축성이다. int d; // 경과 시간(단위 : 날짜) int elapsedTimeIndays; int daysSinceCreation; int daysSinceModific..
클린 코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가면서 장인정신을 익히는 과정 ① 이론 : 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다. ② 실전 : 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다. ⛸ 클린 코드 → 열심히, 아주 열심히 독파해야 하는 책 코드를 읽고 무엇이 옳고 그린지 생각하기 모듈을 분해했다가 다시 조립하는 과정 이해하기 시간을 들여 사례 연구 검토, 모든 결정과 단계 이해, 저자의 입장에서 생각한 방식을 이해하려 애쓰기 사례 연구에서 코드를 정리하면서 내린 각 결정과 heu-ristic 사이의 관계가 중요하다. 손으로 몸으로 마음으로 익혀 자신의 일부처럼 활용하자. 코드가 존재하리라 코드가 사라질 일은 없다. 코드는 요구사..