이 장에서는 Programming Language 선택 등 project의 specific design에 대해 다루고 있다.
1. Choice of Programming Language
construction의 시작부터 끝까지 같은 programming 언어를 사용해야 하므로 이 선택은 매우 중요하다. 보통 프로그래머들은 자신과 친숙한 언어를 사용하면 더 생산적인 경향이 있다. high-level language를 사용하는 프로그래머들은 더 좋은 생산성과 퀄리티를 가진 코드를 만들 수 있다. C같은 low level에서 발생하는 세부적인 메모리, OS 관련 문제들을 신경쓰지 않아도 되기 때문이다.
그러나 중요한건 각 언어에는 컨셉이 있고, 그 컨셉을 지켰을 때에 높은 생산성을 보이는데, 친숙하지 않은 언어로 프로젝트를 진행할 경우 친숙한 언어에서 보였던 "습관"들이 나오면서, 코드의 퀄리티가 떨어질 수 있다. 예를 들어, Fortran으로 개발했었던 연구진들이 C++로 새로운 애플리케이션을 개발하기로 했는데, C++로 작성된 코드에서 Fortran의 bad feature가 나타날 수 있다. 따라서 각 언어의 컨셉을 이해하고, 그에 익숙해지도록 실력을 쌓은 뒤 그 언어를 프로젝트에 적용시키는 것이 좋다.
2. Programming Conventions
high quality software를 보면, architecture의 conceptual integrity와 low-level implementation이 일치하는 것을 확인할 수 있다. 이렇듯 코드 구현이 아키텍처와 일관성을 보였을때, 즉 programming convention을 지키는 것이 중요하고, 복잡한 프로그램일 수록 high-level 과 low-level이 harmony를 이루었을때 아키텍처 설계 시 원하는 성능을 보장할 수 있다.
3. Your Location on the Technology Wave
CLI부터 GUI, 그리고 현재 AI prompt의 시대까지 열리면서 infra의 큰 전환이 이루어지고 있다. 따라서 1990년대 프로그래머들이 하던 프로그래밍은 지금과 다르고, 경쟁력 있는 프로그램을 만들기 위해서는 최신 트렌드를 따라가야 할 필요가 있다. 프로그래머는 항상 공부하는 직업임을 명시하고, 자신이 어떤 Technology Wave에 있는지를 파악해야 할 필요가 있다.
'Software Engineering > Code Complete, 2nd Edition' 카테고리의 다른 글
[Code Complete] CH5: Design in Construction(2) (0) | 2024.12.31 |
---|---|
[Code Complete] CH5: Design in Construction(1) (0) | 2024.12.26 |
[Code Complete] CH3: Measure Twice, Cut Once: Upstream Prerequisites(2) (0) | 2024.12.26 |
[Code Complete] CH3: Measure Twice, Cut Once: Upstream Prerequisites(1) (0) | 2024.12.24 |
[Code Complete] CH2: Metaphors for a Richer Understanding of Software Development (1) | 2024.12.24 |