Tradicionalmente, a TI executava software comercial de prateleira, enquanto os data centers executavam hardware Unix proprietário e servidores Windows baseados em x86. No entanto, recentemente, o ambiente de computação do usuário final foi interrompido pelo advento dos smartphones e tablets, com o Linux se tornando cada vez mais uma força dominante no data center. Sem mencionar que houve previsões de analistas da IDC em agosto de 2015, observando que já há uma mudança para sistemas de código aberto como o Couchbase e o Couchbase Mobile no mercado de servidores e dispositivos móveis.
Contribuir com o código-fonte aberto não é tão assustador quanto parece. Em primeiro lugar, a comunidade de código aberto é grande e diversificada, com pessoas trabalhando juntas em problemas comuns. Stackoverflow é um exemplo de como as mentes coletivas são capazes de resolver problemas relacionados mais rapidamente e compartilhar as descobertas diárias. Os benefícios são que você pode obter feedback direto de uma vasta comunidade de especialistas com diferentes níveis de habilidade e, ao mesmo tempo, criar um sistema de suporte de campeões.
Rápido
Até mesmo a Apple abriu sua linguagem de codificação, Rápidoe, assim, os desenvolvedores de fora da Apple poderão consultar o Swift e o contribuir para seu desenvolvimento trazendo-o, assim, para novas plataformas, como Windows e Android. Outra vantagem é que, por ser de código aberto agora, você pode ver o roteiro do produto e evolução do Swift também para datas de lançamento de recursos futuros.
Primeiros passos
Isso não é tão assustador quanto parece. Muitas vezes, podemos acreditar que as únicas contribuições importantes nas quais os líderes de projetos de código aberto estão interessados são as extensões de recursos ou as correções de bugs importantes. Mas, na realidade, tudo o que é necessário são algumas linhas de código e começar aos poucos. Trabalhar com um conhecimento de domínio que você já conhece permitirá que você se aprofunde rapidamente e também ficará mais motivado a melhorar o projeto em geral. O outro benefício é aprender e adquirir novas habilidades de domínio também. Há muitos projetos disponíveis no GitHub com os quais você pode contribuir, como Leitor de livros eletrônicos da Library For All, ao mesmo tempo em que aprende novas tecnologias, como o React Native.
Relatórios de problemas
Como você pode começar? Bem, uma maneira é fazer parte do grupo coletivo que contribui com o código-fonte, mas outra maneira é procurar melhorar os tíquetes de relatórios de erros existentes. Essa é uma oportunidade de contribuir preenchendo informações úteis e definindo o padrão de qualidade dos relatórios de erros. Uma estratégia de como fazer isso é:
- Verifique se o problema ainda está ocorrendo
- Descreva as etapas para reproduzir o problema
- Fornecer informações sobre a versão
- Adicione trechos de código, capturas de tela e registro de erros ou textos
A chave aqui é ajudar a fechar um problema existente e fornecer detalhes claros ajudará a resolver o tíquete aberto, melhorando assim a experiência geral e o código. Uma vez identificado, você também pode fazer referência a membros específicos da equipe do projeto para investigar os problemas mais a fundo. Abaixo, você pode ver o Problemas pendentes do Couchbase Mobile Android que está sendo relatado pelos meus usuários na comunidade.
Documentações do desenvolvedor
Os desenvolvedores dependem de ótimas documentações para aprender e entender as tecnologias. É o primeiro lugar que os desenvolvedores visitam antes de se aprofundar e ter ótimas documentações é fundamental para que os desenvolvedores adotem uma tecnologia rapidamente. Essa é outra área em que você pode contribuir muito, pois os documentos do projeto nem sempre são mantidos no mesmo ritmo que o restante do projeto. Você pode ajudar a esclarecer as coisas para si mesmo e para os outros desenvolvedores:
- Atualizar a descrição dos métodos
- Forneça um exemplo de método e uso
- Adicionar diagramas
- Corrigir erros de digitação e atualizar os números de versão
Assim como o Couchbase Mobile Android README.md suas contribuições nas documentações ou nos guias serão de grande ajuda para o sucesso dos desenvolvedores, pois esse será o principal recurso com o qual os desenvolvedores interagem diariamente.
Resolução de problemas
É aqui que você pode combinar tudo o que aprendeu com as quatro opções acima na contribuição definitiva de código aberto: o patch de bug. Obviamente, não se sinta pressionado a solucionar todos os bugs que encontrar, mas, se tiver disponibilidade, tente encontrar a solução. Mesmo que não encontre a correção, relate suas descobertas sobre o problema existente ou abra um novo problema com detalhes completos sobre tudo o que tentou.
Quando você encontrar a correção, lembre-se de que as melhores correções são as menos perturbadoras possíveis. Especificamente, sua correção deve introduzir o mínimo possível de código novoe qualquer novo código deve ser escrito no mesmo estilo que o restante da base de código. Mantenha seu escopo pequeno; sua pull request deve tratar de um único problema limitado, com alterações mínimas em geral.
Quando estiver pronto para abrir sua pull request, certifique-se de cobrir o seguinte:
- Faça referência ao problema aberto que sua pull request está resolvendo. Se não houver um tíquete existente, abra um você mesmo (seguindo as diretrizes acima).
- Forneça uma descrição clara de suas alterações: qual problema está sendo resolvido e como.
- Atualize toda a documentação correspondente (conforme descrito acima).
- Escreva um caso de teste para o conjunto de testes que cubra sua correção (conforme descrito acima).
- Veja mais em: http://blog.flatironschool.com/how-to-contribute-to-open-source-code-5-steps-for-beginners/#sthash.OxOfFtkV.dpuf
Agora que você relatou problemas e atualizou as documentações do desenvolvedor, por que não levar suas contribuições de código aberto a outro nível e trabalhar na resolução de tíquetes sobre os problemas pendentes? Concentrando-se em introduzir o mínimo possível de alterações no código, você pode iniciar esse caminho:
- Documentar casos de teste
- Elaboração de um relatório detalhado sobre as descobertas
- Faça referência aos problemas em aberto que está resolvendo
- Atualizar a base de código adequadamente
Analisar os problemas existentes e tentar resolvê-los ajudará não apenas a você, mas também a outros desenvolvedores que estão usando a base de código. Você estará melhorando o produto em geral e, mesmo que não resolva o problema diretamente no final, as descrições detalhadas adicionadas ajudarão outra pessoa a resolver o tíquete. Abaixo, você pode ver como o Membros da comunidade do Couchbase Mobile estão se ajudando mutuamente e resolvendo o problema juntos de forma aberta.
Resumo
Como você pode ver, há várias maneiras de fazer parte do mundo do código aberto e contribuir para as tecnologias de código aberto, como Couchbase e Couchbase Mobile [Android / iOS]. Além de ser uma ótima maneira de trabalhar coletivamente em projetos e códigos com pessoas de todo o mundo, o tempo de resolução também é muito mais rápido. Você também pode saber mais sobre como contribuir acessando a página Diretrizes do GitHub sobre como se envolver no código aberto e procure por projetos disponíveis.