일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기술면접
- vue.js
- AWS
- 클린코드
- CleanCode
- 네트워크
- 인프런김영한
- java
- aop
- SQL쿡북
- react
- DDD
- 스프링부트와AWS로혼자구현하는웹서비스
- AWS RDS
- 도메인 주도 개발 시작하기
- 인프런백기선
- 이팩티브 자바
- MariaDB
- 알고리즘분석
- mysql
- 자바예외
- 자바
- 이펙티브자바
- 자료구조
- 자바스터디
- 알고리즘
- 이펙티브 자바
- 인덱스
- 혼공SQL
- jpa
- Today
- Total
목록클린코드 (6)
기록이 힘이다.
휴리스틱이란 '시간이나 정보가 불충분하여 합리적인 판단을 할 수 없거나, 굳이 체계적이고 합리적인 판단을 할 필요가 없는 상황에서 신속하게 사용하는 어림짐작의 기술’ 주석 C1: 부적절한 정보 다른 시스템에 (예를 들어, 소스 코드 관리 시스템, 버그 추적 시스템, 이슈 추적 시스템, 기타 기록 관리 시스템에) 저장할 정보는 주석으로 적절하지 못하다. 일반적으로 작성자, 최종 수정일, SPR(Software Problem Report) 번호 등과 같은 메타 정보만 주석으로 넣는다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. C2: 쓸모 없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석은 더 이상 쓸모가 없다. 주석은 빨리 낡는다. C3: 중복된 주석 주석은 코드만으로 다하지 못하는 설명을..

동기화하는 부분을 작게 만들어라 자바에서 synchronized 키워드를 사용하면 락을 설정한다. 같은 락으로 감싼 모든 코드 영역은 한 번에 한 스레드만 실행이 가능하다. 락은 스레드를 지연시키고 부하를 가중시킨다. 반면, 임계영역은 반드시 보호해야 한다. 따라서, 코드를 짤 때는 임계영역 수를 최대한 줄여야 한다. 올바른 종료 코드는 구현하기 어렵다 깔끔하게 종료하는 코드는 올바로 구현하기 어렵다. 가장 흔히 발생하는 문제가 데드락이다. 즉, 스레드가 절대 오지 않을 시그널을 기다린다. 깔끔하게 종료하는 다중 스레드 코드를 짜야 한다면 시간을 투자해 올바로 구현하기 바란다. 스레드 코드 테스트하기 코드가 올바르다고 증명하기는 현실적으로 불가능하다. 테스트가 정확성을 보장하지 않는다. 그럼에도 충분한 ..
클래스 체계 (자바의 경우) 가장 먼저 변수 목록을 작성 정적(static), 공개(public) 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개(private)변수가 나오며, 비공개 인스턴스 변수가 나온다. 변수 목록 다음에는 함수가 나온다. 공개 함수를 먼저 쓴다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. ⇒ 추상화 단계가 순차적으로 내려간다. 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 좋다. (반드시는 아니다) 때로는 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. → 하지만 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. 클래스는 작아야한다 클래스를 만들 때 제일 중요한 것은 **“크기가 작아야 한다”**이다. → 여기서 작아야하는 것은 물..
경계 살피고 익히기 학습 테스트는 프로그램에서 사용하려는 방식대로 외부 API를 호출한다. 통제된 환경에서 API를 제대로 이해하는지를 확인하는 셈이다. 학습 테스트는 API를 사용하려는 목적에 초점을 맞춘다. JUnit은 가장 널리 사용되는 자바 학습 테스트 프레임워크입니다. JUnit을 사용하면 자바 코드를 검증하고 성능을 측정할 수 있습니다. 아래는 간단한 JUnit 학습 테스트 코드의 예시입니다. import org.junit.Test; import static org.junit.Assert.*; public class CalculatorTest { @Test public void testAddition() { Calculator calculator = new Calculator(); int re..
https://github.com/gdsc-ssu/clean_code_master/tree/main/03.%20%ED%95%A8%EC%88%98 GitHub - gdsc-ssu/clean_code_master: 클린코드 작성하는 것..? 어렵지 않다! 이 스터디와 함께라면 당신도 클린코드 작성하는 것..? 어렵지 않다! 이 스터디와 함께라면 당신도 클린코드 마스터! Contribute to gdsc-ssu/clean_code_master development by creating an account on GitHub. github.com 3-1 # 좋지 않은 코드 public static String testableHtml(PageData pageData, boolean includeSuiteSetup)..
형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 오늘 구현한 코드의 가독성은 앞으로바뀔 코드의 품질에 지대한 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 적절한 행 길이를 유지하라 500줄을 넘지 않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. -신문 기사처럼 작성하라 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. 신문 기사는 아주 짧다. 한 면을 채우는 기사는 거의 없다. 신문이 읽을 만한 이유는 여기에 있다. -개념은 빈 행으로 분리하..