Debugguing
Objects 체계적인 디버깅 디버깅이 선택되어 질 때가 있다. (전체 시스템이 함께 연결되거나, 배포 후에 사용자 보고) 버그가 현지화가 불가능 할때에는 디버깅이 좋은 전략이 될 수도 있다. Reproduce the Bug 고장을 야기하는 테스트케이스를 반복해서 시도한다. regr...
Objects 체계적인 디버깅 디버깅이 선택되어 질 때가 있다. (전체 시스템이 함께 연결되거나, 배포 후에 사용자 보고) 버그가 현지화가 불가능 할때에는 디버깅이 좋은 전략이 될 수도 있다. Reproduce the Bug 고장을 야기하는 테스트케이스를 반복해서 시도한다. regr...
Code Review 본래 코드를 적은 사람이 아닌 다른 사람에게 코드를 보여주고 함께 하는것은 좋다. 코드 리뷰의 두가지 목적 Improving the code : 버그(예상되는)를 찾고 코드의 스타일을 서로 점검하면서 프로젝트의 기준의 일관성을 만든다. Improving the programmer : 코드 ...
First Defense: Make Bugs Impossible 버그에 대한 최고의 방법은 설계상 불가능하게 하는것. 이전에 이야기한 static checking → 컴파일 시간에 버그를 제거함 불변성 : 한번 생성된 값은 절대 바뀌지 못한다. → 버그를 예방하는 또 다른 원리 String은 불변이다.버그를 방지하기 위...
Objects 추상 자료형 표현 독립성 추상 데이터 유형의 위험한 문제를 해결하고, 클라이언트가 내부 표현에 대한 가정이 왜 위험하고, 어떻게 그것을 피할 수 있는가? 연산의 분류와 추상적인 데이터 유형에 대한 좋은 설계 원리를 세우는법 What Abstraction Means 추상화 데이터 유형은 소프트웨어 공학의 일반적...
Objectives Invariants representation exposure abstraction functions representation Invariants 추상화 함수 그리고 Invariants(상수)의 개념을 통해 class에 ADT를 구현하는것이 무엇을 의미하는지에 대해 공부한다. 이러한 수학적 ...