나는이 상황을 매우 잘 알고있다. 그런 식으로 막히면 프로젝트에서 다른 관점을 취하려고합니다.
1.) 사용자 / 고객 관점-피드백 사용
불행히도 우리는 코드를 작성하는 방식으로 응용 프로그램을 사용하기 때문에 자체 결함을 볼 수없는 방식으로 코드에 걸렸습니다. 사람들이 어떻게 그것을 사용하는지 살펴보고 가장 직관적 인 사용자 지침이 무엇인지 알아 내려고 노력하십시오. UI 프로토 타입을 사용해보십시오. 이것은 재미있을 것 같지만 재 설계주기를 시작하는 시간보다 사용 논리를 변경하여 코드의 많은 부분을 다시 코딩해야한다는 것을 알게되면.
2.) 코드의 기능 분석을 수행하고 시각화
일부 IDE 및 프레임 워크는 UI 및 백엔드 코드 혼합과 같은 기능을 제공합니다. 이런 일이 생기면 언젠가는 의존성이 깨지기 쉽고 어려워서 코드베이스를 거의 유지할 수없는 상황에 직면하게됩니다. 특히 UI 코드를 다른 코드와 혼합하면 스파게티 코드 및 중복 기능이 발생할 수 있습니다. 데이터베이스 클래스, 통신 클래스, UI 클래스, 코어 클래스 등과 같은 기능 블록으로 코드를 나누고 함수 블록에 이름을 말하십시오. 그런 다음 그래픽 도구 (마인드 매핑 도구 사용)로 기능을 시각화하여 구조가 다른 프로젝트에 거대한 코드 블록을 재사용 할 수있을만큼 논리적이고 모듈화되어 있는지 확인하십시오. 큰 고통.
내 경험 에서이 작업을 수행하는 가장 좋은 방법은 클래스와 코드 호출 간의 모든 종속성을 시각화하는 문서를 만드는 것입니다. 결과적으로 인터페이스 디자인이 시각화됩니다. 이 코드 맵이 행동 할 때보 다 완전한 clusterf ***처럼 보인다면. 아직 발생하지 않은 경우 코드 구조를 나타내는 적절한 명명 규칙을 호출하는 방법과 수행 방식에 대해 생각할 필요가없는 방식으로 생각해야합니다.
3.) 품질 보증에 대한 일반적인 접근법을 사용
내가 가장 좋아하는 것은 FMEA입니다. 코딩 측면에서 이것은 과거에 무엇이 잘못되었는지 분석 할뿐만 아니라 무엇이 잘못 될 수 있는지에 대한 생각을 의미합니다. 매우 일반적인 예는 갑자기 네트워크 연결이 끊어진 것입니다. 이 작업을 수행 한 후 데이터 손실, 충돌, 잘못된 계산과 같은 결과로 오류 조건을 분류하고 사용자에게 미치는 영향을 판단 할 수 있습니다. 아직 완료되지 않은 경우 간소화 된 오류 및 예외 클래스 및 루틴을 정의하면 코드를 깨끗하고 직선적으로 유지할 수 있습니다. 가장 좋은 방법은 다른 코드를 작성하기 전에 새로운 코드의 평화를 구현하는 것입니다. (저는 항상이 조언을 따르지 않는 것은 유죄입니다.)
또한 자체 코드에 대한 "개선 제안 목록"을 생성하고 자주 업데이트하는 데 도움이되었습니다. (솔직히 말해서 내 프로젝트에는 여전히 자랑스럽지 않은 많은 코드가 있습니다.) 또한 API 문서, 개발자 회의 또는 개발자 잡지에서 모범 사례 코드를 수집하고 살펴 보는 데 시간을 투자합니다.
이 시점까지는 코드를 만질 필요가 없습니다. 단순히 무엇이 잘못되었는지 인식하고 코드를 개선하는 방법을 정의하는 방법을 찾는 것입니다.
마지막으로 오래된 방귀에서 일상적인 작업에 대한 몇 가지 팁. 먹을 수있는 것보다 더 많이 물지 않도록하십시오. 이로 인해 깨끗한 코딩에 너무 많은 압력이 발생합니다. 당신은 그것을 올바르게 할 시간을 거의 얻지 못하지만 나중에 결함을 수정하는 데 시간이 걸릴 것입니다.
임시 솔루션만큼 오래 지속되는 것은 없지만, 문제가 해결 될 때 종종 문제를 해결하는 데 시간이 오래 걸립니다. 예를 들어 기본 프레임 워크 나 OS의 결함에도 불구하고 무언가를 작동시키는 데 사용되는 불쾌한 해킹이나 이상한 예외가 있습니다. 그런 다음 결함이 해결되거나 새 버전이 단순히 API를 삭제합니다…
문제가 발생하여 의견을 작성하고 수시로 검토해야하는 메모를 작성하는 것보다 해결 방법을 찾아야하는 경우 일반적으로 우리는 새로운 것을 배우기 때문에 점점 좋아집니다. 더 좋은 방법을 찾으면 최대한 빨리 구현하십시오. 그렇지 않으면 해결 방법 및 예외 예외에 대한 해결 방법을 언젠가 코딩 할 수 있습니다. (너희 가운데 죄가없는 사람이 내게 첫 바이트를 던져 보자.)