Forkney it: 8 Vá a projetos interessantes para cavar no código fonte

Nós, no distrito binário, estamos intensificando a atividade. Em dois dias, você poderá aprender a entender a ideologia e o interior do Go, escrever um código limpo e testável. Mas este é o primeiro passo, e então - pratique, pratique, pratique: leia o código de outra pessoa, escreva e edite o seu.

O código aberto é ideal para isso:

  • O código aberto aumenta a visibilidade. Você pode estudar de maneira não seletiva a fonte.
  • O código aberto fornece um incentivo para escrever o código o mais limpo possível e documentar a lógica.
  • Contribuir para o movimento de código aberto melhora o carma.



Juntamente com Sergei Tolsi, um graduado do nosso curso Go, fizemos uma lista de projetos de código aberto de vários níveis e orientações, adequados para aprender a escrever um bom código e, ao mesmo tempo, tornar o mundo um lugar melhor.

Estratégia Tolsi :
“Se você deseja usar código-fonte aberto para treinamento, primeiro decida sobre uma área específica de trabalho e defina uma meta - por exemplo, criar um site ou jogo, algum tipo de serviço - e depois encontre um projeto ou estrutura semelhante com exemplos. Por exemplo, trabalho no campo de criptomoedas e descobri que eles estão escrevendo no Go uma implementação da rede Lightning para acelerar transferências na rede Bitcoin e o nó mais estável para o Ethereum é o geth . ”

1. Docker


Vamos começar com um dos projetos mais complexos e volumosos conhecidos muito além da Comunidade Go. Desde 2013, o Docker é distribuído gratuitamente sob a licença Apache 2.0 e é um sistema para criar máquinas virtuais isoladas com qualquer ambiente necessário para testar aplicativos. Seu componente principal, libcontainer, é o padrão para esse tipo de sistema. A melhor implementação da "caixa de proteção", por exemplo, não pode ser encontrada.

2. Kubernetes


Outro projeto interessante, que apareceu em meados de 2014, está intimamente ligado ao Docker: Kubernetes , software para gerenciamento de grupo de contêineres em uma grande frota de dispositivos. É possível que você já tenha lidado com ele, mas você olhou sob o capô deste projeto?

Se você estuda o Go, vale a pena fazê-lo apenas porque o Kubernetes foi escrito pelos programadores do Google e, entre os colaboradores do projeto, existem especialistas da RedHat, IBM e Microsoft. A base de código do Kubernetes é fornecida com um bom guia do Kubernetes Contributor , e você pode conversar com a equipe de desenvolvimento no Slack durante sessões regulares de perguntas e respostas .

3. Sincronização


O Syncthing é um projeto bem desenhado, sem problemas técnicos perceptíveis e bugs críticos, criado com base nas práticas do Effective Go .

Essa implementação de um sistema de compartilhamento de arquivos distribuído, como o BitTorrent Sync, é baseada no protocolo de troca de bloco (BEP) de código aberto.

Comparado ao Kubernetes, o Syncthing possui uma arquitetura simples que consiste em apenas três camadas principais. O código do programa corresponde à biblioteca Go padrão e a combina com o LevelDB e várias outras bibliotecas. Eles são usados ​​para criptografar conexões de rede, calcular hashes e armazenar dados. Entender sua base de códigos ajudará o guia no site oficial e em um fórum animado .

4. G3N


E o mecanismo 3D criado por programadores para programadores? Este título é mantido pelo G3N e também está totalmente escrito em Go. O mecanismo é adequado para jogos, mas está posicionado como uma ferramenta para escrever aplicativos interativos.

5. GoLearn


Aprendizado de máquina e Python são quase sinônimos, mas Go também é útil para cientistas de dados. A biblioteca de aprendizado de máquina simples e flexível do GoLearn está escrita neste idioma. Ele usa o shell Gonum BLAN e suporta algoritmos básicos de aprendizado de máquina, incluindo: método de vetor de suporte, regressão linear, redes neurais, floresta aleatória, árvores de decisão e um classificador Bayesiano ingênuo.

6. Gorgonia


A solução de aprendizado de máquina de baixo nível da Go - Gorgonia - também é digna de nota. Essa biblioteca, remanescente do conceito de TensorFlow , usa o conceito de representar equações em um gráfico e é empacotada em um único arquivo binário.

7. acra


Estudar a base de código da acra , uma ferramenta de criptografia e armazenamento seguro de banco de dados projetada para microsserviços em plataformas móveis e na web, pode ser uma experiência interessante. Esta é uma oportunidade para aprender códigos verdadeiramente seguros e aprender com a experiência como detectar e proteger contra vazamentos de dados, integrar criptografia em um projeto.

Além disso, a biblioteca cliente AcraWriter está disponível não apenas no Go, mas também no Ruby, Python, NodeJS, iOS (Objective-C / Swift), Android Java e PHP - você pode comparar implementações e aprender algumas das sutilezas do software de portabilidade na prática.

A versão mais recente da documentação e dos tutoriais da Acra está disponível no servidor oficial do Cossack Labs .

8. ConnectorDB


O ConnectorDB é adequado se você não apenas deseja aprender o código de outra pessoa, mas também faz algo útil pessoalmente. Esta é uma plataforma de código aberto para implantar seu próprio segmento da Internet, com base nos dispositivos já disponíveis. Ele agrega dados de computadores, smartphones de navegadores e os processa.

Depois de entender o código, você pode escrever novos módulos e conectar quase qualquer dispositivo ao ConnectorDB, configurar o monitoramento de sua própria vida, começando com o monitoramento da atividade física e terminando com a contagem da produtividade e a avaliação do humor.

E também ...


O local ideal para iniciar sua pesquisa é a lista Awesome Go , onde a comunidade coleta links para as melhores bibliotecas e aplicativos de código aberto do Go. Além disso, o Wiki é útil para repositórios de idiomas. Possui listas de artigos , cursos e livros potencialmente úteis .

Ao analisar o código do projeto e contribuir, você pode desenvolver habilidades adquiridas e atualizar conhecimentos. Há uma chance de se envolver no movimento de código aberto, e só há uma maneira de descobrir o quão profundo e longo. E para aqueles que vão começar com o básico e desejam ingressar imediatamente no desenvolvimento, nos dias 8 e 9 de dezembro, uma prática intensiva em programação no Go ocorrerá no Distrito Binário.

Source: https://habr.com/ru/post/pt432022/


All Articles