노드 클린 아키텍처 템플릿

머리말



유지 관리가 쉽고 확장 가능하고 테스트 가능한 코드베이스를 작성하는 것은 대부분의 엔지니어의 꿈이며 소프트웨어 아키텍처가 해결하려는 문제 중 일부입니다.

소프트웨어 아키텍처는 시스템의 청사진 역할을 합니다. 시스템 복잡성을 관리하고 구성 요소 간의 통신 및 조정 메커니즘을 설정하기 위한 추상화를 제공합니다.

내 경력 전반에 걸쳐 많은 JavaScript 및 TypeScript 코드베이스에서 작업한 결과 C#과 같은 기존 언어와 매우 다른 기존 아키텍처를 따르지 않는다는 사실을 종종 알게 되었고 이것이 내가 이 템플릿을 구축하기로 결정한 이유입니다.

템플릿



템플릿은 클린 아키텍처 원칙을 준수하고 확립된 관행을 권장합니다.

특징


  • TypeScript 우선
  • Awilix를 통한 종속성 주입
  • CQRS(Command Query Responsibility Segregation)
  • 높은 테스트 범위(단위, 통합 및 기능 테스트)
  • 자동 오류 처리
  • 로깅
  • 버전이 지정된 API
  • 스웨거
  • 프리즈마 ORM



  • 제이미리빙스턴 / 노드 클린 아키텍처


    클린 아키텍처 원칙을 따르고 모범 사례를 장려하는 노드 템플릿입니다.





    클린 아키텍처 템플릿


    클린 아키텍처 원칙을 따르고 모범 사례를 장려하는 노드 템플릿입니다.

    특징


  • TypeScript 우선
  • Awilix를 통한 종속성 주입
  • CQRS(Command Query Responsibility Segregation)
  • 높은 테스트 범위(단위, 통합 및 기능 테스트)
  • 자동 오류 처리
  • 로깅
  • 버전이 지정된 API
  • 스웨거
  • 프리즈마 ORM

  • 시작하기


  • 최신 설치Node.js LTS
  • Docker를 설치하고 실행 중인지 확인합니다
  • .
  • .env 파일 생성cp .env.example .env
  • yarn install를 실행하여 프로젝트 종속성을 설치합니다.
  • Docker 시작(로컬 Postgres 인스턴스)docker-compose up -d
  • 데이터베이스 생성npx prisma migrate deploy
  • 개발 서버 시작yarn start
  • Swagger로 이동( http://localhost:3000/api-docs )

  • 스크립트


    빌드 프로덕션 번들
    yarn build
    
    린트 프로젝트(eslint)
    yarn lint
    
    개발 서버 시작
    yarn start
    
    모든 테스트 실행
    yarn test
    
    단위 테스트 실행
    yarn test:unit
    
    기능 테스트 실행(API 테스트)
    yarn test:functional
    



    View on GitHub



    아키텍처가 깨끗한 이유



    클린 아키텍처는 많은 이점을 제공하는 실전 테스트를 거친 소프트웨어 아키텍처입니다.

  • 높은 테스트 가능성: 클린 아키텍처는 테스트를 염두에 두고 설계되었습니다
  • .

  • 프레임워크 독립적: 특정 프레임워크의 도구에 의존하지 않음(언어에 구애받지 않음)

  • 비즈니스 로직이 캡슐화됨: 시스템에 새 진입점을 쉽게 추가(예: GraphQL)

  • 데이터베이스 독립적: 대부분의 응용 프로그램은 어떤 데이터베이스에서 가져오는지 알지 못하거나 알 필요가 없습니다. 이는 대부분의 소스 코드를 변경하지 않고 새 데이터베이스를 채택할 수 있음을 의미합니다
  • .

  • 유연성: 코드 리팩터링 및 유지 관리가 더 쉬워지고 노력이 거의 필요하지 않음

  • Robert C. Martin(Uncle Bob)의 블로그 게시물this을 읽어 아키텍처에 대해 자세히 알아보십시오.

    좋은 웹페이지 즐겨찾기