개발 도서/Code Complete

15장 조건문 사용 목차 15.1 if 문 15.2 case 문 15.1 if 문 if-then 명령문 일반적인 경우를 처리하는 코드를 먼저 작성한 다음 특별한 경우를 처리하라. 동치에 대해서 정확하게 이동 경로를 결정하라. 정상적인 경우를 else가 아닌 if 문 다음에 입력하라. if 문 다음에 의미 있는 명령문을 작성하라. else 절을 고려하라 연속적인 if-then-else 문 복잡한 테스트를 불린 함수 호출로 단순화하라. 가장 흔한 경우를 앞에 놓아라. 모든 경우를 다루었는지 확인하라. 언어가 지원한다면 if-then-else 대신 다른 구조를 사용하라. 15.2 case 문 가장 효과적인 case 순서의 선택 알파벳 순이나 숫자 순으로 case를 나열하라. 가장 정상적인 경우를 앞에 놓아라...
14장 순차적 코드 구성하기 목차 14.1 순서가 중요한 명령문 14.2 순서가 중요하지 않은 명령문 14.1 순서가 중요한 명령문 정렬하기 가장 쉬운 순차적 명령문은 순서가 중요한 명령문이다. // 명령문의 순서가 중요한 예제 data = ReadData(); results = CalculateResultsFromData(data); PrintResults(result); 위의 코드를 보면 순서대로 진행되어야 한다는 것을 한번에 알 수 있다. 데이터를 읽어 data 변수에 저장하고, data로 계산한 값을 results 변수에 넣고 이를 출력해야 한다. 만약 중간에 순서가 바뀌면 원하는 결과를 얻지 못할 것을 코드를 읽기만 해도 알 수 있다. 아래 코드는 명령문의 순서가 중요한지 알기 어려운 코드 예시..
13장 특이한 데이터형 목차 13.1 구조체 13.2 포인터 13.3 전역 데이터 13장에서는 특이한 데이터형에 대해 다룬다. 구조체, 포인터, 전역 데이터에 대해 다루는데 일반적으로 잘 사용되지 않는 부분일 수도 있다. 포인터 같은 경우는 자바, C# 등의 언어에서는 에러 발생 위험이 높아 제공하지 않는 형이고, 구조체의 경우 내가 아는 한 C와 C++에서만 사용한다. 전역 데이터는 사용하지 않는 것을 추천하는 것을 많이 들어봤을 것이다. 전역 데이터를 사용해야하는 상황이 생길 경우 어떻게 사용하는지에 대해 설명하고 있다. 13.1 구조체 "구조체"라는 용어는 서로 다른 형의 집합으로 구성된 데이터를 의미한다. C와 C++의 struct와 마이크로소프트 비주얼 베이직의 Structure를 다룬다. 구조..
12장 기본 데이터형 목차 12.1 숫자 일반 12.2 정수 12.3 부동 소수점 수 12.4 문자와 문자열 12.5 불린 변수 12.6 열거형 12.7 이름 상수 12.8 배열 12.9 새로운 형 만들기(형 별명) 12.1 숫자 일반 숫자를 사용할 때 오류를 유발하지 않기 위한 지침 매직 넘버를 피한다. 필요하다면 0과 1은 그냥 사용한다. 0으로 나눔 오류를 미리 방지한다. 컴파일러의 경고에 주의를 기울인다. 12.2 정수 정수를 사용할 때 고려사항 정수 나눗셈을 검사한다. 정수 오버플로를 검사한다. 중간 결과에서의 오버플로를 검사한다. 12.3 부동 소수점 수 부동 소수점 사용 지침 서로 크기가 매우 다른 수를 더하거나 빼지 않는다. 동치 비교를 피한다. 라운딩 오류를 예측한다. 특정한 데이터형을 ..
11장 변수 이름의 기능 목록 11.1 좋은 이름을 위한 고려 사항 11.2 특정 타입의 데이터 이름 짓기 11.3 이름 규약의 효과 11.4 비형식적인 이름 규약 11.5 표준 접두사 11.6 읽기 쉬운 짧은 이름 11.7 피해야 할 변수 이름 이번 장을 읽으면서 10장과 대부분 내용이 비슷하다고 느껴졌다. 10장을 보고 왔다면 가벼운 마음으로 읽고 넘어가면 되겠다. 11.1 좋은 이름을 위한 고려사항 변수 이름을 지을 때 그 이름이 변수가 나타내는 것을 완전하고 정확하게 설명하는지를 가장 중요하게 고려해야 한다. 좋은 이름을 생각해내는 효과적인 기법은 변수가 표현하는 것을 단어로 서술하는 것이다. 종종 서술문 자체가 가장 좋은 변수 이름인 경우가 있다. 나쁜 변수명을 자바로 작성한 예제 x = x -..
10장 변수 사용 시 고려할 사항 목차 10.1 데이터 사용 능력 10.2 변수 선언을 쉽게 만드는 방법 10.3 변수 초기화 가이드라인 10.4 범위 10.5 지속성 10.6 결합시점 10.7 데이터형과 제어 구조 사이의 관계 10.8 변수를 한 가지 목적으로만 사용하는 방법 10.1 데이터 사용 능력 이 장에서 기본적인 테스트를 통해 내가 어떤 수준의 데이터 사용 능력이 있는지 점검해보았다. 나는 숙련된 개발자 수준이 나왔는데 전혀 신뢰할 수 없었다. 내 스스로가 숙련되지 않았다고 생각하는데 이렇게 높은 점수가 나온 것이 의아했다. 그래도 그동안 공부한 것이 헛되지는 않았다는 뿌듯함은 있었다. 정말로 숙련된 개발자가 되기 위해 자기 개발에 힘써야겠다. 10.2 변수 선언을 쉽게 만드는 방법 요즘 자바..
9장 의사코드 프로그래밍 프로세스 목차 9.1 클래스 및 루틴 개발 단계 요약 9.2 전문가를 위한 의사코드 9.3 PPP를 이용한 루틴 구현 9.4 PPP 대안 이 장에서는 설계와 문서 작업 시 해야 하는 작업을 줄이고 품질을 향상시키는 의사코드 프로그래밍 프로세스(Pseudocode Programming Process, PPP)에 대해서 설명한다. 9.1 클래스 및 루틴 개발 단계 요약 클래스 생성 단계 클래스에 대한 일반적인 설계 작성 -> 클래스 내에 각 루틴 구현 -> 클래스를 전체적으로 검토하고 테스트 루틴을 작성하는 단계 '루틴 설계 -> 설계 검사 -> 루틴 코드 작성 -> 코드 검토 및 테스트' 단계를 필요할 때까지 반복하고 완료 9.2 전문가를 위한 의사코드 "의사코드"라..
8장 방어적 프로그래밍목차8.1 잘못된 입력으로부터 프로그램 보호8.2 어설션8.3 오류 처리 기법8.4 예외8.5 오류로 인한 손상을 막기 위한 방책8.6 디버깅 보조 도구8.7 얼마나 방어적으로 프로그래밍할 것인지 정하기8.8 방어적 프로그래밍에 대해서 한 번 더 고민하기8.1 잘못된 입력으로부터 프로그램 보호'쓰레기를 넣으면 쓰레기가 나온다'라는 말은 개발자에게 어울리지 않는다. '쓰레기를 넣으면 아무것도 나오지 않는다' 또는 '쓰레기를 넣으면 오류 메시지를 출력한다', '쓰레기를 허용하지 않는다'가 되도록 프로그램을 제작하라.쓰레기 입력을 처리하기 위한 방법으로는외부로부터 들어오는 모든 데이터의 값을 검사하라.루틴의 모든 입력 매개변수 값을 검사하라.잘못된 입력..
7장. 고급 루틴 목차 7.1 루틴을 작성하는 이유 7.2 루틴 수준의 설계 7.3 좋은 루틴 이름 7.4 루틴은 얼마나 길어야 할까? 7.5 루틴 매개변수 처리 7.6 함수를 사용할 때 특별히 고려해야 할 사항 7.7 매크로 루틴과 인라인 루틴 루틴 : 한 가지 목적을 위해서 호출할 수 있는 개별 메서드나 프로시저 7.1 루틴을 작성하는 이유 복잡성을 줄인다. 이해하기 쉬운 중간 단계의 추상화를 도입한다. 중복 코드를 피한다. 서브 클래싱을 지원한다. 코드의 실행 순서를 감춘다. 포인터 연산을 감춘다. 이식성을 높인다. 복잡한 불린 테스트를 단순화한다. 성능을 개선하기 쉽다. '한 줄 또는 두 줄 정도로 된 짧은 코드를 루틴으로 작성하는 것이 효율적일까?' 라는 질문에 이 책은 충분히 효..
6장. 클래스 다루기목차6.1 클래스의 토대: 추상 데이터형(ADT)6.2 좋은 클래스 인터페이스6.3 설계와 구현에 관한 이슈6.4 클래스를 작성하는 이유6.5 프로그래밍 언어에 특화된 이슈6.6 클래스를 넘어서: 패키지6.1 클래스의 토대: 추상 데이터형객체지향 프로그래밍을 이해하기 위해서는 ADT를 반드시 이해해야 한다. ADT를 이해하지 못하고서는 이름만 클래스인 클래스를 작성하게 될 것이다. 그런 클래스는 실제로는 연관성이 높지 않은 데이터와 루틴을 편의를 위해 보관하는 상자와 다를 게 없다. ADT를 사용하면 구현 세부 사항을 감출 수 있고, 변경이 전체에 영향을 미치지 않게 할 수 있다.실제 존재하는 객체를 다룰 수 있게 해주기 때문에 ADT는 개발을 하는데 상당한 편의를 가져다 줄 수 있다..
Chamy619
'개발 도서/Code Complete' 카테고리의 글 목록 (3 Page)