이론: 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득실전: 열심히 일하고 연습해 지식을 몸과 마음으로 체득✔️읽기만 해서는 소용이 없음!!
프로그래밍은 요구사항을 기계가 실행할 정도로 상세하게 명시하는 작업그 작업의 결과가 바로 코드<span style='color:정형 구조로는 충분하지 않은 순간들이 반드시 오게 됨. 정밀한 표현이 필요하다는 것, 코드는 존재할 수 밖에 없다는 것!🧐 나중에 손
👏 정말 정말 중요!!! 의도가 분명한 이름은 정말 중요하다!좋은 이름 만들기에 들어가는 시간 < 절약되는 시간변수, 함수, 클래스 이름들이 답해야 할 굵직한 이름들👉 존재 이유 👉 수행 기능 👉 사용 방법코드의 단순성만이 아닌, 이제는 함축성까지 신경써보
함수를 잘 만드는 법👉 2~4줄의 함수, 간결하고 명백하게 읽힌다.👉 if 문/else 문/while 문 등에 들어가는 블록은 한 줄이어야 한다.👉 함수는 한 가지만을, 잘 해야한다.👉 한 가지란? 하나의 추상화 수준위 코드가 하는 일은1\. 페이지가 테스트 페
"이런 주석을 달아야겠다!" → "코드를 정리해야겠다!"표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다.확실히 코드만으로 의도를 설명하게 어려운 경우가 존재하지만, 그것이 코드가 훌륭한 수단이 아니라는 의미는❌
형식을 맞추는 목적 코드 형식은 의사소통의 일환으로, 너무 중요하기 때문에 맹목적으로
변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다. → 추상화 필요한 이유추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스자료를 세세하게 공개하기보다 추상적인 개념으로 표현하는 것이 좋다.객체와
뭔가 잘 못될 가능성은 늘 존재한다. 그 잘못의 책임은 늘 우리 프로그래머에게 있다. 깨끗한 코드와 오류 처리는 확실히 연관성이 있다.이전에는 언어에서 예외를 지원하는 것이 필수가 아니였다. →
👉 인터페이스 제공자는 적용성을 넓히기를, 인터페이스 사용자는 자신의 요구에 집중하길 원한다. 이로 인해 시스템 경계에서 문제가 생긴다.유용하면서도 위험한 경계 인터페이스, MapMap이 반환하는 Object를 올바른 유형으로 변환할 책임은 Map을 사용하는 클라이언
하지만 우리 분야에 테스트를 추가하려고 급하게 서두르는 와중에 많은 프로그래머들이 제대로 된 테스트 케이스를 작성해야 한다는 좀 더 미묘한 (그리고 더욱 중요한) 사실을 놓쳐버렸다. TDD 법칙 세 가지 👉 실제 코드를 짜기 전, 단위 테스트 부터 짜라고 요구하는
코드의 표현력과 그 코드로 이루어진 함수에 아무리 신경 쓸지라도 좀 더 차원 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기는 어렵다.👉 프로그램은 신문 기사처럼 읽히도록, 추상화 단계가 순차적으로 내려가도록 작성한다.캡슐화변수와 유틸리티 함수를 반드시 숨겨야하는
복잡성은 죽음이다.👉 소프트웨어 팀도 도시처럼! 시스템 수준에서도 깨끗함을 유지하는 방법을 알아보자.도시가 돌아가는 또 다른 이유는 추상화와 모듈화 때문이다.큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 구성요소는 효율적으로 돌아간다.👉 소프트웨어 시스템은
창발성 : 떠오름 현상. 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 또한, 불시에 솟아나는 특성을 창발성이라고 한다.
객체는 처리의 추상화다. 스레드는 일정의 추상화다.동시성과 깔끔한 코드는 양립하기 어렵다. 여러 스레드를 동시에 돌리는 이유와 그 어려움, 해결 방법에 대해 알아보자.👉 동시성은 무엇과 언제로 분리하는 전략이다.장점 애플리케이션의 구조와 효율이 극적으로 ↑동시성에
깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다는 의미이다.Args.javaArgsException.javaArgumentMarshaler.javaBooleanArgumentMarshaler.javaDoubleArgumentMarshaler.javaI
JUnit 프레임워크에서 가져온 코드를 평가해보자.저자가 많다.알아볼 모듈은 문자열 비교 오류를 파악할 때 유용한 코드.전반적으로 상당히 훌륭한 모듈.👉 보이스카우트 규칙에 따라, 우린 처음 왔을 때보다 더 깨끗하게 해놓고 떠나야 한다.접두어 f 모두 제거오늘날 사용
SerialDate : 날짜를 표현하는 자바 클래스 첫째, 돌려보자 단위 테스트 케이스 몇 개를 포함하는 SerialDateTests 클래스 실패하는 테스트 케이스는 없지만 모든 경우를 점검하지는 않음 주석처리 된, 실패한 테스트 케이스가 있음 경계 조건 오류 발견