문제

프로젝트를 어떻게 구성 해야하는지 궁금했습니다.

우리는 다른 프로젝트에서 사용되는 프로젝트가 있습니다.

데이터 프로젝트 및 모델 프로젝트는 일대일 기타 프로젝트에 사용됩니다.

내가 정말로 알아야 할 것은이 유형의 프로젝트를 구성하는 방법입니다. 이름을 짓는 가장 좋은 방법은 무엇입니까?

표준 3 계층 응용 프로그램에서는 다음과 같은 것과 비슷해야합니다.

  1. dal, dataAccessLayer, 데이터 ...
  2. 모델, BusinessObject, Bol ...
  3. ui, view, ...

다른 아이디어가 있습니까?

내가 일하는 각 회사에서 그들은 그것을 조직하는 다른 방법을 얻었습니다. 하나보다 더 나은 것이 있습니까? 어떤 것을 사용하고 어떤 것을 선호하고 그 이유는 무엇입니까?

고마워!

도움이 되었습니까?

해결책

데이터 계층의 경우 일반적으로 사용합니다.

Company.projectName.Data (예 : AdventureWorks.orderManager.data)

비즈니스 계층의 경우 "ObjectModel"과 같은 것을 선호합니다 ( "Business"또는 "BusinessLogic"을 사용했지만 이것은 객체/클래스에서 데이터가 함께 제공되는 영역이므로 이름을 지정하지 않겠습니까?).

Company.projectName.ObjectModel (예 : AdventureWorks.orderManager.ObjectModel)

UI의 경우, 나는 평범한 오래된 "UI"또는 "Presentation"을 좋아합니다 ...

Company.projectName.Presentation (예 : AdventureWorks.orderManager.presentation)

다른 팁

Ive가 재사용 가능한 모든 코드를 넣으려고 노력하는 몇 가지 도서관 프로젝트를 제외하고는 제가하는 일이 거의 없습니다. 그런 다음 내 모델과 dal 은이 라이브러리 위에 앉아 프로젝트 세부 사항을 추가합니다.

대부분 Microsoft 패턴 및 사례에 권장되는 계층 아키텍처를 사용합니다. .NET 용 응용 프로그램 아키텍처 : 응용 프로그램 및 서비스 설계. 문서는이를 구현하기위한 아키텍처 및 .NET 기술을 설명합니다.

alt text

소프트웨어 아키텍처는 구축 할 소프트웨어 유형에 따라 다릅니다. 커널 프로그래밍을하려면 응용 프로그램 개발에 비해 다른 원칙이 적용됩니다. 그러나 물리적 시뮬레이션, 날씨 대식 캐스트 소프트웨어, 소프트웨어 IDE 또는 컴파일러를 수행 할 때 또 다른 원칙이 적용됩니다.

응용 프로그램 개발을하고 싶다고 생각합니다. 글쎄, 당신은 아마도 당신이 반영 할 도메인 주위에 소프트웨어를 설계하고 싶을 것입니다. 그러나 그때조차도 많은 옵션이 있습니다.

이 큰 주제에 대한 더 많은 통찰력을 얻으려면, 나는 읽을 것을 강력히 제안합니다 Domain Driven Design ~에서 Eric Evans 그리고 Applying Domain-Driven Design and Patterns ~에서 Jimmmy Nilsson.

현재 3 층 아키텍처가있는 프론트 엔드 웹 애플리케이션에서 작업하고 있습니다.

  • 클라이언트 계층 (브라우저)
  • 애플리케이션 계층 (Java EE Application Server, Application이 라이브가 될 예정)
  • 백엔드 계층 (메인 프레임 및 레거시 앱, 다양한 데이터베이스)

층 아키텍처가 있고 응용 프로그램 계층의 레이어는 다음과 같습니다.

  • 프리젠 테이션 레이어 : 클라이언트 계층에서 사용될 UI를 생성합니다.
  • 응용 프로그램 계층 : 사용 사례와 동등한 응용 프로그램 논리가 포함되어 있습니다.
  • 서비스 계층 : 백엔드 계층에서 Java 모델로의 도메인 로직 및 데이터지도
  • 통합 계층 : 백엔드 계층과 통신하고 JMS, 이메일 및 DAOS 및 기타 물건을위한 게이트웨이를 포함합니다.

이것은 예제 프로젝트 구조 일 뿐이며 최종 결과는 응용 프로그램 유형에 따라 다릅니다. 당신은 더 많은 것을 읽을 수 있습니다 내 대답 에게 이 질문 패키지의 부서 및 명명 전략.

적합한대로 레이어를 추가/스왑/제거 할 수 있습니다. 예를 들어, SOA에서는 응용 프로그램 계층 또는 서비스 계층 위에 웹 서비스 계층을 레이어로 레이어로 만들어 ESB (Enterprise Service Bus)가 애플리케이션 또는 서비스에 연결할 수 있습니다. 이것 중 하나가 불가능하거나 매우 어려워 보이면 최적의 아키텍처와 디자인이 없습니다.

프로젝트의 구조에 대해 생각하고 위와 같은 시나리오를 허용 할 때, 원하는 모듈과 구성 요소의 중요한 속성은 다음과 같습니다.

  • 테스트 가능성
  • 재사용 성
  • 유지 가능성

낮은 커플 링 및 높은 응집력을 위해 설계하여이를 달성 할 수 있습니다. 기능 수준/추상화로 모듈을 그룹화하여 계층 아키텍처를 선택하는 것이 좋습니다. 각 계층 내에서 기능별로 더 그룹화하는 것도 도움이됩니다. 더 많은 특정 레이어가보다 일반적인 층의 인터페이스에만 의존하게하면 커플 링도 줄어 듭니다.

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