코드 라이브러리를 어떻게 구성합니까?
-
21-08-2019 - |
문제
사람들이 특히 재사용 가능한 구성 요소와 관련하여 코드 라이브러리를 어떻게 구성하는지 알고 싶습니다. 아래에서 OO 용어로 이야기하고 있지만 다른 유형의 언어를위한 도서관을 구성하는 방법에 관심이 있습니다.
예를 들어:
- 당신은 모든 것을위한 수업 도서관 프로젝트를위한 스틱 러입니까, 아니면 단일 프로젝트에 모든 것을 유지하는 것을 선호합니까?
- 사전 제작 된 DLL을 재사용합니까 아니면 현재 작업에 이전 프로젝트의 개별 클래스를 포함합니까? 개별 클래스 인 경우 프로젝트간에 공유하여 모든 것이 최신 상태로 유지되거나 분기를 허용합니까?
- 재사용 가능한 요소는 얼마나 큽니까? 그들은 얼마나 집중 했습니까? 그들은 어떻게 집중하고 있습니까?
- 선호하는 관행을 통해 어떤 수준의 재사용을 얻습니까?
등.
편집하다
나는 여기서 구체적인 지침을 찾고 있지 않고 사람들의 생각과 관행에 관심이 있습니다. 특히 단일 프로젝트가 아닌 이질적인 프로젝트 간의 코드 재사용에 관심이 있습니다. (불행히도 여기서 '프로젝트'의 사용은 오해의 소지가 있습니다. 저는 시각적 스튜디오 의미의 프로젝트가 아니라 고객을 위해 수행 된 실제 프로젝트 간의 재사용을 의미합니다.)
해결책
일반적으로 안내 할 수 있습니다 전개 고려 사항 :
어떻게 배포 하시겠습니까 (예 : 생산 기계에 무엇을 복사 할 것인가)?
당신이 배포하는 것이 있다면 포장 구성 요소 (예 : DLL, JAR, WAR, ...), "코드 라이브러리"를 다음의 모음으로 구성하는 것이 현명합니다. 포장 파일 세트.
이렇게하면 생산 플랫폼에 배치 될 -dll, jar, war, ... - 직접 발전하게됩니다.
아이디어는 다음과 같습니다. 포장 된 파일에서 작동하는 경우 여전히 제작에서 작동 할 수 있습니다.
단일 프로젝트가 아닌 다른 프로젝트 간의 코드 재사용.
나는 "구성 요소"접근 방식에서 이러한 종류의 재사용이 더 쉽다고 유지합니다 (질문에서 논의 된 것과 같이 ").git의 공급 업체 지점")
40 개가 넘는 현재 프로젝트를 통해 우리는 다음을 달성했습니다.
- 기술 재사용 순수한 기술적 측면을 독립적 인 프레임 워크 (일반적으로 로그 프레임 워크, 예외 프레임 워크, KPI- 키 성능 표시기 - 프레임 워크 등)로 체계적으로 분리함으로써.
이러한 기술 구성 요소는 다른 모든 프로젝트에 재사용됩니다. - 기능적 재사용 명확하게 설정함으로써 적용 기능적 영역 (비즈니스 및 기능 사양이 주어진)을 잘 정의 된 응용 프로그램으로 나누기위한 아키텍처. 예를 들어, 일반적으로 다른 프로젝트에서 재사용 된 서비스를 노출하기위한 훌륭한 후보 인 버스 계층이 포함됩니다.
요약:
대규모 기능 도메인의 경우 단일 프로젝트를 관리 할 수없고 적용 할 수있는 적용 아키텍처는 자연 코드 재사용으로 이어질 것입니다.
다른 팁
좋은 소스 코드 제어를 결정하는 것이 중요합니다. 이에는 중요하지 않습니다. 라이브러리의 많은 사본을 끝내지 않고 좋아하는 방식으로 전략을 구현할 수 있기 때문입니다. 좋은 분기 지원이 필수적입니다.