Por que open source não é assustador, mas sim vantajoso?
Muitos desenvolvedores, especialmente em C#, olham para o open source com receio. Parece que só tem gurus por lá, que só esperam para criticar seu código. Na verdade, contribuição open source é a melhor forma de aprimorar habilidades, ganhar experiência em uma equipe grande e fazer amigos ao redor do mundo.
Eu mesmo tive medo de fazer meu primeiro Pull Request. Pensava: "Quem sou eu para mexer no código que foi escrito por profissionais?". Mas aí eu simplesmente corrigi um erro de digitação na documentação — e foi só o começo. Hoje tenho mais de 50 merges em diferentes projetos C#. E quero contar como começar a contribuir para open source sem estresse.
Passo 1. Encontre seu "playground"
Não precisa ir direto para o núcleo do ASP.NET Core ou Roslyn. Comece pequeno. Aqui estão três tipos de projetos que vão te receber de braços abertos:
- Bibliotecas para C# — existem milhares no GitHub. Procure por tags como
csharp,dotnet,library. - Ferramentas para desenvolvedores — analisadores de código, geradores, utilitários.
- Documentação — sim, isso também é open source. E muitas vezes é onde há mais "lacunas".
Uma ótima forma de encontrar um projeto é entrar no GitHub e pesquisar label:"good first issue" language:csharp. Essas são tags especiais para iniciantes. Tais tarefas são marcadas como simples e compreensíveis.
Passo 2. Familiarize-se com as ferramentas
Antes de escrever código, certifique-se de ter:
- Git (de preferência pelo terminal, não por GUI)
- Visual Studio ou Rider (a Community Edition serve)
- Uma conta no GitHub
- Conhecimento básico de
git clone,git branch,git commit,git push
Se ainda está com dificuldades com Git — sem problemas. Basta fazer um fork do projeto, fazer alterações pela interface do GitHub e criar um Pull Request a partir de lá. Esse é o caminho mais fácil para a primeira vez.
Passo 3. Encontre um bug ou funcionalidade
Suponha que você escolheu um projeto. O que fazer agora? Abra a aba Issues e procure por tarefas com tags:
good first issuehelp wantedbeginnerdocumentation
Se não encontrar nada — não hesite em escrever nos comentários: "Olá! Sou iniciante, quero ajudar. Tem algo simples?". Acredite, os mantenedores geralmente são muito amigáveis. Eles também começaram um dia.
Passo 4. Escreva o código (com exemplo)
Imagine que você encontrou um bug: no método de extensão para strings, o caso null não é tratado. Veja como pode ser.
Código original (com bug):
public static class StringExtensions{ public static string Reverse(this string input) { char[] chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); }}Sua correção:
public static class StringExtensions{ public static string Reverse(this string input) { if (input == null) throw new ArgumentNullException(nameof(input));
char[] chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); }}Viu? Nada de extraordinário. Apenas adicionamos uma verificação de null e lançamos a exceção correta. Isso já é uma contribuição open source digna.
Passo 5. Escreva testes unitários
Boa prática é adicionar testes ao seu código. Aqui está um exemplo para nossa correção usando xUnit:
public class StringExtensionsTests{ [Fact] public void Reverse_ValidString_ReturnsReversed() { var result = "hello".Reverse(); Assert.Equal("olle