Вклад в развитие ord

Предлагаемые шаги

  1. Найдите проблему, над которой вы хотите поработать.
  2. Определите, что будет хорошим первым шагом к решению проблемы. Это может быть в форме кода, исследование, коммерческое предложение или предложение закрыть проблему, если она устарела или вообще не является хорошей идеей.
  3. Прокомментируйте проблему, изложив в общих чертах свой первый шаг, и попросите откликнуться. Конечно, можно сразу же приступить к написанию кода или тестов, но это позволит избежать потенциально напрасных усилий, если проблема устарела, нечетко сформулирована, заблокирована на чем-то другом или иным образом не готова к реализации.
  4. Если проблема требует изменения кода или исправления ошибки, откройте PR проект с тестами и попросите высказать свое мнение. Это позволит убедиться, что все согласны с тем, что нужно сделать, или с тем, каким должен быть первый шаг в решении проблемы. Кроме того, поскольку тесты необходимы, написание тестов вначале позволяет легко убедиться в том, что изменение можно легко протестировать.
  5. Нажимайте на клавиатуру в произвольном порядке, пока тесты не пройдут, и дорабатывайте код до тех пор, пока он не будет готов к отправке.
  6. Пометьте PR как готовый к рассмотрению.
  7. Пересмотрите PR по мере необходимости.
  8. И, наконец, слияние!

Начните с малого

Небольшие изменения позволят вам быстро добиться результата, а если вы выберете неверный путь, то не потеряете много времени.

Идеи для решения мелких проблем:

  • Добавление нового теста или тестового случая, увеличивающего площадь покрытия теста
  • Добавление или улучшение документации
  • Найдите проблему, которая нуждается в дополнительном исследовании, проведите это исследование и обобщите его в комментарии
  • Найти устаревший вопрос и прокомментировать, что его можно закрыть
  • Найдите проблему, которую не следует решать, и предоставьте конструктивный фидбек, подробно объяснив, почему вы так считаете

Слияние на ранней стадии и часто

Разбивайте большие задачи на множество мелких шагов, которые по отдельности обеспечивают прогресс. Если есть ошибка, можно открыть PR с добавлением игнорируемого теста. Он может быть объединен, и следующим шагом может быть исправление ошибки и снятие игнорирования теста. Проведите исследование или тестирование и сообщите о результатах. Разбейте функцию на небольшие подфункции и реализуйте их по одной.

Понять, как разбить большой PR на более мелкие, чтобы каждый из них можно было объединить, - это целое искусство, которым стоит заниматься. Сложность заключается в том, что каждый PR должен сам по себе быть улучшением.

Я и сам стараюсь следовать этому совету и всегда чувствую себя лучше.

Небольшие изменения быстро пишутся, рецензируются и объединяются, что гораздо интереснее, чем трудиться над одним огромным PR, на написание, рецензирование и объединение которого уходит целая вечность. Небольшие изменения не занимают много времени, поэтому, если вам нужно прекратить работу над небольшим изменением, вы не потеряете много времени, по сравнению с большим изменением, которое представляет собой многочасовую работу. Быстрое внесение PR улучшает проект сразу же, вместо того чтобы долго ждать более значительных улучшений. Небольшие изменения с меньшей вероятностью приведут к конфликту в процессе слияния. Как говорили Афиняне: Быстрые фиксируют то, что хотят, медленные сливают то, что должны.

Обратиться за помощью

Если вы застряли более чем на 15 минут, попросите помощи, например, в Rust Discord, Stack Exchange или в чате обсуждения проекта.

Практика отладки, основанной на гипотезах

Сформулируйте гипотезу о том, что является причиной проблемы. Придумайте, как проверить эту гипотезу. Проведите тестирование. Если она работает, то вы устранили проблему или теперь знаете, как ее устранить. Если нет, повторите тест с новой гипотезой.

Обращайте внимание на сообщения об ошибке

Читайте все сообщения об ошибке и не миритесь с предупреждениями.