본문 바로가기

좋은프로그래머6

[6부 정상으로부터의 조망] Chapter24 다음엔 어디서? 끝이 좋으면 다 좋다 어떤 상황에서든 항상 최고의 코드를 작성하려고 노력하고, 다른 사람들과 함께 일을 잘 하고, 소프트웨어 회사에서 한창 일을 하고 있을 때 실용주의적인 결정을 내릴 수 있는 사람이 되자 그러면 이젠 뭘 하지? 코드 장인의 가장 중요한 특성은 발전하고 싶어하는 욕망 - 지속적인 발전 상태 이 책을 읽는 것만으로는 충분하지 않을 것이다. 책 밖으로 나와서 코딩을 해야 한다. 제대로 해야 한다. 그러면 우리가 이 책이 내용을 실전에 어떻게 옮길 수 있을까? 이 책을 책꽂이에 꽂아 두자 훌륭한 코더들이 있는 곳으로 가서 일을 하자. 그리고 그들로부터 얻을 수 있는 모든 것을 얻자 새로운 테크닉을 시험해 보자 실수하는 것을 두려워하지 말자 기술 지식의 좌표로 삼을 수 있는 외부에 대한 관심을 .. 2017. 12. 7.
[6부 정상으로부터의 조망] Chapter23 외적인 한계 여러 가지 프로그래밍 분야 이장의 내용 여러 가지 프로그래밍 분야 비교 자기 분야에서 효과적으로 일하는 방법 각 분야에서 요구되는 스킬 단 하나의 프로그래밍 언어는 없다 특별한 프로그래밍 분야가 주어졌을 때 코드 장인은 자기 일을 하는 방법 자기 코드를 다루는 방법, 자기가 가진 툴을 가장 잘 사용하는 방법을 안다 애플리케이션 프로그래밍 독립적인 프로그램을 프로그래밍하는 것 애플리케이션 프로그래밍에 관한 주요 시장은 두 종류가 있다 비닐 포장 소프트웨어 비닐 포장 소프트웨어는 대량 판매 시장을 위해 개발 된다 코드는 모든 버전의 운영체제, 여러 가지 컴퓨터 구성, 서로 다른 라이브러리와 설치되어 있는 다른 애플리케이션들과 함께 우아하게 돌아가면서, 이 모든 것들에 올바르게 대처해야만 한다 맞춤형 애플리케.. 2017. 12. 5.
[6부 정상으로부터의 조망] Chapter22 프로그램의 요리법 코드 개발 방법론과 프로세스 이장의 내용 프로그래밍 스타일 소프트웨어 개발 프로세스 이것이 코드에 어떤 영향을 미치나 훌륭한 프로그래머는 프로그래밍을 어떻게 하는지 알고 있다; 즉 자기 일에 영향을 미치는 프로그래밍 방법과 습관에 대해 알고 있따 프로그래밍 스타일 소프트웨어 문제를 상세하게 기술하는 방법과 그 문제에 대한 솔루션을 분할해서 타깃 언어로 모델화하는 방법을 묘사한다 당신이 선택한 프로그래밍 언어는 당신의 설계 스타일 결정에 어느 정도 영향을 미칠 것이다 구조적 프로그래밍: 제어 중심의 모델이고, 톱다운 설계 테크닉을 따른다 객체지향 프로그래밍 추상화: 선택적으로 모르게 만드는 기술 캡슐화 응집력 있는 실행 단위들을 단단하게 묶어서 꾸러미 안에 넣고, 잘 정의된 API를 통해서만 접근할 수 있.. 2017. 12. 3.
[5부 프로세스의 일부] Chapter21 얼마나 걸릴까? 얼마나 걸릴까? 소프트웨어 소요 시간 추정이라는 마술 이 장의 내용 소요 시간의 추정이 필요한 이유는? 추정이 어려운 이유는? 실무적인 추정 방법 일정 지키기 복잡하지만 소프트웨어 개발 프로세스에 필수적으로 필요한 일부이고, 모든 프로그래머들이 반드시 배워야 하는 것 소프트웨어 회사의 경비 대부분은 인적 자원에 들어가기 때문에 시간을 추정하는 것은 중요하다 상업적으로 성공적인 소프트웨어를 만들어내기 위해서는 엄청난 통찰력과 계획이 필요고 배짱도 필요하다. 우리가 계획을 하지 않으면 의도한 대로 제품을 만들게 되는 것이 아니라, 되는 대로 만들게 될것이다. 추정은 프로젝트 계획 과정의 필수적인 일부이다. 소요 시간에 관한 정보를 제공할 수 있는 유일한 사람은 그 일을 해야 하는 프로그래머이다 눈감고 찍기 .. 2017. 12. 1.
[5부 프로세스의 일부] Chapter20 사냥감 확인하기 코드 리뷰 수행하기 코드리뷰: 코드의 품질을 향상시키는 것 당신이 결함을 찾도록 도와서 엄청난 재난이 발생하지 않도록 막는것 더 큰 책임을 갖도록 조장한다 코드 리뷰란? 코드를 작성한 사람을 비웃거나 놀리려고 이렇게 하는 것이 아니다; 팀이 생산하는 소프트웨어의 품질을 높이려고 이렇게 하는 것이다. 코드리뷰는 다음과 같은 몇 가지 수준에서 문제점을 제거한다 전체적인 설계 설계가 코드에 표현되는 방법 의미론적인 블록 안의 코드 코드 명령문 개인적으로 - 더 상세하고 복잡한 작업 일대일 방식으로 - 비공식적이고, 작성자의 의해 주도되는 경향; 객관적인 외부 관점이 아니라, 작성자가 가정했던 내부 관점 공식적으로 - 문제점을 뿌리 뽑을 가능성이 더 크다 전체 프로젝트의 코딩 스타일에 더 통일성이 생긴다 코드 .. 2017. 11. 30.
[5부 프로세스의 일부] Chapter19 규격화하기 소프트웨어 규격서 작성하기 소프트웨어 규격서(specification): 프로그램이 어떻게 설계되고 구축될 것인지를 정의 규격서란 무엇인가? 우리가 더 영리하게 일을 하게 만들고, 더 나은 소프트웨어를 만들 수 있게 도와준다 규격서는 팀 내에서의 그리고 팀 사이에서의 의사소통의 한 형태이다 더 안전하고 손실되거나, 잊혀지거나, 잘못 기억될 가능성이 없어진다 접근하기 쉽고 모든 정보가 알려진 위치에 기록되기 때문에 편리하다 더 정확하게 규격서의 유형 여러 가지 유형의 규격서는 소프트웨어 프로세스의 중간에서 각각 관문을 형성한다 요구 규격서 소프트웨어 개발 프로세스가 완전히 붕괴되고, 다른 모든 규격서들이 사라져 버리더라도 당신은 이 문서를 끝까지 사수해야 한다 소프트웨어가 해야 할 일이 무엇인지, 기준에 .. 2017. 11. 28.