Говоря из опыта ...
Первый проект с открытым исходным кодом, в который я внес свой вклад, когда я только начинал, был полон мочи и уксуса.
Я сразу же просмотрел кучу исходных файлов и начал стилизовать вещи в соответствии с моими личными предпочтениями, создал массивный патч и отправил его.
Если вы работаете с кем-то, кто «хорош» (как я), он немедленно отклонит патч. Главным образом потому, что, когда вы вносите свой вклад в проект с открытым исходным кодом, вы должны разбить свои исправления на куски кусочков, которые решают одну проблему. «Удалено все gotos» не является хорошим примером атомарного коммита. Даже если сначала разбить его на более мелкие, хорошо документированные коммиты, он все равно может быть отклонен.
Причина в том, что код работает над несколькими людьми (с разными стилями) с течением времени, и на самом деле невозможно принять изменения всей библиотеки в соответствии со стилем одного разработчика. Если бы изменение стиля ради стиля было осуществимо, то каждый проект с открытым исходным кодом никогда бы не продвинулся вперед, потому что код постоянно редактировался, чтобы соответствовать различным стилям разработчиков.
Рефакторинг кода и добавление функциональности (или удаление устаревшего кода) обычно имеет приоритет перед «очисткой» кода.
Самая трудная и самая полезная часть работы над проектом с открытым исходным кодом - вас спросят, почему вы предлагаете внести изменения, которые вы отправляете. Если вы можете дать вескую причину, есть большая вероятность, что ваш патч будет отправлен.
Я советую сделать несколько таких изменений в одном исходном файле, чтобы понять, что вы пытаетесь сделать в первую очередь. Если изменения хорошо обоснованы и приняты, спросите, не улучшит ли подобное изменение качество проекта. Таким образом, вы не будете тратить много сил впустую, если ваши патчи будут отклонены в будущем.
Разработка открытого исходного кода - это больше, чем написание кода. Вы работаете , чтобы построить доверительные отношения , потому что привратники (УБС , которые управление толчком доступ) будет делать то , что они должны защищать целостность проекта. По мере того, как вы отправляете больше патчей, привратник лучше почувствует ваш стиль, и вам не придется так сильно оправдывать свои изменения.
Это процесс, который требует времени, но он очень полезен. Мало того, что вы многому научитесь из умения смотреть и критиковать чужой код, но вы будете подвергнуты критике и в своем собственном стиле.
Прежде чем тратить много времени, пытаясь «исправить несправедливость ошибок другого стиля кодирования», спросите себя:
Являются ли предлагаемые вами изменения основанными на добавлении ценности проекту или они основаны на вашей собственной внутренней стилистической религии.
Существует много религий о переполнении стека (и связанных сайтах обмена стека). Я много значу . Люди думают и говорят о стиле бесконечно, как будто чем больше вы говорите о нем, тем ближе вы подходите к «идеальному, идеальному, неразрушимому, непогрешимому» стилю кодирования. Я слишком много об этом говорю, потому что это весело.
В мире Open Source стиль не так важен. Функция есть .
Примечание. Все эти советы предполагают, что ваш привратник является разумным и талантливым программистом. Если он (и), считайте, что вам повезло, что вы не застряли с одним из плаксивых парней, чья единственная задача - защитить своего «ребенка». Они действительно существуют в природе, так что не удивляйтесь , если вы столкнулись с одним.
gotoэто не обязательно беспорядок. Есть много случаев, когда его использование совершенно оправдано.