프로그래밍 방법론-디버깅
프로그램이나 소프트웨어에서 오류를 식별하고 제거하는 것을 debugging. 디버깅은 이상적으로 테스트 프로세스의 일부이지만 실제로는 프로그래밍의 모든 단계에서 수행됩니다. 코더는 계속 진행하기 전에 가장 작은 모듈을 디버깅해야합니다. 이를 통해 테스트 단계에서 발생하는 오류 수를 줄이고 테스트 시간과 노력을 크게 줄일 수 있습니다. 프로그램에서 발생할 수있는 오류 유형을 살펴 보겠습니다.
구문 오류
Syntax errors프로그램의 문법 오류입니다. 모든 언어에는 프로그램 작성을위한 식별자 생성, 표현식 작성 등과 같은 고유 한 규칙 집합이 있습니다. 이러한 규칙을 위반하면 오류가 호출됩니다.syntax errors. 많은 현대integrated development environments프로그램을 입력 할 때 구문 오류를 식별 할 수 있습니다. 그렇지 않으면 프로그램을 컴파일 할 때 표시됩니다. 예를 들어 보겠습니다.
이 프로그램에서 prod 변수는 선언되지 않았으며 컴파일러에 의해 발생합니다.
의미 오류
Semantic errors 또한 불린다 logical errors. 명령문에는 구문 오류가 없으므로 올바르게 컴파일되고 실행됩니다. 그러나 논리가 올바르지 않기 때문에 원하는 출력을 제공하지 않습니다. 예를 들어 보겠습니다.
13 행을보십시오. 여기서 프로그래머는 0으로 나누는 것을 피하기 위해 제수가 0인지 확인하려고합니다. 그러나 비교 연산자 ==를 사용하는 대신 할당 연산자 =가 사용되었습니다. 이제 "if 표현식"이 참으로 평가 될 때마다 프로그램은 "0으로 나눌 수 없습니다"로 출력을 제공합니다. 의도 한 바가 확실히 아닙니다 !!
논리적 오류는 어떤 프로그램에서도 감지 할 수 없습니다. 원하는 출력을 얻지 못한 경우 프로그래머가 직접 식별해야합니다.
런타임 오류
런타임 오류는 프로그램을 실행하는 동안 발생하는 오류입니다. 이것은 프로그램에 구문 오류가 없음을 의미합니다. 프로그램에서 발생할 수있는 가장 일반적인 런타임 오류는 다음과 같습니다.
- 무한 루프
- '0'으로 나누기
- 사용자가 입력 한 잘못된 값 (예 : 정수 대신 문자열)
코드 최적화
품질과 효율성을 향상시키기 위해 코드를 수정하는 모든 방법이 호출됩니다. code optimization. Code quality코드의 수명을 결정합니다. 코드를 장기간 사용 및 유지 관리 할 수 있고, 제품에서 제품으로 이월되면 품질이 높고 수명이 길어집니다. 반대로 코드 조각이 짧은 기간 (예 : 버전이 유효 할 때까지) 만 사용하고 유지 관리 할 수 있다면 품질이 낮고 수명이 짧은 것으로 간주됩니다.
코드의 신뢰성과 속도는 code efficiency. 코드 효율성은 소프트웨어의 고성능을 보장하는 데 중요한 요소입니다.
코드 최적화에는 두 가지 접근 방식이 있습니다.
Intuition based optimization (IBO)− 여기서 프로그래머는 자신의 기술과 경험을 바탕으로 프로그램을 최적화하려고합니다. 이것은 작은 프로그램에서 작동 할 수 있지만 프로그램의 복잡성이 증가함에 따라 비참하게 실패합니다.
Evidence based optimization (EBO)− 여기서 자동화 된 도구를 사용하여 성능 병목 현상을 파악한 다음 관련 부분이 그에 따라 최적화됩니다. 모든 프로그래밍 언어에는 고유 한 코드 최적화 도구 세트가 있습니다. 예를 들어 PMD, FindBug 및 Clover는 Java 코드를 최적화하는 데 사용됩니다.
시간이 부족하고 메모리가 비싸기 때문에 코드는 실행 시간과 메모리 소비에 최적화되어 있습니다. 둘 사이에 균형이 있어야합니다. 만약time optimization 메모리에 대한 부하를 증가 시키거나 memory optimization 코드를 느리게 만들고 최적화 목적을 잃게됩니다.
실행 시간 최적화
사용자에게 빠른 서비스를 제공하기 위해서는 실행 시간에 대한 코드 최적화가 필요합니다. 다음은 실행 시간 최적화를위한 몇 가지 팁입니다.
기본 제공 실행 시간 최적화가있는 명령 사용
if 조건 대신 스위치 사용
루프 구조 내에서 함수 호출 최소화
프로그램에서 사용되는 데이터 구조 최적화
메모리 최적화
아시다시피 데이터와 명령어는 메모리를 소모합니다. 데이터라고하면 표현의 결과 인 중간 데이터를 의미하기도합니다. 또한 최적화하려는 프로그램이나 모듈을 구성하는 명령어의 수를 추적해야합니다. 다음은 몇 가지 팁입니다.memory optimization −
내장 메모리 최적화가있는 명령 사용
레지스터에 저장해야하는 변수의 사용을 최소화하십시오.
여러 번 실행되는 루프 내에서 전역 변수를 선언하지 마십시오.
sqrt ()와 같은 CPU 집약적 기능을 사용하지 마십시오.