Como aprender com o código aberto

8

Eu vejo esse problema com bastante frequência. Eu gosto de uma certa proposição de valor de um projeto de código aberto. Eu experimento os tutoriais básicos. Ótimo. Funciona! Mas se eu passar para problemas mais complexos, passo horas pesquisando, depurando, frustrando etc.

Quais são suas estratégias para manter a motivação no código aberto? Qual é a recompensa do código aberto após o sucesso dos tutoriais básicos? Que "sucesso" de código aberto você experimentou?

poseid
fonte
1
Você está falando sobre contribuir para um projeto de código aberto ou usar software de código aberto? Não está claro para mim a questão.
#
digamos, usando uma API de código aberto
poseid 8/10/10
4
Bem-vindo ao desenvolvimento de software. Esta é a nossa vida, tentamos falhar, tentamos novamente até descobrirmos.
Chris

Respostas:

4

Suponho que você esteja olhando para pequenas bibliotecas de código aberto como as encontradas no github. No meu caso, costumo usar um para resolver um problema específico. Se ele não resolver o problema de maneira limpa, eu entendo, aprendo como o código funciona e faça as alterações necessárias. Se minha alteração for para algo útil ou uma correção de bug, tento entrar em contato com o proprietário do código aberto ou bifurcar minha própria ramificação.

Outras vezes, estou apenas adaptando algo próximo às minhas próprias necessidades; nesses casos, apenas mantenho minhas alterações e seguirei em frente. Eu adiciono relógios ou faço check-in regularmente para ver o que foi atualizado.

Como nas notas, porém, essa é a vida do desenvolvimento de software. É um ambiente em constante mudança.

Bill Leeper
fonte
4

Você pergunta como mantém a motivação para usar um determinado projeto de API de código aberto?

O truque é descobrir quais projetos de código aberto são os bons. A principal qualificação no código-fonte aberto é o fato de você ter acesso ao código-fonte, o que é extremamente útil quando você precisa descobrir como as coisas funcionam (o que geralmente acontece quando você precisa mudar o comportamento em alguma situação), mas isso não acontece. implica algo além disso. Isso inclui a qualidade do projeto, que não tem nenhuma relação com a abertura da fonte.

Qualidade consiste em várias coisas mais ou menos sutis ao falar de um projeto de código:

  • Quão bem a API foi projetada? O código que você precisa escrever para realmente chamar a API é de fácil leitura?
  • Quão bem escrito é o código real na API? É fácil entender o que se passa? As estruturas de dados são bem escolhidas e não possuem características de tempo de execução caras? Os nomes das variáveis ​​são bem escolhidos? O código está em conformidade com um padrão de codificação?
  • A API está documentada? Esse é o design e o javadoc do código real e é útil? Isso é mais importante do que você imagina, pois mostra a maturidade do código.
  • O projeto possui uma página da web? É atualizado e sem links quebrados? Ele fornece acesso fácil ao código fonte, downloads e documentação?
  • O projeto possui uma comunidade e listas de discussão? Os arquivos estão disponíveis e acessíveis? A comunidade é útil?

É útil ter todas essas coisas em mente ao escolher se você deseja usar um determinado projeto de código aberto ou não. Qualquer derivação do melhor deve causar um sinal de aviso em sua cabeça, pois é uma indicação de que este não é um projeto de última geração.

Então, quando você encontrou o projeto, gostou do que viu, há o teste final:

  • Quão difícil é começar do zero com um programa simples que invoca a API de uma maneira útil?

Isso deve ser

  1. explicado em um local fácil de localizar no site do projeto e / ou na documentação do pacote de download.
  2. fácil de acertar - a documentação deve ser precisa, o programa simples de escrever ou adaptar a partir de um determinado exemplo simples e bem explicado e facilmente compreensível.
  3. rápido para acertar - se você precisar fazer alguma depuração neste momento para executar o programa conforme explicado, algo está muito errado.

Se for evidente que este é um caso de uso antecipado e priorizado, isso deve ser trivialmente simples. Se for evidente que o projeto não se importa com essa coisa em particular, eu consideraria fortemente não usá-lo! Se for subida aqui, será subida muitas e muitas vezes mais tarde, e será melhor não usá-lo.


fonte
obrigado por apontar na direção da qualidade do software.
poseid 9/10/10