코드를 다루는 내용은, 시대에 뒤떨어지는 주제라 여길수 있고, 그렇게 주장하는 사람들도 많이 있음. 코드는 더이상 문제가 아님 모델이나 요구사항에 집중해야 한다고 생각하는 사람도 있음. 실제로 코드의 종말이 눈앞에 닥쳤다고 주장하는 사람도 있음 언젠가 비 정형적인 수학
✍️ Overview이 장은 점진적인 개선을 보여주는 사례 연구다.우선, 출발은 좋았으나 확장성이 부족했던 모듈을 소개한다.그런 다음, 모듈을 개선하고 정리하는 단계를 살펴본다.✍️ Args 구현목록 14-2 를 주의 깊게 읽어보기 바란다.스타일과 구조에 신경을 썼으므
소프트웨어에서 이름은 어디나 쓰인다. 이름을 잘 지으면 여러모로 편하다. 이 장에서는 이름을 잘 짓는 간단한 규칙을 몇 가지 소개한다.의도가 분명하게 이름을 지으라.. 라고 말하기는 쉬움 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많음
✍️ Intro의도를 분명히 표현하는 함수를 어떻게 구현할 수 있을까?함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램을 직관적으로 파악 할 수 있을까?✍️ 작게 만들어라!함수를 만들 때 첫째 규칙은 '작게!', 둘째 규칙은 '더 작게!' 이다.함수가 작을수록 좋
나쁜 코드에 주석을 달지 마라. 새로 짜라. 브라이언 W. 커니헨, P.J. 플라우거잘 달린 주석은 그 어떤 정보보다 유용하다.경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다.오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼트려 해약을 미친다.우리가 프로그래밍
복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다.. 도시를 건설하고 관리하는 데에는 한 사람 만으로는 충분하지 않다. 그래도 도시는 돌아간다. 그것은 도시라는 거대한 덩어리를수도, 전원, 교통 등의 모듈로 모듈화하고
동시성을 좀더 자세히 설명하고 보완함간단한 클라이언트/서버 애플리케이션이 있다고 가정함서버는 소켓을 열어놓고 클라이언트가 연결하기를 기다림클라이언트는 소켓에 연결해 요청을 보냄위 서버는 연결을 기다리다 들어온 메시지를 처리한후 다음 클라이언트 요청을 기다림 서버에 연결
✍️ Overview“객체는 처리의 추상화다. 스레드는 일정의 추상화다.” - 제임스 O. 코플리동시성과 깔끔한 코드는 양립하기 어렵다.스레드를 하나만 실행 하는 코드는 짜기가 쉽다.겉으로 보기에는 멀쩡해 보이는 다중 스레드코드도 짜기 쉽다.이런코드는 시스템이 부하를
JUnit 은 자바 프레임워크중 가장 유명하다.일반적인 프레임워크가 그렇듯 개념은 단순하며, 정의는 정밀하고, 구현은 우아하다.Junit은 저자가 많다. 하지만 시작은 켄트 벡과 에릭 감마 두사람이 비행기를 타고 가다 3시간 동안 Junit 기초를 구현했다.우리가 살펴
마틴파울러는 다양한 '코드냄새' 를 거론한다. 이 장은 다양한 프로그램을 검토하고, 리팩토링하면서 만듬가능하면 차근차근 읽기를 권한다.변경 이력, 이슈 추적 등 다른 시스템에 저장할 정보는 주석으로 적절하지 못하다. 따라서 작성자, 최종 수정일, SRP 번호 같은 정보