가능한 한 "CM 독립적"으로 빌드 (Java)를 만드는 방법? (CM = 구성 관리자)

StackOverflow https://stackoverflow.com/questions/486668

문제

나는 내가 처리하는 프로젝트 빌드 중 하나를 가능한 한 "독립"(CM)으로 만들려고 생각하고 있습니다. 이것으로 나는 스크립트/도구를 통한 자동화를 의미하지는 않습니다. 이것은 많은 혼란에 처한 프로젝트이므로 "총"자동화는 현실적이지 않습니다.

내가 목표로하는 것은 다음과 같습니다.

누구나 빌드 (일부 자동화 및 약간의 문서/지침 포함) (예 : 초보자 CM 또는 CM 경험이없는 개발자)를 수행 할 수 있어야합니다.

나의 첫 번째 생각은 이것을 달성하는 것입니다.

  1. 빌드 요청 프로세스를 못 박는 (빌드 양식을 통해 빌드에 필요한 모든 세부 사항을 캡처하여 누군가의 머리에 있기 때문에 아무것도 균열에 빠지지 않도록)

  2. 빌드 단계를 단순화하여 일련의 명령으로 간단한 문서로 캡처 할 수 있도록 단순화 - 훈련 된 원숭이는 빌드와 함께 실행할 수 있어야합니다 (음 .. 모욕을 던지지 말고 - 아이디어를 얻습니다 :-)).

  3. 도구의 기능을 HILT (Read Ant, SVN)에 사용하여 잠재적 인 문제가 미리 잡을 수 있도록하고 실패/문제의 경우 더 나은 경고를 제공하는 데 도움이됩니다.

  4. 프로젝트 관리자가 며칠 동안 휴가를 언급 할 때마다 공황 발작을받지 않고 병에 걸리거나 가끔 휴가를 보내지 않을 수 있습니다. :-)

이 방향으로 나를 도울 생각과 아이디어가있어서 기쁩니다. 감사합니다!

도움이 되었습니까?

해결책

~에 urbancode, 우리는 이것을 "Bob the Builder"Anti-Pattern이라고합니다. 좋은 소식은 Bob (You)가 루프에서 벗어나기를 원한다는 것입니다. 빌드 녀석이 휴가를 갈 수 없거나 프로세스의 일부가 없으면 병에 걸리지 않으면 실제로 용납 할 수없는 문제가 있습니다. 내가 베팅 맨이라면, 당신이 프로세스를 "훈련 된 원숭이"레벨로 단순화하는 과정을 시작하면서, 당신이 똑똑하고 실제로 추가 할 수있을 때이 끔찍한 일을하는 데 시간을 보내는 이유가 궁금합니다. 어딘가에 가치.

우리 책에서 "Bob the Builder"증후군의 증상 :

  1. 특정 유형의 빌드 또는 빌드에 대한 모든 요청은 개인 또는 소규모 팀을 통과합니다.
  2. 이러한 빌드 요청에 대한 응답은 개발자에게는 성가신 느린다. 빌드 팀이 점심을 먹으면 몇 시간을 기다립니다.
  3. Bob 또는 Bobs 팀은 Rote 작업을 수행하는 데 상당한 시간을 소비합니다.
  4. 밥은 하루 종일 집에 가거나 점심을 먹거나 휴가를 보내거나 병에 걸리면 팀이 일을 끝내는 능력을 방해합니다.

우리는 우리에게 말합니다 Anthillpro 고객은 이러한 모든 종류의 물건을 자동화로 밀어 넣습니다. 다른 기계를 사용하는 두 가지 빌드 유형, 다른 빌드 숫자 등이 문제가되지 않아야합니다.

첫 번째 단계는 프로세스를 바보하는 것입니다. "훈련 된 원숭이"프로세스로 내려갈 수 있도록 가능한 한 많은 복잡성을 유지하십시오. 일단 다가오는 것이 있으면 원숭이를 컴퓨터로 교체하는 것은 매우 쉽습니다.

나는 더 구체적인 조언을 할 것입니다. 그러나 나는 당신이 혼돈 이외의 복잡성이 어디에서 왔는지 말하지 않았다고 생각합니다. 때때로이 상황에서 당신은 혼란스럽고 나쁜 관행을 공격해야합니다. "소스 코드 의이 기준선 과이 두 파일과 세 가지 파일"인 빌드를하고 있습니까? 그것은 까다로울 것이며 아마도 루프에 cmer가 필요할 것입니다. 그것을 금지하는 방법을 찾으십시오. 이를 "지점을 만들고 해당 지점을 구체적으로 변경"으로 대체하면 그 원숭이가 빌드를 만들 수 있습니다.

이러한 변화를 위험이 높은 것으로 주장 할 수 있어야합니다. 당신은 좋지만, 당신은 나쁜 날을 보내고 가능한 한 방정식에서 인간의 오류를 취하고 싶어 할 것입니다. 동시에, 개발자와 셀프 서비스 (아마도 개발 및 관리가 원하는)에 대한 더 빠른 반응을 위해 촬영하는 경우 자동화 가능 / 원숭이를 만들어야합니다.

더 나은 형태를 갖는 것은 중간에 좋을 수 있으며 도구를 잘 사용하는 것은 항상 좋지만 "훈련 된 원숭이"문제를 공격적으로 공격합니다. 훈련 된 원숭이 (또는 컴퓨터)가 할 수없는 것은 과정을 떠나기위한 후보가되어야합니다. "훈련 된 원숭이"상태로 내려 가면 빌드 자동화를 제자리에 가져와 개발자와 개발자가 원숭이가 될 필요가 없습니다. 이는 "Bob the Builder"에서 "Bob the Build System 소유자"로 귀하의 역할을 바꿉니다.

다른 팁

빌드 단계를 단순화하여 일련의 명령으로 간단한 문서로 캡처 할 수 있도록 단순화 - 훈련 된 원숭이는 빌드와 함께 실행할 수 있어야합니다 (음 .. 모욕을 던지지 말고 - 아이디어를 얻습니다 :-)).

그것이 가능하다면 스크립트를 통해 한 단계로 빌드를 실행할 수 있어야합니다 (Mayy는 개미, 배쉬, Maven 또는 모든 스크립트입니다). 그것은 목표가되어야하므로 기본적으로 누구나 빌드를 할 수 있습니다.

빌드 프로세스 개발의 목표는 다음과 같습니다.

  1. 빈 디렉토리로 시작하십시오 (Tabula Rasa, 그렇다면)
  2. 기본 도구의 매우 작은 도구가 강조되어 있는지 확인하십시오 (보통 Java + Maven + SVN 명령 줄 클라이언트).
  3. 확인하십시오 하나의 SVN/CVS의 디렉토리/...
  4. 단일 명령을 시작합니다 (그리고 25 개의 매개 변수가없는 것을 의미합니다)
  5. 기다리기 (아마도 꽤 오랫동안)
  6. 완전한 빌드를하십시오

그렇게 할 수 없다면 빌드 프로세스는 여전히 충분하지 않습니다.

당신이 그것을 달성 할 수 없다고 생각한다면, 튜링-완성기는 그 목록 외에 어떤 행동을 할 수 없는지 자세히 설명하십시오.

일반적으로 그러한 점이 없습니다. 누락 된 도구/노하우/동기 부여 일뿐입니다. 개인적으로, 왜 그렇게 할 수 없는지 설명하는 것보다 이것을하기가 더 쉽다는 것을 알았습니다.

행운을 빕니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top