나는 github 프로젝트를 탐색하고 10 만 개 이상의 라인 이있는이 모듈 을 발견 했습니다 .
단일 모듈에서 많은 양의 코드를 갖는 것이 일반적인 관행입니까?
이것은 여러 모듈로 나누어야한다고 생각합니다. 각 DB 엔진마다 하나씩 일 수 있습니다.
개발자가 이와 같은 하나의 거대한 모듈을 만들면 어떤 이점이 있습니까 ( "한 곳에서 모든 기능을 수행하는 것"이외) 또는 모듈을 분리하면 어떤 단점 ( "복잡성"이 아닌 것)이 있습니까?
나는 github 프로젝트를 탐색하고 10 만 개 이상의 라인 이있는이 모듈 을 발견 했습니다 .
단일 모듈에서 많은 양의 코드를 갖는 것이 일반적인 관행입니까?
이것은 여러 모듈로 나누어야한다고 생각합니다. 각 DB 엔진마다 하나씩 일 수 있습니다.
개발자가 이와 같은 하나의 거대한 모듈을 만들면 어떤 이점이 있습니까 ( "한 곳에서 모든 기능을 수행하는 것"이외) 또는 모듈을 분리하면 어떤 단점 ( "복잡성"이 아닌 것)이 있습니까?
답변:
당신이 만난 것은 소위 " 신의 대상 "입니다. 왜냐하면 모든 것이 또는 모든 것을 알고 있기 때문입니다. 그것을 피하십시오 (가능한 경우).
모듈 당 정해진 수의 LOC가 없지만 코드를 쉽게 탐색하고 메소드의 수행 내용을 쉽게 이해할 수 있도록해야합니다. 내 개인적인 경험에서 모듈이 1k line * 이상이면 잘못된 일이 있습니다.
* 1k 라인 모듈조차도 매우 큽니다.
와우.
나는 이것에 대한 완전한 대답을 모른다고 생각하지만 제목 질문 "Python 모듈은 얼마나 커야합니까?"에 대한 대답으로 생각하고 싶습니다. 비밀을 숨기고 Parnas의 개념으로. 이 경우 모듈은 올바르게 수행하는 것처럼 보입니다 (그리고 숨겨지는 큰 비밀).
나는 나중에 커플 링과 응집력에 관해 많은 이야기를하는 논문을 파고 들었습니다. DB 모듈이 많을 경우 모듈간에 너무 많은 호출이 발생하여 나쁜 관행으로 간주되는 항목, 즉 응집력이 낮고 커플 링이 높아질 수 있습니다.
나는 모범 사례가 지시하는 것에도 불구하고 단순성과 이해를 위해 모범 사례를 희생하기로 결정한 프로그래머에 관한 실험 데이터를 보았습니다. 실제로 모범 사례 간에도 충돌이있을 수 있습니다. 예를 들어 성능이 일반적으로 나중에 유지 보수를하는 사람들을 행복하게하는 것은 아닙니다. 이 경우 큰 모듈을 사용하면 가독성이 어떻게 향상 될지 잘 모르겠습니다.
내가 알아 차린 또 다른 것은 코드의 일부가 일반으로 표시되고 나머지 DB는 코드에서 확장된다는 것입니다. 나는 파이썬 프로그래머가 아니지만 아마도 뭔가를 정당화 할 수 있습니까?
따라서 최종 답변이 없지만 누군가 가이 점을 강조하기를 바랍니다.