프로젝트를 진행할 때 알아야 할 사항은 무엇입니까?


10

나는 현재 상당히 큰 웹 응용 프로그램 (ASP.NET MVC 스택, 약 150K 라인 이상의 코드)의 유일한 개발자 / 건축가이며 개발의 끝은 수평선에 있습니다. 따라서 프로젝트를 진행하기 위해 수행해야 할 작업에 대해 생각하기 시작했으며 앞으로 프로젝트를 유지 관리해야하는 모든 사람에게 올바른 작업을 수행하고 싶습니다.

프로젝트를 다른 개발자 또는 유지 보수 개발자 팀에게 전달할 때 알아야 할 사항은 무엇입니까?

답변:


12

IMHO, 프로젝트를 직접 또는 간접적으로 전달하기 전에 한 가지만 수행 할 수 있다면 소스 제어에서 그대로 컴파일되는지 두 번 확인하고 삼중 검사하는 것이 좋습니다.

웃지 않지만, 소스 컨트롤에서 "최신"을 몇 번 받았으며 컴파일에 실패했는지, 나중에 "Fred 's old box"에 있지 않다는 것을 알아 내기 위해 코드가 " 프레드의 오래된 상자에 컴파일 ". 나는 심지어 전직 고용주가 큐브에서 내 데스크탑을 즉시 제거하고 "Fred 's old box"로 교체하여 내가 생각했던 프로젝트에서 작업 할 수있게했습니다.

위의 권장 사항의 확장으로 때로는 최신 버전을 얻는 것이 응용 프로그램을 컴파일하는 데 필요한 전부가 아니기 때문에 README.txt를 만들어 응용 프로그램의 루트 디렉토리에 놓고 소스 제어에 두는 것이 좋습니다. 이 README 문서에는 소스 제어 (있는 경우)로 확인할 수없는 외부 종속성 목록, 데이터베이스 설정 방법 및 응용 프로그램의 컴파일, 실행 또는 배포주기에 대한 기타 이상한 내용이 포함되어 있어야합니다.

위의 두 가지 제안을 넘어 서면 아무 문제가 없지만 IMHO는 "Hello World"보다 큰 프로젝트에서 거의 필요합니다.

편집하다:

문서 주제에 대해 ...

수년에 걸쳐 개발자의 전환을 완화하기 위해 소프트웨어 문서에 대한 공정한 부분을 작성하고 읽었습니다. 그러한 문서는 인쇄 된 용지의 가치가 거의 없다고 말하고 싶습니다. 개발자 (자신 포함)는 그러한 문서를 작성하는 동안 응용 프로그램의 중요한 부분을 거의 생각하지 않으며, 가장 최근에 발생한 화재에 대해서만 생각하는 경향이 있습니다. 이 문서들이 소프트웨어의 모든 중요한 측면을 다루지 않는 경향이 있다는 사실을 넘어서서, 그들은 또한 매우 빨리 구식이되었습니다. 문서가 구식이되면 장래의 개발자는 실제 상황에 맞게 문서를 다시 가져 오는 대신 문서를 완전히 무시할 가능성이 높습니다 (변화하는 요구 사항 생각).

문서 자체 대신 단위 테스트를 권장합니다. 이 시점에서 아마도 오래 된 것처럼 들리지만 코드가 문서화를하도록하십시오. 부서진 단위 테스트는 Word 문서보다 무시하기가 쉽고 찾기 쉽습니다. 또한 영어는 소프트웨어 디자인의 끝점을 분명히 표현하는 데있어 매우 부정확합니다. 심지어 가장 간단한 영어 문장의 의미를 해석하는 방법은 너무 많으며 이는 혼란과 버그로 이어집니다.


1
readme 파일의 경우 +1 이 시점에서 프로젝트에 실제로 두 가지가 있습니다. 하나는 일반적인 "이 개념을 작성할 때 생각한 것"이고 다른 하나는 모든 외부 종속성과 jQuery 플러그인을 나열합니다. 내가 어디에서 왔는지에 대한 줄과 함께. 컴파일은 분명히 다시 확인해야 할 부분입니다.
rjzii

@Rob, VM은 깨끗한 환경에서 코드를 컴파일 할 수 있는지 확인하려고 할 때 종종 좋은 생각입니다. Windows 및 Visual Studio를 새로 설치 한 다음 readme파일에 언급 된 항목 만 설치 하십시오. 코드가 컴파일되고 실행되면 모든 설정이 완료된 것입니다.
Jason Whitehorn

문서를 잊지 마십시오!
Moshe

@Jason-거의 동일한 상황 (Parallel Desktop을 사용하는 두 개의 개발 시스템)에서 잠시 후에 다시 할 수 있었지만 그 이후로 새로운 라이브러리가 프로젝트에 도입되었습니다.
rjzii

1
@Moshe-문서는 내가 실제로 가장 걱정하는 부분입니다. 코드를 찾으려는 방식으로 코드를 작성했지만 코드 및 기본 추가 정보 문서를 보완하기 위해 어떤 추가 문서를 작성해야하는지 잘 모르겠습니다.
rjzii

1

이것이 주석이 코드 냄새가 아닌 이유입니다. 이것이 우리가 코드를 문서화해야하는 이유이기도합니다.

확실한 문서가 있는지 확인해야합니다. 주석의 형식과 프로그래밍 언어에 따라 주석으로 문서를 생성 할 수있는 프로그램이 있습니다.

라이브러리 또는 코드베이스를 인수 할 때 원하는 정보를 고려하십시오. 프로그래머 인 친구에게 빠르게 살펴보고 명백한 질문이 있는지 확인하십시오.

행운을 빕니다!


1

한 번의 명령 / 클릭으로 코드가 최종 양식으로 컴파일 및 패키징되는지 확인하십시오.

답을 공감할 수 없습니다 . 프로젝트를 진행할 때 알아야 할 사항은 무엇입니까? 충분하므로 다시 써야합니다.

원 클릭 컴파일에 대해 매우 까다 롭습니다. . 작은 버그를 수정 해야하는 프로젝트를 실제로 컴파일하거나 패키지하는 방법을 알아내는 데 이미 많은 시간을 투자했기 때문입니다. 최종 ZIP, JAR 또는 EAR을 패키지하기 위해 프로젝트에 배치 / bash 스크립트를 거의 사용하지 않았습니다.

그 외에도 전반적인 디자인 , 복잡한 부분 및 프로젝트 환경 을 설명하는 루트 디렉토리에 README.txt를 추가 합니다 (다른 부서 또는 개인과의 커뮤니케이션 측면에서).

이 README.txt를 작게 유지 하려고 합니다. 원하는 경우 버그를 수정하고 컴파일하고 패키지하는 것만으로도 200 페이지 이상의 사양 문서를 읽는 사람 없기 때문입니다. 구현 세부 사항은 단위 테스트에 문서화되어 있으므로 책에 다시 적을 필요가 없습니다 ...


0

나의 기본 핸드 오프 체크리스트 :

  1. VCS에서 깨끗한 사본 확인
  2. 테스트 빌드, 테스트 배포
  3. maven repo의 이름을 repo-up-up으로 바꿉니다.
  4. 다시 빌드 빌드
  5. Zip에서 앱 서버의 새로운 사본 설치
  6. 서버 설정 정보 확인
  7. 다시 테스트 배포
  8. 단위 테스트가 비활성화되어 있지 않은지 확인
  9. 네 글자로 된 주석을 스캔하여 삭제

어떤 것이 부러지면 인계하기 전에 고칠 것입니다. 어떤 사람도 달리기 시작하여 프로젝트를 체크 아웃하고, 빌드하고, 프로젝트를 시작한 날에 실행할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.