초보자 용 질문, 저와 함께 : 저는 어떤 상황에서 nant 나 msbuild와 같은 빌드 도구를 사용해야하는지 궁금합니다. 중간 크기의 응용 프로그램 (.net 3.0)에서 일하고 있습니다. 모든 개발자는 자신의 작업을 수행하고 자신의 컴퓨터에서 자신의 코드 변경 사항을 저장소로 확인합니다. 일단 다 끝나면 저장소에서 모든 코드를 가져 와서 내 컴퓨터에서 깨끗한 빌드를 만들고 바이너리를 배포합니다. 호기심에서 벗어나 빌드 툴은 어디에 있습니까?빌드 도구를 언제 사용합니까?
답변
짧은 대답은 항상 있습니다.
각 개발자는 코드를 확인하기 전에 빌드 스크립트를 사용하여 빌드해야합니다. 릴리스를 작성하는 사람은 빌드 스크립트를 사용하여 릴리스를 빌드해야합니다. 빌드 봇은 빌드 스크립트를 사용하여 체크인 된 코드를 빌드하고 테스트해야합니다.
이렇게하면 모든 개발자, 테스터 및 빌드 봇이 일관되고 반복 가능한 빌드를 가질 수 있습니다. 결국, The F5 Key Is Not a Build Process.
아무 것도 자동화하지 않으려면 nant/msbuild를 사용하는 것이 좋습니다. 예 : 1. 확인 2. 빌드 3. 테스트 및 코드 적용
Visual Studio로 개발 중이십니까? 이 경우 Visual Studio의 기본 빌드 엔진이므로 이미 msbuild를 사용하고 있습니다. 실제로 Visual Studio 프로젝트 파일은 msbuild 스크립트에 지나지 않습니다.
이외에도 전용 빌드 시스템에서 빌드 엔진을 사용할 수 있으므로 Visual Studio를 설치하지 않고도 무인 설치가 가능합니다. 단위 테스트를 위해서도 사용할 수 있습니다.
모든 사소한 응용 프로그램에는 '빌드 도구'가 필요하다고 생각합니다. 우리는 내가 일하는 곳에서 지속적인 통합이라는 용어를 사용합니다. 매우 예외적 인 경우가 있습니다 (예 : 기능 X의 작동 방식을 배우기 위해 샘플 앱을 구축 중입니다.)하지만 그 외에도 단단한 빌드 프로세스가 있다는 것을 결코 후회하지 않을 것입니다.
개발 팀이 한 명으로 구성된 경우 ... 여전히은 리포지토리, 빌드 도구 및 여러 개의 테스트 스위트를 포함한 빌드 시스템을 설정합니다. 예, 빌드 시스템을 유지 관리하는 데는 시간과 비용이 들지만 비용은 많이 듭니다. (저는 6 명의 개발자로 시작한 프로젝트에서 40 개월 동안 일했으며 지금은 약 30 명의 개발자가 참여하고 있습니다. 횟수)를 줄이고 품질 문제가 더 빨리 감지되면 문제를 해결할 수 있습니다.
지속적인 통합 (현재 현재 수행중인 작업을 구현하는 데 도움이되는 항목)은 빌드 도구가있는 것과 약간 다르지만 자동화 된 빌드가 없으면 불가능합니다. – workmad3
빌드 프로세스가 하나의 명령보다 길어질 때 빌드 도구를 사용해야합니다. 표준 빌드 프로세스를 하나의 명령으로 다시 가져 오는 데 사용해야합니다. 빌드 프로세스가 하나의 명령보다 길면 빌드 중에 누락/중복/잘못된 명령에서 오류가 발생할 기회가 있습니다.
zacherates의 대답에 동의하고 확장 ... 예, 항상 반복 가능한 빌드 프로세스가 있어야합니다. 기술적으로 Visual Studio 프로젝트는 MSBuild 파일이지만, "공식적인"빌드 프로세스를 개발 환경과 분리하는 것이 좋습니다.
내 생각에 팀이 얼마나 큰지 (또는 작은) 상관이 없습니다. 나는 NAnt와 CruiseControl.NET 을 집에서 사용합니다., 제가 일하는 경향이있는 곳은 모두 스크래치 프로젝트와 실험입니다. 직장에서는 유사한 설정을 사용하지만 NAnt 스크립트가 함께 쓰이는 방식으로 조금 더 구조화되어 있습니다.
확실히 살펴볼 가치가 있습니다.치료법은 아니지만 모든 빌드가 출시되었을 때와 야생에있는 빌드를 정확히 파악하는 것이 가장 좋습니다. 컴파일 된 코드를 식별 할 수 있다는 것이 문제 해결 전투의 절반입니다! :)
빌드를 수행하는 데 IDE를 사용하는 것처럼 들립니다. 본질적으로 빌드 도구입니다. 이미 하나를 사용하고 있습니다. 사용중인 도구가 솔루션보다 문제가되면 도구를 전환해야합니다.
릴리스를 시작하거나 빌드가 특정 수의 수동 단계를 초과 할 때 (성가시기 시작하면 알아 차릴 것입니다.) 흥미로운이 주제에 대해 이전 blog entry을 작성했습니다.
조금 지나치지 않습니까? 예. 한 번 완료되면 2 일간의 1 인 탐사 프로젝트를위한 빌드 스크립트에서 20 분을 보내고 다시 보관할 수 있습니까? – ddimitrov
@ddimitrov : 네, 그만한 가치가 있습니다. 나는 99 %의 시간을 내기를 원한다. "2 일간의 Exporation"은 생산 코드의 핵심 부분이 될 것이다. (아마도 내부 도구가 아니라 제품이지만 여전히 중요하다.) – rmeador
코드 링크가 끊어졌으며 이제 사이트의 기본 페이지로 리디렉션됩니다. 참조 된 기사는 https://blog.codinghorror.com/the-f5-key-is-not-a-build-process/ –