기초지식공부/코드 컴플리트

코드컴플리트 - 챕터 4 구현 시 결정해야 할 핵심적인 사항들 - Part 1 기초 수립

DevBabamba 2020. 5. 9. 07:43
반응형

챕터 4 구현 시 결정해야 할 핵심적인 사항들

Tags: Part 1 기초수립

  • 구현을 위한 기초 공사 완료 시 (챕터 3) → 구체적 사항들을 결정해야 함

4.1 프로그래밍 언어 선택

  • 프로그래머는 친숙한 언어 사용 시 생산성이 높다.
    • 3년 이상 사용해온 언어로 작업 시 그렇지 않은 언어로 작업한 경우 대비 30% 생산성 향상
    • 특정 프로그래밍 언어 사용한 경험이 풍부한 프로그래머는 그렇지 않은 경우 보다 3배 이상 높음
  • 고급 언어 사용 프로그래머가 저급 언어 사용 프로그래머보다 생산성과 품질이 높다.
    • C++, 자바 등 고급 언어들은 생산성, 신뢰성, 명료성, 이해성에 있어 어셈블리나 C언어와 같은 저급 언어보다 5~15배 정도 향상 시켜준다고 인정 받음.
  • 프로그래머는 언어에 의해 영향을 받는다.
    • 프로그래밍 개념을 표현하기 위해 사용할 수 있는 단어(명령어)가 개념을 어떻게 표현할 것 인지를 결정하고, 개념을 표현할 수 있는지 까지 결정

4.2 프로그래밍 규약

  • 우수한 소프트웨어 → 아키텍처의 개념적 무결성저수준 구현 간의 관계를 확인할 수 있다.
    • 구현은 반드시 아키텍처와 일관성을 유지해야함
    • 내부적으로도 일관성을 유지해야 함

4.3 기술적인 흐름의 파악

  • 어떻게 프로그래밍할 것인지는 기술적인 흐름에 좌우된다.
    • 단계에 따라 시간과 노력이 들어가는 부분이 다르다.
      • 성숙단계
        • 새로운 기능을 작성하는 데 대부분의 시간을 보낼 수 있도록 수립
      • 초기단계
        • 프로그래밍 언어의 문서화 되어 있지 않은 기능들과 라이브러리 코드에서 발견된 오류를 디버깅하는 방법
        • 다른 벤더들이 만든 라이브러리를 사용하기 위한 코드 수정 등을 알아낼 수 있도록 하는 부분

4.4 주요 구현 방법론의 선택

코드 작성

  • 설계를 선행단계어서 얼마나 작성하고 코드 작성 시에 얼마나 작성할 것인지 정의하였는가?
  • 이름과 주석, 배치에 대한 코드 작성 규약을 정의하였는가?
  • 오류조건을 처리하는 방법이나 보안 문제를 해결하는 방법, 클래스 인터페이스에 사용될 규약, 재사용된 코드에 적용될 기준, 코드에 작성하면서 성능을 얼마나 고려할 것인지와 같이 아키텍처에 포함되는 구체적인 코드 작성 방법을 정의하였는가?
  • 지금 기술 흐름 과정에서 어떤 단계에 있는지 파악하고 그에 따른 접근 방법을 적절하게 조절하였는가? 만약가능하다면 언어에서의 프로그래밍 때문에 제약을 받기보다는 언어로의 프로그래밍을 어떻게 할 것인지를 살펴보았는가?

협동작업

  • 통합 절차에 대해 정의하였는가? 즉, 코드를 마스터 소스에 체트인(check in)하기 전에 프로그래머가 거쳐야하는 구체적인 단계를 정의하였는가?
  • 프로그래머가 짝(pair)으로, 혼자서, 또는 주가지 방법을 어느 정도 결합한 방법으로 프로그래밍 할 것인가?

품질보증

  • 프로그래머가 코드를 작성하기 전에 테스트 케이스를 작성할 것인가?
  • 프로그래머가 처음 혹은 마지막에 상관없이 단위 테스트를 작성할 것인가?
  • 프로그래머가 코드를 체크인하기 전에 디버거로 코드를 살펴볼 것인가?
  • 프로그래머가 코드를 체크인하기 전에 통합 테스트를 할 것인가?
  • 프로그래머가 다른 사람의 코드를 살펴보거나 검사할 것인가?

도구

  • 변경 사항 관리 툴을 선택하였는가?
  • 언어와 언어 버전 또는 컴파일러 버전을 선택하였는가?
  • 프레임워크를 선택하였거나 프레임워크를 사용하지 않기로 확실히 결정하였는가?
  • 비표준적인 언어의 기능을 사용할 것인지 결정하였는가?
  • 편집기, 리팩토링 툴, 디버거, 테스트 프레임워크, 문법 검사기와 같이 앞으로 사용할 툴을 규명하거나 구비하였는가?
반응형