2

약 10 년 동안 나를 괴롭히는 프로그래밍에 대해 충분히 알고 있습니다. 나는 다양한 언어에 대한 주제에 관한 많은 책을 읽었지만 정식 교육을받지 못했습니다. 지금 주로 초점을 맞추고있는 언어는 최소한 PHP에서 이루어질 것입니다.코드, 분할 된 파일의 논리적 레이아웃

나는 잠시 동안 일부 OOP 수업을 사용했지만, 그 뒤에서는 원리를 이해하지 못했습니다. 나는 여전히 표현력을 발휘하고 싶어하는 수준이 아니지만 책을 최근 읽은 The OOP Thought Process은 프로그래밍 기술을 발전시키고 싶어했습니다.

새로운 개념의 동기 부여로 새로운 프로젝트를 시작했습니다. 사용자 인증, 사용자 프로필, 데이터베이스 인터페이스 및 대부분의 프로젝트에서 정기적으로 사용하는 다른 것들을 처리하는 재사용 가능한 클래스를 코딩했습니다.

일반적인 스파이크 헨리의 코드가 다소 조직 된 파일로 나뉘어져 있습니다. 필자는 필 요할 때 파일이 모두 포함되었는지, 논리적으로 스크립트를 나누는 지 확인하는 데 몇 가지 문제가있었습니다. 클래스로, 그리고 각 클래스를 어떻게 세분화해야 하는지를 설명합니다.

내가 정말로 요구하는 것은 특정 기능과 형식의 코드가 아니라 취미 프로젝트보다 큰 프로젝트의 논리적 레이아웃에 중점을 둔 조언이나 제안 된 읽기입니다.

나는 올바르게 일을하는 법을 배우기를 원하며, 어떤 분야에서는 여전히 배우고있는 반면, 이것은 단지 창의적이고 시행 착오적 인 것 외에는 전혀 모른다는 것을 알지 못합니다. 주로 오류.

답장을 보내 주셔서 감사합니다. 이 곳은 좋습니다.

+1

당신은 좋은 목표가 있으며 나는 당신에게 행운을 빈다. 그러나 당신의 질문은 다소 일반적이다. 조직은 팀, 규모, 유형 및 프로젝트 범위에 따라 달라 지므로 질문의 범위를 좁힐 수있는 방법이 도움이 될 것입니다. –

+0

개발 환경의 파일 구성이나 배포 된 시스템의 파일 구성에 대해 묻는 중입니까? –

답변

0

이전 프로젝트의 경험을 표현하려고합니다. 아마 당신을 도울 것입니다.

프로젝트를 세분화하려는 경우 자체적으로 유용한 구성 요소를 찾으십시오. 예를 들면. 데이터베이스 계층, 유틸리티 계층 및 구성을 제외한 나머지 응용 프로그램과 데이터베이스 계층을 독립적으로 만드는 방법에 대해 생각해보십시오. 데이터베이스 계층에 액세스하는 RichClient를 작성하는 경우, 웹 계층에서 액세스 할 때 필요한 정보를 정확히 넣으십시오. 이제는 명령 행 클라이언트에서 유용 할 수있는 구성 요소가 있습니다.

하위 레벨에서 이것을보고 싶다면 응용 프로그램을 작은 단위로 나누고 단위에 순환 종속성을 허용하지 마십시오! !! 두 구성 요소가 순환 종속성을 가지면 분할 할 수 없으며 실제로는 단일 구성 요소 여야합니다. 나는 항상 규칙을 지킬 수 없기 때문에이 규칙을 어겼습니다.하지만 앱의 기본 요소를 이해하는 것은 좋은 규칙입니다.

또 다른 인기있는 응용 프로그램의 분할 규칙은 Model (데이터 클래스), Control (프로그램 논리) 및 View (그래픽 사용자 인터페이스)는 별개의 패키지로 분리되어야합니다. 이것을 고수하면서, 나는 이렇게 코드를 나눌 것이다. 각 패키지에는 고유 한 모델, 뷰 및 컨트롤 클래스가 있지만 모델 클래스는 컨트롤 레이어에 대해 아무것도 모르고 있으며 컨트롤 레이어는 GUI에 대해 아무것도 모릅니다.

GUI 개발은 항상 지루하고 응용 프로그램의 최소 테스트 부분 인 경우가 많으므로이를 컨트롤에서 분리하면 비즈니스 논리를 훨씬 쉽게 작성할 수 있습니다. 실제로, 그것은 당신이해야 할 일에 집중할 수있게 해줍니다. 이것은 일을 끝내고 있습니다. 당신은 사업 로직을 코딩합니다. 이 파트가 작동하면 멋진 GUI를 작성하는 데 시간을 할애 할 수 있습니다.물론 GUI와 사용 편의성은 종종 자체 요구 사항을 컨트롤에 제공하지만 적어도 느슨하게 결합됩니다.

내 큰 프로젝트에는 실제 제품에서 사용하는 몇 가지 비트 구성 요소가 있습니다. 이제는 독립 구성 요소로 간주됩니다. 이를 통해 책임자는 독립적 인 구성 요소를 쉽게 테스트하고 작성할 수 있으며 모든 사람에게보다 안정적인 구성 요소를 제공합니다.

그냥 2 ¢.