ord에 기여하기

권장 단계

  1. 작업하고 싶은 이슈를 찾아보자.
  2. 문제 해결을 위한 첫 번째 단계로 무엇이 좋을지 생각해 보자. 이는 코드, 연구, 제안의 형태가 될 수도 있고, 오래되었거나 애초에 좋은 아이디어가 아닌 경우 폐쇄를 제안하는 것일 수도 있다.
  3. 제안한 첫 번째 단계의 개요와 함께 문제에 대해 댓글을 달고 피드백을 요청하자. 물론 바로 코드나 테스트 작성을 시작할 수도 있지만, 이렇게 하면 문제가 오래되었거나, 명확하게 지정되지 않았거나, 다른 것에 의해 차단되었거나, 구현할 준비가 되지 않은 경우 잠재적으로 낭비될 수 있는 노력을 피할 수 있다.
  4. 문제에 코드 변경이나 버그 수정이 필요한 경우 테스트가 포함된 PR 초안을 오픈하고 피드백을 요청하자. 이렇게 하면 모든 사람이 수행해야 할 작업이나 문제 해결의 첫 단계가 무엇인지에 대해 동일한 정보를 공유할 수 있다. 또한 테스트가 필요하므로 테스트를 먼저 작성하면 변경 사항을 쉽게 테스트할 수 있는지 쉽게 확인할 수 있다.
  5. 테스트가 통과될 때까지 키보드를 무작위로 매시하고 코드를 제출할 준비가 될 때까지 리팩터링하자.
  6. PR을 리뷰할 준비가 된 것으로 표시한다.
  7. 필요에 따라 PR을 수정한다.
  8. 마지막으로 병합(merge)하자!

작은 것에서부터 시작

작은 변화는 빠르게 영향력을 발휘할 수 있게 해 주며, 잘못된 방법을 선택하더라도 많은 시간을 낭비하지 않을 수 있다.

작은 문제에 대한 몇 가지 아이디어:

  • 테스트 커버리지를 늘리는 새 테스트 또는 테스트 케이스 추가하자
  • 문서를 추가 또는 개선하자
  • 더 많은 조사가 필요한 이슈를 찾아서 조사를 하고 댓글에 요약하자
  • 오래된 이슈를 찾아서 닫을 수 있다고 댓글을 달자
  • 작업해서는 안 되는 이슈를 찾아서 왜 그렇게 생각하는지 자세히 설명하는 건설적인 피드백을 제공하자

일찍 그리고 자주 병합하자

큰 작업을 여러 개의 작은 단계로 나누어 개별적으로 진행하자. 버그가 있는 경우 실패한 테스트 무시를 추가하는 PR을 열 수 있다. 이를 병합할 수 있고 다음 단계로 버그를 수정하고 테스트를 무시 해제할 수 있다. 연구 또는 테스트를 수행하고 결과를 보고하자. 기능을 작은 하위 기능으로 나누고 한 번에 하나씩 구현하자.

큰 PR을 병합할 수 있는 작은 PR로 세분화하는 방법을 찾는 것은 연습해 볼 만한 가치가 있는 기술이다. 어려운 부분은 각 PR 자체가 프로잭트를 개선해야 한다는 것이다.

필자도 이 조언을 따르기 위해 노력하고 있으며, 그렇게 할 때 항상 더 나은 결과를 얻는다.

작은 변경 사항은 작성, 검토 및 병합이 빠르기 때문에 작성, 검토 및 병합에 오랜 시간이 걸리는 거대한 단일 PR을 작성하는 것보다 훨씬 더 재미있다. 작은 변경은 시간이 많이 걸리지 않으므로 작은 변경으로 작업을 중단해야 하는 경우에도 많은 시간이 소요되는 큰 변경에 비해 시간을 낭비하지 않을 수 있다. PR을 신속하게 적용하면 더 큰 개선을 위해 오랜 시간을 기다릴 필요 없이 즉시 프로젝트가 조금씩 개선된다. 작은 변경은 병합 갈등이 누적될 가능성이 적다. 아테네인들이 말했듯이 빠른 이는 하고싶은 것을 커밋하고, 느린 이는 해야할 것을 병합한다.

도움 받기

15분 이상 막혔을 경우 Rust 디스코드, 스택 익스체인지 (Stack Exchange), 프로젝트 이슈 또는 토론에서 도움을 요청하자.

가설 중심 디버깅을 사용하자

문제의 원인에 대한 가설을 세운다. 그 가설을 테스트하는 방법을 알아낸다. 해당 테스트를 수행한다. 테스트가 효과가 있다면 문제를 해결했거나 이제 문제를 해결하는 방법을 알게 된 것이다. 그렇지 않다면 새로운 가설로 반복한다.

오류 메시지에 주의를 기울이자

모든 오류 메시지를 읽고 경고를 무시하지 말자.