2011-01-11 4 views
1

저는 여러 사용자가 대용량 데이터 파일을 제출하고 작업을 수행 할 수 있도록하는 프로젝트를 진행하고 있습니다. 이러한 작업을 수행하는 "백엔드"는 Perl로 작성되고 "프론트 엔드"는 PHP를 사용하여 HTML 템플리트 파일을로드하고 전달할 내용을 결정합니다. 데이터는 데이터베이스 (MySQL, SQLite, Oracle)에 저장되며, 아직 실행되지 않은 데이터가있는 동안 Perl은이를 시스템로드에 따라 다른 스레드에 데이터를 전달하는 실행 대기열에 추가합니다. 또한 주요 Perl 스크립트가 작동하기 전후에 데이터의 사전 및 사후 처리가있을 수 있으므로 (사양이 분명하지 않음) 이러한 프로세서를 사용자가 선택할 수있는 플러그인으로 허용 할 수 있습니다. 나는이 프로젝트를 좀 더 절차적인 방식으로 작성해 왔지만, 프로젝트의 나머지 부분에서 한 가지 변경 사항의 범위를 제한하는 것과 관련된 우려를 신속하게 인식하고 있습니다.이 프로젝트를 구성하는 "올바른 방법"은 무엇입니까?

저는 디자인 패턴에 익숙하지 않으며 계속 진행하는 가장 좋은 방법이 무엇인지 궁금합니다. 나는 꽤 많이 던져진 MVC를 들었다. 그러나 나는 그것을 적용하는 방법을 확신 할 수 없다. 특히, 디자인 패턴 및 폴더 계층 구조와 관련하여이 코드를 구성하는 좋은 옵션은 무엇입니까? 언어 간 중복 된 코드를 최소화하면서 PHP와 Perl 모두에서 어떻게 이것을 할 수 있습니까? URL에 추한 경로가 없도록 PHP 파일을 최상위에 두어야합니까?

또한 교환 가능한 데이터베이스를 제공하려는 경우 각 테이블마다 고유 한 DAO 구현이 필요합니까?

+2

Oof. 여기에 많은 것들이 있습니다. 그래도 물어 보는 것에 대한 명성. 나는 다시 시도 할 것입니다 ...하지만 이번에는 작은 덩어리로 질문을 나누십시오 :) –

답변

0

MVC 프레임 워크는 모든 웹 개발자가 코드를 체계적으로 관리 할 수 ​​있도록 잘 정의 된 분리를 제공하는 훌륭한 도구입니다. PHP를 들어

나는 Zend Framework

데이터베이스 스키마가 사용 어떤 플랫폼에 따라 변경됩니다 좋습니다.

1

이 정말 몇 가지 질문이지만, 여기 간다 :

MVC

을 MVC 당신이 모델,보기 및 컨트롤러 부분에 대한 책임이 무엇인지에 대한 명확한 생각을해야합니다 구현하려면. 당신은 read about this for yourself을 할 수 있지만,이 경우 :

  • 모델에만 데이터 파일에 대한 작업을 수행하는 코드, 즉 백 엔드 Perl 스크립트를 포함해야
  • 뷰는 단지 HTML 템플릿 될 것입니다. 페이지를 표시하는 데 필요한 것을 제외하고 PHP 로직을 포함하지 않아야합니다.
  • 컨트롤러는 PHP 프론트 엔드를 Perl 백엔드에 연결하는 부분과 새로운 파일을 폴링하는 펄 스크립트를 응용 프로그램의 나머지 부분으로 사용합니다.

작성한 모든 PHP, html 또는 perl 파일의 경우, 해당 섹션이 속한 모든 부분이 완전히 분명해야합니다. 모델,보기 또는 컨트롤러 코드를 같은 파일에 섞지 마십시오.

절차를 계속 작성할 이유가 없어야합니다. 프레임 워크가 반드시 필요한 것은 아닙니다. 사물을 제자리에 꽂을 때 도움이 될 수도 있지만 배우기까지는 다소 시간이 걸릴 수 있습니다.

MVC는 염두에 두어야 할 걱정거리입니다. 그것에 대해 생각하는 좋은 방법은 다음과 같습니다. "각 구성 요소는 다른 구성 요소와 별도로 작동 할 수 있습니까?":

  • '조롱 된'(예제) 데이터 파일을 작성하고 Perl 스크립트에서 PHP 코드를 실행하지 않고 처리 할 수 ​​있습니까?
  • 프런트 엔드에서 작업을 요청하고 실행중인 Perl 코드없이 단일 Perl 루틴이 준비되도록 모든 매개 변수를 단일 위치에 전달할 수 있습니까?

PHP와 Perl 스크립트가 완전히 다른 일을하는 경우 (PHP는 사용자 매개 변수와 입력 파일 만 설정하고 Perl은 매개 변수와 파일 만 가져 오는 경우) 코드 중복에 대해 걱정할 필요가 없습니다. 새 파일 출력).

기존의 프레임 워크를 사용하지 않는 경우 폴더 계층 구조와 관련하여 가장 중요한 점은 일관성 있고 일관성이 있으며 결정을 문서화하는 것입니다. readme 파일에 있습니다.

미운 URL을

당신은 어떤 특정 장소에서의 PHP 파일을 배치 할 필요가 없습니다. Apache 재 작성 규칙을 사용하면 URL을 꽤 나중에 만들 수 있습니다. (rewrite rules generator - "301 리디렉션 파일"섹션 참조). 그러나 좋은 MVC 프레임 워크가이를 해결할 것입니다.

사용자가 선택할 수있는 플러그인

너무 일찍 최적화하지 않도록주의하십시오. 새로운 사전/사후 처리 단계를 직접 개발하고 사용자가 선택할 수있는 목록에 넣을 수 있습니다.

관련 문제