2009-05-20 5 views
3

현재 매우 많은 웹 응용 프로그램을 만들고 있습니다 (현재 70 개 프로젝트와 150k loc이지만 할 일이 많음).구조체 구축을위한 모범 사례/대규모 솔루션에서 "빌드"실행하기

저는 FinalBuilder를 사용하여 빌드 스크립트를 실행합니다. 그러나 이러한 대형 프로젝트를 구성하는 가장 좋은 방법은 무엇입니까? 빌드 의존성은 어떻습니까? 내 프로젝트의 구조가 코드 성능에 어떤 영향을 미칩니 까?

나는 이것에 대한 몇 가지 이전 글을 보았지만 그 것을 찾을 수 없습니다. 솔루션에서 600 개가 넘는 솔루션에 대한 스레드를 보았습니다. 명확한 대답을 위해이 시스템이이 크기로 성장할 것이라고 상상해보십시오. (필자는 광산이 끝나는 것보다 더 큰 프로젝트를 구성하는 방법을 알고 싶습니다. 더 작은 솔루션을 구성 할 수 있음을 의미합니다).

시스템이 주로 .NET 3.5 (C#, LINQ, SQL Server 등)이지만 Python/Erlang도 사용합니다. 나는 40 프로젝트 (하지만 LOC의 수백만), 그리고 우리가 가지고있는 주요 모범 사례를

답변

3

은 다음과 같습니다

  • 수립 프로젝트간에하고자하는 모든 프로젝트에서 사용하는 라벨의 글로벌 목록을
  • 를 종속성을 식별
  • 이 글로벌 목록에 자신의 레이블을 게시하려는 모든 프로젝트가 전역 레이블에서 오는 구성 (레이블 목록)의 레이블을 만들었는지 확인하십시오.
  • "공무원 빌드 "(잠재적으로 프로덕션에 배치 될 수있는) 저장소에 저장됩니다.

그 방법 : (다른 프로젝트의 소스를 다운로드하고 지역의 모든를 다시 반대)

  • 개발자의 작품과 그들이 의존하는 다른 프로젝트의 납품에 대해 직접 자신의 코드를 컴파일합니다.
    테스터는 다양한 테스트 (비 회귀, 스트레스 테스트 등)를 수행하기 위해 신속하게 일련의 납품을 배포 할 수 있습니다 (글로벌 라벨 목록에서) 테스트, ...) (그 배달을 배포 최종 글로벌 빌드를 가진 후)

아이디어가 있습니다 사전 제작 및 생산 플랫폼 위에 수

  • 릴리스 관리 :

    • 모든 단계에서 배달을 다시하지
    • 일반적인 통합 건물 스크립트를 통해 개발 단계에서만 빌드
    • 릴리스 전에 다시 빌드하십시오 (사전 프로덕션 및 프로덕션 플랫폼 용)
    • 컴파일 및/또는 테스트 만 배달에 대한
    • (다운로드 소스에 대한 아니라이 행사를 위해 컴파일을 다시 : 당신은 몇 가지 프로젝트 이상이있을 때, 그냥 실용적이지 않다)

    홈페이지 모범 사례 :
    자신의 프로젝트가 다른 프로젝트의 배포와 함께 작동하는 경우 (해당 프로젝트의 로컬 재 빌드가 아닌 경우) 소프트웨어 개발 수명주기의 다음 단계 (테스트, 프리 프로덕션, 프로덕션)

  • 2

    NMaven을 사용하고 70 개 프로젝트 각각을 모듈로 생각하십니까? 이를 통해 개별 모듈 및 상위 프로젝트의 빌드, 패키징, 버전 관리 및 릴리스를 전체적으로 제어 할 수 있습니다. 또한 다른 모듈, 외부 라이브러리, 버전 및 다른 라이프 사이클 범위 (예 : 테스트 수명주기 동안 NUnit 만 필요하지만 빌드에서 패키지화하지 않아도 됨) 간의 depedencies를 해결하는 데 도움이됩니다.

    이 프로젝트가 어떻게 생겼는지, 어떻게 서로 의존하는지 자세히 설명하는 것이 도움이 될 수 있습니다.

    +0

    나는 실제로 NMaven에 대해 들어 본 적이 없습니다. 제가 확인하겠습니다.지금까지 레이아웃은 Foundation/Midrange/Business입니다 - 로깅, 오류 처리, 성능 모니터링, 중간 범위에는 비즈니스 중심 기능 (상업적 잠재력의 주요 요소)을 지원하는 CMS 및 블로그 엔진과 같은 모듈이 있습니다 (예 : 비즈니스 모듈). 전자 상거래 앱과 같은 제품 페이지에는 제품 페이지가 있지만 CMS에서는 만들 것입니다. – dotnetdev

    1

    조금 열어서 질문입니다. LIB, DLL - 빌드 머신

  • 도서관에 설치하는 것 -의 분기 안에 내가

    1. 빌드 스크립트
    2. 빌드 종속성을 가지고, 내 고객에게 출발점으로 제안 기본 구조부터 시작하자 도움말 소스
    3. 소스
    4. 배포 스크립트
    - ... 직접 프로젝트에서
  • 문서 소스를 참조 다음 소스는

    1. 관리자로 구성됩니다

      - 관리 콘솔 및 스크립트

    2. 데이터베이스 - 스키마, 스크립트, 초기 데이터
    3. 공통
    4. NTServices
    5. 서비스 - REST/SOAP 서비스
    6. BizTalk - 제품 고유의 이름을 지정하십시오.
  • 관련 문제