2012-12-05 4 views
1

저는 파이썬과 같은 동적 언어에 항상 문제가 있습니다.파이썬과 같은 동적 언어의 오류를 줄이고 코드 품질을 향상시키는 방법

여러 문제 :

  1. 오타 오류, 나는이 몇 가지 오류를 줄이기 위해 pylint를 사용할 수 있습니다. 그러나 필린 트 (pylint)가 파악할 수없는 오류가 있습니다.
  2. 객체 유형 오류입니다. 매개 변수의 유형이 int인지 잊어 버리는 경우가 종종 있습니다. str? 어떤 물건? 또한, 내 코드에서 일부 개체의 형식을 잊어 버렸습니다.

단위 테스트를 통해 가끔 도움이 될 수도 있지만 UT를 수행 할 충분한 시간이있는 것은 아닙니다. 작은 일을하기 위해 스크립트가 필요할 때 코드 줄은 100 줄에서 200 줄까지 크게는 아니지만 최대한 빨리 스크립트를 사용해야하기 때문에 단위 테스트를 수행 할 시간이 없습니다. 따라서 많은 오류가 나타납니다.

그래서 이러한 문제의 수를 줄이는 방법에 대한 아이디어가 있습니까?

+1

아마도 [programmers.stackexchange.com] (http://programmers.stackexchange.com/)에 더 적합 할 것입니다. – sloth

+0

파이썬은 동적입니다. 여기서는 전혀 차이가 없습니다. 내 경험으로 인해 더 많은 실수를하거나 더 많은 실수를하지 않거나 다른 실수 나 다른 실수를해서는 안됩니다. 컴파일 할 때 오류를 잡을 수 없기 때문에 처음에는 신경이 쓰이지 만, 필 린트 나 pyflakes를 사용하면 신경이 쓰입니다. 그러나 단위 테스트는이를 수행하는 유일한 방법이며, 동적 인 언어인지 여부입니다. –

+0

@LennartRegebro 정적 언어는 컴파일시 객체 유형 오류를 발견 할 수 있으므로 문제가되지 않지만 Python에서는 유형이 무엇인지 잊어 버리고 컴파일 시간 오류가 발생하지 않습니다. – jiluo

답변

4

단위 테스트 입니다. 테스트에 너무 많은 시간이 걸린다 고 생각되면 코드를 공개 한 후 식별, 진단 및 수정과 같은 결함을 잃어버린 시간을 자문 해보십시오.

사실상 프로덕션 환경에서 테스트하고 있으며 개발주기의 후반부에 발견 된 결함이 수정하기가 훨씬 더 비쌀 수 있음을 보여주는 많은 증거가 있습니다.

2

unittesting (chamila_c의 대답 참조) 외에도 훌륭한 규칙과 코딩 스타일을 고수하는 것이 도움이됩니다. 나는 당신이 말하고있는 일종의 사용 스크립트를 알고 있다고 생각한다. (당신이 말하는 것을 가정 할 때), 종종 그들을위한 완벽한 테스트 스위트를 작성하는 것은 과도한 것처럼 보인다. 도움이 될만한 몇 가지 팁 :

  • 코드를 기능으로 분리하십시오. 작고 고립 된 코드를 다루는 경우 문제를 쉽게 식별 할 수 있습니다. 특히 이름 지정 문제가 더 쉽습니다. 작은 기능을위한 단위 테스트를 작성하는 것이 훨씬 쉽습니다. 이 접근 방식을 사용하면 확인 된 문제를 테스트하고 격리하기위한 전체 테스트 제품군이 필요 없다는 것을 알게되었습니다.
  • 일관되고 표현하기 쉬운 명명 규칙을 고수하십시오. 예를 들어 a = min(b)과 같은 임의의 값이 아닌 min_value = min(all_values)을 사용하십시오. 함수 이름도 같습니다. def f(s)
  • PEP8을 읽고 적용하십시오.
  • 코드를 설명과 함께 문서화하십시오. 코드를 작성하는 데 몇 초 밖에 걸리지 않으며 다시 돌아올 때 진행되는 상황을 쉽게 파악할 수 있습니다. 하루 만에 잊을 수있는 놀라운 디테일!
+0

그래, 한 번 사용하는 스크립트, 대부분의 시간, 나는이 스크립트에서 고민하고, 오류를 고치는 중이다. 네가 좋은 조언을 해준 것 같아. 감사! – jiluo

관련 문제