차례 1장. 형식 연역 2장. auto 3장. 현대적 C++ 적응하기 4장. 똑똑한 포인터 5장. 오른값 참조, 이동 의미론, 완벽 전달 6장. 람다 표현식 7장. 동시성 API 8장. 다듬기 Item 23: std::move와 std::forward를 숙지하라 기억해 둘 사항들 - std::move는 오른값으로의 무조건 캐스팅을 수행한다. std::move 자체는 아무것도 이동하지 않는다. - std::forward는 주어진 인수가 오른값에 묶인 경우에만 그것을 오른값으로 캐스팅한다. - std::move와 std::forward 둘 다, 실행 시점에서는 아무 일도 하지 않는다. Item 24: 보편 참조와 오른값 참조를 구별하라 기억해 둘 사항들 - 함수 템플릿 매개변수의 형식이 T&& 형태이고 T가..
8장. 특징, 어떻게 추가할까? 8.1. 테스트 주도 개발 테스트 주도 개발은 다음과 같은 순서로 진행한다. 1. 실패 테스트 케이스를 작성한다. 2. 컴파일되게 만든다. 3. 테스트에 통과하도록 만든다. 4. 중복을 제거한다. 5. 반복한다. TDD와 레거시 코드 한 번에 한 작업만 집중하도록 해주는 것은 TDD의 가장 중요한 역할 중 하나이다. TDD를 적용하면 코드 작성이나 리팩토링 과정에서도 두 작업을 함께 하는 경우는 결코 일어나지 않을 것이다. 레거시 코드에 있어서 분리는 특히 중요하다. 분리를 통해 새로운 코드를 작성할 때 다른 새로운 코드와의 독립성을 유지할 수 있기 때문이다. 새로운 코드를 작성하고 나면 리팩토링해서 새로운 코드와 이전 코드 사이에 있는 중복을 제거할 수 있다. 8.2. ..
7장. 코드 하나 바꾸는데 왜 이리 오래 걸리지? 제대로 유지되는 시스템과 레거시 시스템 간 차이점 적절히 유지된 시스템인 경우 어떻게 변경시키는지 알려면 오랜 시간이 걸릴지 모른다. 하지만 일단 어떻게 할지를 알고 나면 변경 자체는 매우 간단할 뿐만 아니라 변경 후 시스템이 휠씬 편안하게 느껴질 것이다. 레거시 시스템인 경우에는 무엇을 해야 하는지 이해하는데 오랜 시간이 걸릴 것이고 변경 자체도 힘든 과정이 될 것이다. 의존관계 깨기 의존관계를 깰수록, 그리고 클래스들을 새로운 패키지나 라이브러리로 이동시킬수록 시스템 전체 재빌드하는 비용은 늘어나지만, 빌드에 걸리는 평균 시간은 줄어들 것이다. Opportunity handling 클래스들 ConsultantSchedulerDB 클래스에 대한 구현체 ..
6장. 고칠 건 많고 시간은 없고 6.1. Sprout Method Sprout 메서드를 만드는 순서 어느 부분에 코드 변경이 필요한지 식별한다. 변경이 한 메서드 안의 한 부분에 있는 단일한 일련의 스테이트먼트라면, 관련 작업을 하는 새로운 메서드를 호출하는 코드를 작성한다. 그리고 주석을 표시한다. 소스 메서드에 어떤 지역 변수들이 필요한지를 결정하고 호출에 필요한 매개변수를 만든다. Sprout 메서드가 소스 메서드에 값을 반환해야 할지 결정한다. 값을 반환해야 한다면 호출을 변경시켜 반환된 값이 변수에 할당되도록 한다. 테스트 주도 개발 방법을 사용해 sprout 메서드를 개발한다. 호출이 동작하게 만들기 위해 소스 메서드에 있는 주석문을 제거한다. 6.2. Sprout Class Sprout 클..
코드가 얼마나 훌륭하게 작성되어 있는지 여부와는 상관없이 테스트 루틴이 없는 코드는 불량 코드다. 얼마나 멋지게 작성되어 있는가와 객체지향의 사용 여부, 그리고 캡슐화의 정도도 참작 요소가 전혀 되지 못한다. 테스트 루틴이 있으면 코드의 동작을 빠르고 검증 가능하게 변경시킬 수 있다. 하지만 테스트 루틴이 없으면 실제로 우리 코드가 더 나아지는지 더 나빠지는지를 알 수 없게 된다. 1장. 소프트웨어 변경 소프트웨어를 수정하는 네 가지 이유 1. 새로운 특징을 추가한다. 2. 버그를 제거한다. 3. 소프트웨어 설계를 개선한다. 4. 자원 이용률을 최적화한다. 특징 추가 버그 수정 리팩토링 최적화 구조 변경시킴 변경시킴 변경시킴 - 기능 변경시킴 변경시킴 - - 자원 이용률 - - - 변경시킴 위험한 변경 ..
해커와 화가 폴 그레이엄 저/임백준 역/정희 감수 는 와이 콤비네이터의 공동 창업자이자 천재 해커로 불리는 폴 그레이엄의 생각을 읽는 즐거움을 준다. 이 책에서 그는 프로그래머와 예술가, 웹 기반 프로그램, 프로그래밍 언어, 스타트업 같은 주제에 대해 이야기한다. 먼저 프로그래머와 예술가를 비교하는 부분에서는 내가 프로그래밍을 하는 이유에 대해서 다시 생각하게 하고 좋은 자극제가 되었다. 그리고 웹 기반 프로그래밍에 대한 글을 읽고 있으면 지금 당장 하던 일을 그만두고 리스프 기반의 웹 프로그래밍을 공부해야만 할 것 같다. 마지막으로 100년 후의 프로그래밍 언어를 내다보는 그의 통찰력도 매우 인상적이고 흥미로웠다. 목차 01 / 공부벌레는 왜 인기가 없을까 __그들은 게임판 위의 말에는 관심이 없다 0..
C# 코딩의 기술 기본편 가와마타 아키라 저/김완섭 역 은 저자의 짤막한 C# 및 닷넷 프로그래밍 노하우들을 엮은 책이다. 어떤 문제에 대해 고민하는 주인공, 그를 도와주는 하수와 고수 캐릭터를 등장시켜 노하우를 설명하는 신선한 구성을 가지고 있다. 가볍게 읽히지만 내가 만들었던 코드도 주인공처럼 실수를 하지 않았나 돌아보게 하고 '이 기술은 다음에 적용해 봐야지'라는 생각이 들게 만드는 책이다. 목차 1장. 언어 사양 문제 1.1 var 사용에 관한 고민 1.2 if와 switch에 관한 오해 1.3 for와 foreach에 관한 오해 1.4 while을 이용한 조건 판정 1.5 do는 유용하지만 잘 사용하지 않는다. 1.6 루프할 필요가 없는 루프 1.7 장황한 비동기 루프 1.8 해제되지 않는 참조..
코딩 호러의 이펙티브 프로그래밍 제프 앳우드 저/임백준 역 스택 오버플로우의 공동 창업자인 제프 앳우드는 코딩 호러라는 자신의 블로그를 운영하고 있다. 블로그에 가면 프로그래밍과 그와 관련된 다양한 주제의 흥미로운 글들을 만나볼 수 있다. 이 책은 그중에서 사람들의 관심을 끌었던 글들을 담고 있다. 서문에서 밝힌 대로 그는 소프트웨어 개발의 기술적인 측면뿐만 아니라 그 배후에 존재하는 사람에 대해 호기심이 많다. 프로그래머에게 '어떻게'를 설명하는 기술 서적도 중요하지만 그보다 더 중요한 건 제프 앳우드의 책과 같이 '왜'에 대해 고민하게 만드는 책이 아닐까 생각해 본다. 이 책을 읽지 않은 분 중에 코딩 호러 블로그의 호기심 가득한 글이 마음에 든다면 이 책을 읽고 새로운 발상을 할 수 있는 여유를 가..
임백준의 대살개문 임백준 저 '대살개문'은 작가가 근래에 기고했던 칼럼들을 정리한 책이다. 개발 문화, 개발자들에게 보내는 조언, 그리고 최근 이슈가 되고 있는 기술들도 언급하고 있다. 내 얘기 같고 우리 얘기 같아서 어느 순간 가슴이 뜨거워 지기도 했다. 정작 작가는 멘토라는 말이 불편하다고 하지만 개인적으로 이 책이 멘토의 조언 같아서 더 좋다. 언제가 될지 모르지만 벌써부터 다음 책이 기다려진다. 배우고 즐기고 해결하고 공유하자! 본문 중에서... p6 개발자 문화가 뭐냐고 묻는 사람을 위해서 LESS라는 공식도 준비해두었다. Learn(배우고), Enjoy(즐기고), Solve(해결하고), Share(공유하라). 이렇게 네 가지 속성을 모으면 그게 개발자 문화다. p45 자기 아이디어를 실현하려고..
Effective Modern 이펙티브 모던 C++ 차례 1장. 형식 연역 2장. auto 3장. 현대적 C++ 적응하기 4장. 똑똑한 포인터 5장. 오른값 참조, 이동 의미론, 완벽 전달 6장. 람다 표현식 7장. 동시성 API 8장. 다듬기 Item 20: std::shared_ptr처럼 작동하되 대상을 잃을 수도 있는 포인터가 필요하면 std::weak_ptr를 사용하라 기억해 둘 사항들 - std::shared_ptr처럼 작동하되 대상을 잃을 수도 있는 포인터가 필요하면 std::weak_ptr를 사용하라. - std::weak_ptr의 잠재적인 용도로는 캐싱, 관찰자 목록, 그리고 std::shared_ptr 순환 고리 방지가 있다. Item 21: new를 직접 사용하는 것보다 std::mak..
- #제럴드와인버그
- Effective Modern C++
- Scott Meyers
- #레거시코드
- #cplusplus
- #임백준
- #mva
- #ModernCPP
- #스콧마이어스
- #마이클페더스
- #build2016
- #ndc
- #자녀교육
- #알고리즘
- #코드최적화
- #프로그래밍심리학
- 객체 지향 설계
- #csharp
- 상속
- Effective C++
- 책
- #techdays2015
- #uwp
- #클린코드
- #EffectiveModernCpp
- #scottmeyers
- #팀개발
- #cpp
- #로버트마틴
- #세미나
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |