it-source

Java 프로젝트의 패키지 구조?

criticalcode 2022. 10. 20. 21:16
반응형

Java 프로젝트의 패키지 구조?

Java Web 어플리케이션에서 패키지 구조를 셋업하기 위한 베스트 프랙티스는 무엇입니까?

src, 유닛 테스트 코드 등을 어떻게 설정하시겠습니까?

메이븐의 표준 프로젝트 레이아웃을 따를 수 있습니다.실제로 maven을 사용할 필요는 없지만 향후 (필요한 경우) 이행이 쉬워집니다.게다가 많은 오픈 소스 프로젝트가 이러한 방식으로 배치되어 있기 때문에 다른 개발자들은 이러한 레이아웃을 보는 데 익숙해질 것입니다.

확인할 수 있는 기존 리소스가 몇 가지 있습니다.

  1. Java 클래스의 적절한 패키지화
  2. Spring 2.5 아키텍처
  3. Java 튜토리얼 - 패키지 이름 지정
  4. SUN 명명 규칙

참고로, 제가 자주 사용하는 개인 가이드라인은 다음과 같습니다.

  1. 역도메인(예: "com.mycompany")부터 시작합니다.
  2. 제품 이름(예: "my product")을 사용합니다.경우에 따라서는 특정 제품에 속하지 않는 공통 패키지를 가지고 있는 경우가 있습니다.이들은 공통 클래스(예: "io", "util", "ui" 등)의 기능에 따라 분류됩니다.
  3. 그 후에는 더 자유로워집니다.보통 프로젝트, 기능 영역, 배치 등에 따라 그룹화합니다.예를 들어 "project1", "project2", "ui", "client" 등이 있을 수 있습니다.

기타 몇 가지 포인트:

  1. 패키지 이름이 설계 문서에서 나오는 것은 제가 작업한 프로젝트에서는 자주 있는 일입니다.통상, 제품은 기능이나 목적의 분야로 이미 분리되어 있습니다.
  2. 일반적인 기능을 더 높은 패키지에 바로 넣는 것에 대해 너무 강조하지 마십시오.프로젝트, 제품 등에 걸쳐 요구가 있을 때까지 기다렸다가 리팩터링합니다.
  3. 패키지간의 의존관계를 확인합니다.모두 나쁜 것은 아니지만, 다른 유닛과의 긴밀한 결합을 의미할 수 있습니다.이를 추적하는 데 도움이 되는 도구가 있습니다.

구현 계층이 아닌 기능별로 패키지 구조를 작성하는 것이 좋습니다.Java 프랙티스는 다음과 같습니다. 레이어가 아닌 기능별 패키지

The way I usually organise is
- src
        - main
                - java
                - groovy
                - resources
        - test
                - java
                - groovy
- lib
- build
        - test 
                - reports
                - classes
- doc

저는 보통 다음을 원합니다.

  • bin(바이너리)
  • 문서(문서)
  • 정보(정보)
  • lib(라이브러리)
  • 자원(리소스)
  • src(소스)
  • tst(테스트)

이것은 관례에 얽매이지 않는 것으로 여겨질지도 모르지만, 저는 이것이 일을 정리하는 매우 좋은 방법이라고 생각합니다.

내 폴더 계층구조는...

  • 프로젝트명
    • src
    • 휴지통
    • 테스트
    • 립스
    • 문서

또 다른 방법은 API, 서비스 및 엔티티를 다른 패키지로 분리하는 것입니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/210567/package-structure-for-a-java-project

반응형