경험에서 말하면 ...
내가 기여한 첫 번째 오픈 소스 프로젝트는 처음 시작했을 때 오줌과 식초로 가득했습니다.
내가 즉시 한 일은 많은 소스 파일을 살펴보고 개인 취향에 맞게 스타일을 지정하고 대규모 패치를 만들어 제출 한 것입니다.
당신이 '좋은'누군가와 같이 일하고 있다면 (그처럼) 패치를 즉시 거부 할 것입니다. 대부분 오픈 소스 프로젝트에 기여할 때 수정 사항을 단일 문제를 해결하는 한 입 크기의 덩어리로 분류해야하기 때문입니다. '모든 고토를 제거했습니다'는 원자 적 커밋의 좋은 예가 아닙니다. 더 작고 잘 문서화 된 커밋으로 분류하더라도 거부 될 수 있습니다.
그 이유는 시간이 지남에 따라 여러 사람이 다른 스타일로 코드를 작성했기 때문에 전체 라이브러리에서 한 개발자의 스타일에 맞게 변경 사항을 적용하는 것은 실제로 불가능합니다. 스타일을 위해 스타일을 변경할 수 있다면 모든 오픈 소스 프로젝트는 다른 개발 스타일에 맞게 코드가 지속적으로 편집되기 때문에 앞으로 나아갈 수 없습니다.
코드 리팩토링 및 기능 추가 (또는 더 이상 사용되지 않는 크래프트 제거)는 일반적으로 '클리닝'코드보다 우선합니다.
오픈 소스 프로젝트 작업에서 가장 어렵고 보람있는 부분 은 제출하는 변경을 제안하는 이유 를 묻는 것 입니다. 정당한 이유를 제시 할 수 있다면 패치가 제출 될 가능성이 높아집니다.
내 조언은 하나의 소스 파일에서 이러한 변경 사항 중 일부를 수행하여 먼저 수행하려는 작업을 맛보는 것입니다. 변경 사항이 정당하고 수용된 경우 프로젝트의 품질을 향상시킬 수있는 변경 사항이 더 있는지 묻습니다. 이렇게하면 향후 패치가 거부 될 경우 아무런 노력을 기울이지 않아도됩니다.
오픈 소스 개발은 코드 작성 그 이상입니다. 게이트 키퍼 (푸시 액세스를 제어하는 개발자) 가 프로젝트의 무결성을 보호하기 위해해야 할 일을하기 때문에 신뢰 관계를 구축하려고 노력 하고 있습니다. 더 많은 패치를 제출할 때 게이트 키퍼는 스타일에 대한 느낌이 좋아지고 변경 사항을 정당화 할 필요가 없습니다.
시간이 걸리지 만 매우 보람있는 과정입니다. 당신 은 다른 사람의 코드를보고 비판하는 것으로부터 많은 것을 배울뿐만 아니라 자신의 스타일에 비판을 받을 것 입니다.
'다른 코딩 스타일의 오류에 대한 불의를 바로 잡기'위해 많은 시간을 허비하기 전에 다음과 같이 자문 해보십시오.
프로젝트에 가치를 더할 때 제안하는 변경 사항입니까, 아니면 자신의 내부 스타일 종교에 기반한 변경 사항입니까?
스택 오버플로 (및 관련 스택 교환 사이트) 에는 많은 종교가 있습니다. 나는 많은 것을 의미합니다 . 사람들은 스타일에 대해 끝없이 생각하고 이야기합니다. 스타일에 대해 더 많이 이야기할수록 '완벽하고, 이상적이며, 파괴 할 수없고, 빠질 수없는'코딩 스타일에 가까워집니다. 나는 그것이 재미 있기 때문에 그것에 대해 너무 많이 이야기합니다.
오픈 소스 세계에서 스타일은 그리 중요하지 않습니다. 기능 은 입니다.
참고 :이 모든 조언은 게이트 키퍼가 합리적이고 재능있는 프로그래머라고 가정합니다. 그가 자신이라면, 자신이 '아기'를 보호하는 데 관심이있는 엉뚱한 b @ & # & es 중 하나에 갇히지 않았다는 것을 행운으로 생각하십시오. 그것들 은 야생에 존재하므로 하나라도 만나더라도 놀라지 마십시오.
goto
반드시 엉망이 아닙니다. 사용이 완벽하게 정당화되는 경우가 많이 있습니다.