문제

개인 프로그래밍 프로젝트를 시작할 때 첫 번째 단계는 무엇입니까?나는 지금 아이디어에 불과한 프로젝트를 시작하려고 합니다.나는 이것들을 많이 얻고 바로 코드에 뛰어들고 잠시 후 완전히 흥미를 잃거나 프로젝트에 대해 잊어버립니다.

시작할 때 첫 번째 단계는 무엇입니까?그 프로젝트를 계획하고 있나요?다이어그램을 만들까?종이에 코드를 써볼까?성공할 것이라는 확신을 가지고 어떻게 프로젝트를 시작합니까?

도움이 되었습니까?

해결책

나에게 맞는 유일한 방법은 다음과 같습니다.어떻게든 사용할 수 있는 가능한 가장 작은 구현을 만든 다음 사용하세요.

다른 팁

에서 성공하는 사람들의 7가지 습관, 습관 2:끝을 염두에 두고 시작하세요.

모든 프로젝트에는 명확한 목표, 즉 "나는 끝났습니다"라고 말할 수 있는 지점이 필요합니다.명확한 결과가 방향을 제시해 줄 것입니다.일단 그것을 갖고 나면 거기에 가는 방법을 계획할 수 있습니다.프로젝트의 규모와 복잡성에 따라 계획에 필요한 세부 사항이 결정되지만 일반적으로 계획에 대한 진행 상황을 꽤 정기적으로 느끼고 싶을 것입니다.

다음 단계는 필요할 모듈의 디자인과 각 모듈 간의 API를 스케치하는 것입니다.API가 깨끗하다면 모듈이 맞을 것입니다.그런 다음 모듈 구현을 시작하고 테스트를 진행합니다.

저는 키보드를 터치하기도 전에 프로젝트의 다양한 측면에 대해 생각하는 데 많은 시간을 보냅니다.

이전 프로젝트에서 배운 내용을 복습하고 다양한 카테고리('기술', '홍보' 등)에 적어봅니다.

개인 프로젝트든 아니든 저는 항상 소스 코드 제어를 설정합니다.Git, Bazaar의 Mercurial은 마스터 서버를 설정할 필요가 없기 때문에 방해가 되지 않는 소스 코드 제어 도구의 예입니다.간단한 명령을 입력하여 프로젝트를 생성하고, 파일을 체크인하고, 커밋하세요.앞으로는 파일 중 하나를 엉망으로 만들 때 '실행 취소'할 수 있습니다.

또한 "Lightweight"로 1.Issues와 2.ideas를 추적하기 위해 경량 티켓 시스템을 설정했습니다.

도움이 되었기를 바랍니다.

나는 이미 주어진 조언에 동의합니다:

  • 첫 번째 완전한 릴리스로서 유용한 작업을 수행하는 최소한의 구현을 계획합니다.
  • 진행 상황을 비교할 수 있는 무언가를 갖기 위해 달성하고 싶은 것에 대한 구체적인 목표를 가지십시오.

전체적으로 가벼운 디자인부터 시작하시는 것도 추천드려요 건축학 그래서 당신은 로드맵 제품을 만드는 방법에 대해 알아보세요.

적어도 첫 번째 분해 단계에서 그것이 어떻게 보여야 하는지에 대한 명확한 아이디어가 없으면 무언가를 만들기 시작하기가 어렵습니다.기능 외에 무엇이 필요한지 생각해 보세요.고성능?, 확장성 시나리오?, 어떤 것?, 사용성 목표?, 높은 확장성?, 배포 및 설치 용이성 등.자신에게 물어:이러한 아키텍처 품질을 달성하려면 어떤 구성 요소를 구축해야 합니까?

오해하지 마세요. 저는 민첩한 소프트웨어 개발을 강력히 지지합니다.아키텍처를 설계하는 데 많은 시간을 소비할 필요는 없습니다(왜냐하면 아키텍처는 작동하는 것과 작동하지 않는 것에 대한 피드백을 구축하고 얻을 때 확실히 진화해야 하기 때문입니다). 아키텍처를 기반으로 제품을 구축하는 방법에 대한 청사진 보유 진행 상황을 계획하는 데 유용해야 하며 현실적인 목표 설정.

프로젝트의 목표를 정의합니다.문제보다는 해결책을 거의 독점적으로 보고 있는 것 같습니다.

프로그램은 어떤 문제를 해결하지 않는 한 귀하나 다른 누구에게도 유용하지 않습니다.움직이기 위해 코드를 작성하는 것은 훌륭하지만, 시작한 후에는 관심과 집중력을 잃은 것처럼 보입니다. 왜냐하면 문제가 아닌 코드를 보고 있기 때문입니다.

이 코드를 작성하게 된 이유를 잠시 생각해 보세요.다른 사람들이 어떻게 동일한 요구 사항을 발견할 수 있는지, 귀하가 해결하기 위해 노력한 동일한 좌절감을 어떤 경로로 이끌 수 있는지 생각해 보십시오.

그런 다음, 그 사람들 중 일부를 찾아 귀하의 (부분적인) 솔루션을 제공하면 그들 모두 사이에서 관심과 제안을 생성하게 될 것입니다.

그러면 프로젝트를 계속 진행할 수 있습니다.동료의 관심, 공유, 심지어 의견 불일치까지 -- 소프트웨어가 필요한 것은 바로 사람들입니다!문제(사람)를 찾기 위해 솔루션(소프트웨어)을 만들지 마십시오.필요나 욕구를 가지고 시작했지만 코드에만 집중하고 프로젝트에 대한 추진력을 잃었습니다.

프로그래밍은 문제를 해결할 때 훨씬 더 재미있습니다.하지만 문제를 계속 앞에 두어야 합니다.문제를 공유하면 공동체가 형성됩니다.이것이 바로 이 문제의 전부입니다, 그렇죠?

내 개인 프로젝트의 경우 바로 뛰어들었습니다.물론 이들 중 어떤 것도 사전 계획이 필요할 만큼 충분히 크지는 않았습니다.이것이 심각한 프로젝트이거나 상대적으로 큰 규모가 될 경우, 최소한 프로그램의 각 부분이 수행해야 하는 작업과 이를 수행할 방법에 대한 높은 수준의 관점을 정리하는 것이 항상 좋은 생각입니다.

다른 프로젝트와 마찬가지로 내 개인 프로젝트에도 항상 다음이 포함됩니다.

  • 최종 목표
  • 작업 목록
  • 사용 가능한 작은 단위
  • 소스 제어

추가적인 동기 부여로 이전에 사용해 본 적이 없는 기술을 사용하려고 노력합니다.일반적으로 새로운 것을 배우는 것이 나에게 가장 큰 동기 부여가 됩니다.

쉬움 - 흥미를 잃을 가능성이 있는 모든 프로젝트를 시작하지 마세요.작업을 시작하기 전에 아이디어에 전념하고 싶은지 확인하는 데 더 많은 시간을 투자하세요.

프로젝트에 따라 다릅니다. 규모는 얼마나 됩니까?

다음 번 Notepad 복제품을 작성한다면 그냥 뛰어들 수도 있겠지만, 나만의 운영 체제를 만들고 싶다면 훨씬 더 많은 비코딩 작업이 필요할 것입니다.

저는 다이어그램을 많이 그리는 것을 좋아하며 대부분의 개발에 사용하는 도구는 깨끗한 A4 용지와 연필입니다.UI, 작업 흐름, 기본 클래스 및 데이터 저장 방법을 그려보세요. 그러면 코딩은 이미 그린 내용을 컴퓨터에서 읽을 수 있는 방식으로 작성하는 것입니다.

소스 제어 다리SVN은 몇 번의 키 입력/클릭이므로 오버헤드가 낮고 이점이 높습니다. 시도해 보고 작동하지 않으면 이전 상태로 되돌리는 것이 편리합니다.

그런 다음 작동할 가장 기본적인 프로토타입을 만드십시오. 일단 무언가가 실제로 진행되면 열광하고 더 추가하는 것이 훨씬 쉽습니다.그것이 부담스러우면 내 머릿속에서 문제가 해결되었다고 생각하고 그것으로 충분하다는 것을 알게 될 것입니다.

먼저 최종 지원서의 기본 개요를 계획하세요.가장 중요한 기능, 기본 GUI, 프로그램 흐름 등그런 다음 처음에 너무 많은 일을 맡지 않도록 다듬고, 불필요한 기능을 제거하고, 첫 번째 버전에서 원하는 것을 추가하세요.그런 다음 해당 개요를 사용하여 작업 목록을 시작하여 가능한 가장 작은 작업 버전의 애플리케이션을 만듭니다.그러면 추가 기능을 추가하고 완벽하게 작동하게 만드는 것이 훨씬 쉽습니다.

나는 Maximillian의 답변을 좋아합니다 ..조금 확장하자면, 마이퍼슨 프로젝트는 제가 이미 진행하고 있는 일을 해결하기 위해 개발되었습니다.그래서 반복 작업에 지치면 솔루션의 프로토타입을 만들겠습니다.그런 다음 사용하십시오.이전 프로젝트 중 하나와 충분히 유사하다면 최대한 많은 코드를 빌려 작업 수준을 향상시키고 더욱 전문적으로 만들려고 노력할 것입니다.

Fusion의 소스 제어 사용도 중요합니다.SVN을 설치하는 데 2분 정도 걸립니다.

공개 오픈소스 프로젝트로 전환하고 싶다면, 오픈소스 소프트웨어 제작 잘 읽어야 합니다(온라인과 인쇄물 모두 이용 가능).

개인 프로젝트가 기존 오픈소스 프로젝트와 유사하다면 대신 해당 프로젝트에 기여하는 것을 고려해야 합니다.몇 가지 작은 기여 (버그 수정 등)는 절반 완성 된 프로젝트보다 더 가치가 있습니다.

위의 모든 사항이 있지만 계획을 확고히 하기 시작합니다.....

일부 도구 스마트 시트를 찾으십시오 - 직접 작업하더라도 www.yworks.com에서 몇 단계와 날짜를 설정해야합니다.

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