문제

우리 회사는 mod_perl, axkit 및 apache의 조합을 사용하여 웹 앱을 개발합니다. UNIX 운영 체제에는 수많은 PERL 모듈, Javascripts 등이 있습니다.

새로운 기능을 작성해야 할 때마다 코드 재사용을 시도하지만 모든 PERL 모듈과 Javascripts가 폴더에 흩어져 있습니다.

나는 나중에 똑같은 일을 한 함수가 있음을 발견하기 위해 나중에 코드를 작성하는 것을 싫어합니다. 내 현재의 방법은 테이블 이름을 위해 중복 기능이 있는지 확인하려고 시도하는 것이 포함되지만 그 외에도 거의 의지가 거의 없습니다. 검색하고 아무것도 찾는 데 너무 많은 시간을 소비하고 싶지 않기 때문에 포기하고 새로운 기능을 작성하십시오.

더 좋은 방법이 있습니까? 또는 더 나은 것은 모든 기능과 모듈을 올바르게 관리하고 개발자가 주석 등을 기록 할 수 있도록 설치할 수있는 프리웨어 도구가 있습니까?

편집하다

거기 있습니다 이 토론 도구를 사용하여 C ++에서 코드 복제를 감지 할 때 UNIX 플랫폼의 PERL 코드에 대해 이와 같은 것이 있습니까?

감사합니다 ~ 스티브

도움이 되었습니까?

해결책

정리하다 각 기능에 하나의 장소가 있어야하고 무언가를 쉽게 찾을 수 있도록 소스 디렉토리.

공유하십시오 이름 지정 컨벤션 복제를 방지합니다.

설계 당신의 모듈은 그들이 한 가지 일만 할 수 있도록하고 잘 수행합니다.

검토 이름과 위치가 올바른지 확인하는 코드.

효율적으로 제공하십시오 검색 엔진 코드 인덱서를 기반으로 특유의 작업을 수행하는 기능이 이미 있으면 쉽게 볼 수 있습니다.

시간을 과소 평가하지 마십시오 일반화하십시오 효과적으로 재사용 할 수 있도록 기존 구성 요소.

문서 API 문서 AN/또는 단위 테스트가 포함 된 모듈.

의사소통하다 팀 내에서 모든 사람이 이미 작성된 내용에 대해 잘 이해하고 누가 모듈을 사용했는지 또는 사용했는지 알고있는 사람을 잘 이해할 수 있습니다.

다른 팁

나는 당신이 어떤 형태의 버전 제어 소프트웨어를 가지고 있다고 믿습니다 (SVN, 수은제, git, vss)? 지금하지 않으면 하나를 얻고 사용할 시간입니다. 이렇게하면 사용중인 모듈과 코드가 어디에 있는지에 대한 아이디어가 있습니다. 당신은 또한 a를 사용할 수 있습니다 ctags와 같은 작성한 모든 모듈을 인덱싱하려면 (또는 사용중인)

IDE (내가 싫어하는만큼)는 코드와 리팩터를 찾는 데 도움이 될 수 있습니다.

이것은 내가 매우 관심있는 것입니다.

SVN과 같은 간단한 버전 제어 소프트웨어를 사용하여 Git 또는 Bazaar가 원하는 것이 아닙니다. VC는 이러한 시스템 외에 필수이지만이 시스템은 아닙니다. 일부 연구 후, 나는 이것을 달성하기 위해 포장을 조사하라는 지시를 받았으며, 일종의 포장 시스템이 갈 길이라고 생각합니다.

포장 시스템의 예를 원한다면 Debians Apt를보십시오. 각 패키지에는 설명과 Sourcecode가있는 버전의 종속성이 있으며 우수한 패키징 시스템이 제공되므로 "Magic Search Set Dequation Fixpoint"처럼 이동할 수 있으며 Magic Packaging System은 문제를 해결하는 모듈을 찾을 것입니다. 소스 코드에 패키지를 포함 시키면 그래프 등과 같은 모든 누락 된 종속성을 추가합니다.

그러나 이것에 대한 연구는 내 노트북의 HDD가 사망하기 직전에 시작하여 더 많은 연구와 실제 결과를이 방향으로 연기했지만 흥미로운 것을 찾을 수있을 것입니다 (그리고 나에게 말해 줄 수 있습니다. 너지, 너지)

HTH, TETHA

모듈에 포함 된 경우 포드 문서 공통 디렉토리 또는 디렉토리 세트 아래에 설치되므로 사용하기 쉽습니다. pod2html HTML 문서를 생성합니다. HTML 문서가 있으면 전체 텍스트 검색 색인 (FTS3, MySQL, Lucene, Kinosearch 등) 및 간단한 검색 양식 앱 (CGI 또는 MOD_PERL)을 적용하고 준비가되었습니다.

TRAC를 사용하는 경우 a가 있습니다 플러그인 .pod 및 .pm 파일에서 Trac Wiki 페이지 페이지를 만들어 문서를 쉽게 검색 할 수 있습니다.

한 번은 Perl을 사용한 회사에서 일했고 비슷한 문제가 있습니다. 우리가 생각해 낸 해결책은 3 계층 아키텍처 (프레젠테이션, 비즈니스 및 지속성) 및 조작되는 요소를 고려하여 파일의 기능을 재구성하는 것이 었습니다.

따라서 데이터베이스의 각 메인 테이블에 하나의 Perl 파일이 있고 각 엔티티가 비즈니스 운영을 조작하기 위해 각 엔티티에 대해 하나의 PERL 파일이 있습니다.이를 통해 코드 복제를 피하기 쉽습니다. 주어진 기능.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top