읽은거 | 2012. 5. 30. 20:24
코드를 작성하는 시간보다 이미 작성된 코드를 읽고 파악하는데 더 많은 시간을 소모한다는 이야기는
어느 유명한책에서 이야기한것이 아니더라도 자기 자신을 살펴보면 쉽게 알 수 있을 것이다.
내가 작성한 코드는 누군가 반드시 읽는다.
혼자 작업 하더라도 스스로가 자신의 코드를 읽게된다.
이책은 제목 그대로 읽기 좋은 코드를 만드는 방법을 알려준다.
Code Complete나 Clean Code에도 비슷한 내용들이 있지만, 기존 책들이 여러가지를
설명하면서 부분적으로 읽기 쉽게 작성하는 방법을 설명했다면, 이책은 처음부터 끝까지
어떻게 코드를 읽기 쉽게 만들것인가에 집중한다.
이책이 없더라도 책의 내용을 경험적으로 터득하고 있는 사람들도 있을것이다.
코드를 잘 작성하는데 관심을 가진 사람들에게 이책은 그들의 고민과 노력을 잘 정리해놓은 책일 거이다.
코드 작성의 경력이 있더라도 코드를 잘 작성하는 방법에 관심이 없었던 사람들에게는
적어도 이책은 필수적으로 봐야할 책일것이다.
변수명을 a, b, ii, aa로 만들면서 좋은 소리들을 수 있는 시대는 지난것같다.
책에서 특별히 흥미있었던 부분은 2장에서 min/max, first/last, begin/end를
어떤 의미로 사용하면 좋을지에 대해서 정확하게 이야기한 부분이다.
영어가 부족하기 때문에 생기는 일이겠지만, first/last, begin/end를 사용할때
어떤 기준으로 단어를 선택할지 기준이 모호했는데 그 부분을 잘 이야기해줬다.
내 주변에 이제 막 코드 작성을 시작한 사람이 있다면 이 책은 꼭 읽어보라고 알려주고 싶다.
임백준님이 번역한 책으로, 번역의 만족도는 100%. 다른 좋은 책이 이정도로만 번역되어 나왔으면 좋겠다.
[리뷰] 멀티코어 애플리케이션 프로그래밍 (0) | 2012.07.29 |
---|---|
[리뷰] 만들면서 배우는 기계학습(한빛미디어) (0) | 2012.06.30 |
[리뷰] HTML5 Canvas(한빛미디어) (0) | 2012.03.15 |
[리뷰] 실용주의 프로그래머 (0) | 2011.11.09 |
[리뷰] 뽀모도로 테크닉 (0) | 2011.04.29 |
카테고리 없음 | 2012. 4. 28. 10:50
아이폰 앱 디자인 정석
아이폰 앱 디자인 정석(한빛미디어)
한빛미디어 모바일 시리즈중 하나로 아이폰 앱 디자인에 대해서 설명해줍니다.
앱 디자인입니다. 코드는 한줄도 나오지 않으며, 어떻게 해야 UX를 살리는 UI를 만들지에 대해서 알려줍니다.
그래서 부제가 사용자경험(UX)를 극대화 시키는 사용자 인터페이스(UI)의 비밀입니다.
책 제목에 정석이라는 단어가 붙어서..
수학의 정석과같이 묵직하면서도 꺼려지는 첫인상을 풍겼습니다.
책은 풀컬러로 되어있으면서 그림들이 많이 포함되었습니다.
글로 설명한 내용을 그림에서 확인해볼수 있는 구조입니다.
책을 위한 임시 자료가 아니라 개발되어 쓰여지고있는 어플의 화면을 가지고 설명합니다.
책에서 흥미로웠던 부분은 6개의 PINCH&ZOOM 부분입니다.
디자인은 이렇게 해야한다는 설명으로 끝이 아니라 이렇게 디자인된 어플이 이거다라고 알려줍니다.
그것도 대부분 이름만 대면 알만한 어플들입니다.
어플 개발자가 UI의 어떤 부분들을 어떻게 만들었는지를 설명해줍니다.
또, 아이폰 표준UI에 대해서 하나씩 설명을 합니다.
표준UI 컨트롤이 어떤게 있으며, 어떤 UI속성들이 있고 언제 쓰면 좋은지를 자세하게 설명합니다.
관심만 가지고 있던 저에게는 아주 좋은 정보를 알려줘서 좋았습니다.
책 제목에서 아이폰 앱 디자인으로 아이폰에 집중했지만, 아이폰 특화된 UI 설명을 제외한다면
전체적으로 UX를 살리는 UI를 디자인하는 방법에 대한 설명입니다.
그래서 다른 기기에서 개발할때도 참고할만한 내용들이 있습니다.
단적인 예로 경고창이 끼어들 타이밍이 언제인가.. 에 대해서도 알려줍니다.
책을 다 읽고 드는 생각은.. 나중에 UI관련 작업을 하게되면 다시한번 훑어봐야겠다. 입니다.
그런데 그게 간단하게 되지는 않을것 같습니다.
챕터의 마지막에 체크해봐야할 것들 목록을 몇가지 적어주지만,
요약된 몇가지 부분들만 있어서 좀더 자세히 점검하려면 책을 정독해야겠지요.
부록으로 체크 리스트가 하나 추가되었다면,
좀더 간편하게 UX를 살리는 UI를 체크해볼수 있을것 같다는 생각이 들었습니다.
이 책은 터치 모바일 기기에서 UX를 살리는 UI를 만드는 많은 사람들에게 도움이 될거라 생각됩니다.
읽은거 | 2012. 3. 15. 21:41
[리뷰] 만들면서 배우는 기계학습(한빛미디어) (0) | 2012.06.30 |
---|---|
[리뷰] 읽기 좋은 코드가 좋은 코드다(한빛미디어) (0) | 2012.05.30 |
[리뷰] 실용주의 프로그래머 (0) | 2011.11.09 |
[리뷰] 뽀모도로 테크닉 (0) | 2011.04.29 |
[독서] 도시에서 살며 사랑하며 배우며 (0) | 2011.04.01 |
프로그래밍 | 2012. 2. 21. 23:22
v.push_back(boost::shared_ptr대충 알고 써먹은 boost를 천천히 훑어보기로 맘먹고 보는데 Pointer Container라는 것이 있어서(new int(1)));
class PtrTest { public: PtrTest() {value_ = 0;}; ~PtrTest() {}; PtrTest(const PtrTest& other) { std::cout << "Copy Const" << std::endl; value_ = other.value_; } PtrTest& operator=(const PtrTest& rhs) { if(this == &rhs) { return *this; } std::cout << "= Operator" << std::endl; this->value_ = rhs.value_; return *this; } void SetValue(int value) {value_ = value;} int GetValue() {return value_;} private: int value_; }; TEST(PtrVectorTest, ptr_vector_test) { boost::ptr_vectorptr_vector; PtrTest* test_a = new PtrTest; test_a->SetValue(1); PtrTest* test_b = new PtrTest; test_b->SetValue(2); ptr_vector.push_back(test_a); ptr_vector.push_back(test_b); ptr_vector.push_back(new PtrTest); PtrTest* test_ptr = &ptr_vector[0]; EXPECT_EQ(1, test_ptr->GetValue()); PtrTest test_ptr_2 = ptr_vector[1]; EXPECT_EQ(2, test_ptr_2.GetValue()); EXPECT_EQ(3, ptr_vector.size()); ptr_vector.erase(ptr_vector.begin()); EXPECT_EQ(2, ptr_vector.size()); }
기본 생성자와 생성자 오버로딩 (0) | 2012.09.08 |
---|---|
eclipse에 pydev 설정 에러 처리 (0) | 2012.06.18 |
Office Add-in 만들기. (0) | 2012.02.08 |
Lua 테이블 내용 출력하기 (0) | 2012.01.28 |
Lua Table 복사에 대한 처리 (0) | 2012.01.16 |
프로그래밍 | 2012. 2. 8. 01:37
eclipse에 pydev 설정 에러 처리 (0) | 2012.06.18 |
---|---|
Pointer Container, boost::ptr_vector<> (0) | 2012.02.21 |
Lua 테이블 내용 출력하기 (0) | 2012.01.28 |
Lua Table 복사에 대한 처리 (0) | 2012.01.16 |
Cafe24 가상 호스팅 - 1(선택) (0) | 2011.12.02 |
Recent Comments