유지 관리 가능한 코드의 프로토타입
2873 단어 beginnersrefactoritpython
소개
이 게시물의 원동력은 프로덕션 소프트웨어 애플리케이션 작성에 대한 나의 접근 방식이 내가 체크인하려는 리포지토리 외부에 있는 일종의 샌드박스에서 코드를 작성하는 것임을 알게 되었기 때문입니다.
목표
내 목표는 먼저 내가 해야 할 작업을 수행할 수 있다는 것을 증명하고 코드 미학이나 코드 수정이 얼마나 쉬운지에 관계없이 올바른지 확인하는 것이었습니다. 주된 목적은 무언가를 작동시키는 것이었습니다. 그러나 항상 초기 코드 버전이 출시 가능한 최종 제품의 형태나 방식이 아니라는 태도가 있었습니다.
원기
blog post에서 논의한 문제를 해결하려고 했습니다. 나는 Python 내에서 어떻게 완전히 익숙하지 않았습니다.
아이디어는 유틸리티가 문제가 있는 볼륨 세트(일명 성가신 타임머신 볼륨)를 마운트 해제한다는 것입니다.
소스 코드 버전 1
일반적인 방식으로 방금 지정한 요구 사항을 충족하는 다음 그림에 설명된 코드를 작성했습니다.
이 글을 쓰면서 변수가 다음과 같다는 것을 알았습니다.
output
tmLines
및 timeMachineVolumes
모두 문자열 목록이라고 선언했습니다. 버그를 소개하는 고전적인 방법인 버그에 대한 기회가 있다면.
또한 나는 제한되지 않은 코드의 많은 양과 많은 양의 팬이 아닙니다. 제 생각에는 그것은 유지 불가능한 일입니다. 원래 코드는 리팩터링할 수 있다는 힌트를 제공합니다. 각 코드 블록 앞에 해당 기능을 설명하는 주석이 있기 때문에 이를 추론할 수 있습니다.
더 나은 방법
첫 번째 단계는 다양한 변환을 위한 특정 유형을 만드는 것이었습니다. 이것은 실제로 구문상의 설탕일 뿐이지만 리팩토링할 때 코드를 더 읽기 쉽고 오류가 덜 발생하도록 하는 역할을 합니다. 다음 그림은 변환을 보여줍니다.
다음으로 코드를 클래스의 메서드로 재정렬해야 했습니다. 다음 그림은 원래 코드를 재정렬하여 향후 버전에서 더 쉽게 이해할 수 있도록 만드는 방법을 보여줍니다.
이 리팩토링의 결과 세 가지 방법이 나왔습니다.
• _runExternalMountCommand
• _extractTimeMachineLines
• _extractTimeMachineVolumes
이 세 가지 메서드는 .execute 드라이버 메서드에서 순차적으로 호출됩니다.
요약
배워야 할 것은 먼저 코드가 올바르게 작동하도록 만드는 것입니다. 다음으로, 미래의 귀하 또는 원래 코드를 작성하지 않은 누군가가 언젠가는 이를 업데이트 및/또는 수정해야 한다는 점을 기억하십시오. 따라서 사람이 이해할 수 있도록 코드를 구성하십시오. 소스 코드의 기능에 대한 명확한 힌트를 남겨주세요. 영어로 읽고 자체 문서화되는 코드를 작성한다고 말할 수 있습니다. 어떤 사람들은 이것을 literate programming 이라고 부릅니다.
원본 버전을 게시했습니다here.
Reference
이 문제에 관하여(유지 관리 가능한 코드의 프로토타입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hasii2011/prototype-to-maintainable-code-n6f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)