2018-04-21 독서 일지

들어가며

  • 습관을 들이기 위해 하루 하루 일지를 작성할 예정

코드 컴플리트 2nd edition

6장 클래스 다루기

  • 명령문의 집합으로 프로그래밍을 이해하던 시대에서, 클래스로써 프로그래밍을 이해하려 하는 현재 패러다임은 최대한 코드에 집중할 수 있게 해준다.

추상 데이터형 Abstract Data Type ADT를 이해하지 못한다면, 이름만, 껍데기만 클래스인 가짜 클래스를 작성하게 될 것이다.

  • 구현 세부사항을 감출수 있다.
  • 변경이 전체에 영향을 미치지 않는다.
  • 인터페이스가 더 많은 정보를 제공하도록 만들 수 있다.
  • 성능을 향상시키기 쉽다.
  • 프로그램이 명백하게 정확해진다.
  • 프로그램의 가독성이 높아진다.
  • 전체 프로그램에 데이터를 넘길 필요가 없다.
  • 저수준 구현 구조체 대신 현실 세계의 개체를 다룰 수 있다.

EXAMPLE

  • 엘리베이터.

  • 한 층 위로 이동한다.

  • 한 층 아래로 이동한다.

  • 특정 층으로 이동한다.

  • 현재 층을 보고 한다.

  • 현관 층으로 돌아 간다.

  • 클래스가 구현하고 있는 추상화가 무엇인지 이해해야 한다.

Reference

  • 스티브 맥코넬 지음, 서우석 옮김 『 코드 컴플리트 2nd edition 』, 위키북스(2017. 07. 28), 인용.

  • 찰스 펫졸드, 『 Code, 하드웨어와 소프트웨어에 숨어있는 언어 』, 인사이트(2010 10 11), 인용.

  • 스티브 프리먼, 냇 프라이스 지음, 이대엽 옮김, 『 테스트 주도 개발로 배우는 객체 지향 설계와 실천 』, 인사이트(2013 06 20), 인용.

  • 앤드류 헌트, 데이비드 토머스 지음, 김창준, 정지호 옮김, 『 실용주의 프로그래머 』, 인사이트(2005 08 02), 인용.