#blog

O que são forks no desenvolvimento de software

Na tecnologia, fork é o nome dado à prática de copiar e alterar um código livre no GitHub. A prática possibilita a colaboração no desenvolvimento de software, porque permite a troca de ideias entre devs e melhorias em tecnologias já existentes. Entenda mais sobre esse conceito aqui no Blog da Caiena!

Navegue pelo conteúdo:

Código aberto e software livre

Para início de conversa, vamos relembrar as diferenças entre os conceitos de software livre e código aberto, que já apresentamos aqui no Blog da Caiena. Isso porque podemos considerar que todo software livre é de código aberto, mas o contrário nem sempre acontece. 

A definição de código aberto (open source) é dada ao código-fonte disponibilizado publicamente para que todos possam acessar, modificar de acordo com as necessidades e compartilhar. Seu foco é promover o desenvolvimento de software coletivo.

Já o conceito de software livre remete à tecnologia que "respeita a liberdade e senso de comunidade dos usuários", colocando como prioridade a liberdade da programação, não o seu valor.

Então, em resumo, a principal diferença entre esses dois conceitos é a ideologia por trás dos movimentos. O software livre diz mais sobre a liberdade do desenvolvimento de software, e o código aberto sobre a coexistência do software proprietário, baseando-se na qualidade técnica de seu modelo produtivo.

O que são forks

Fazer um fork significa copiar um código de um repositório em sua própria conta no GitHub. Essa cópia manterá uma referência ao repositório original, permitindo acompanhar atualizações e enviar contribuições de volta, mas  você terá total controle sobre o código copiado.

“Um fork é um novo repositório que compartilha configurações de código e visibilidade com o repositório ‘upstream’ original. Os forks geralmente são usados para iterar ideias ou alterações antes de serem propostas de volta para o repositório upstream, como em projetos código aberto ou quando um usuário não tem acesso de gravação ao repositório upstream”.

Definição de fork compartilhada pela página oficial do GitHub.

Como explica o Dev Leonardo em seu canal, o fork possibilita a colaboração entre desenvolvedores de software. Desta forma, é possível realizar as alterações que você avalia como necessárias para melhorar um código de outro dev. E, depois de realizar o fork, você pode criar um pull request para que a pessoa responsável pelo desenvolvimento inicial possa aprovar e adicionar os ajustes que você sugeriu caso tenha interesse.

Em seu curso gratuito de Git e GitHub, o dev Tiago Matos traz um passo a passo para fazer fork de um repositório:

É importante entender também que existem diferenças entre fork e clone. O editor-chefe do canal TechTarget, Cameron McKenzie, explica que isso está relacionado ao nível de controle que um desenvolvedor pode ter sobre um determinado repositório.

“A diferença central entre um fork e o comando git clone é o quanto de controle o desenvolvedor que está executando a operação deseja, ou tem permissão, de exercer sobre o repositório de destino. Se um desenvolvedor quer enviar alterações de volta, ter sua própria cópia do repositório, isolada de outros, e realmente ter controle total, nesse caso ele pode criar um fork. Por outro lado, se o desenvolvedor está trabalhando em um projeto junto a outros membros da equipe, nesse caso ele provavelmente fará um clone do repositório e enviará suas alterações diretamente para ele, compartilhando o código com todos os outros desenvolvedores da equipe”.

Cameron McKenzie, editor-chefe do canal TechTarget.

Vantagens e exemplos de fork

Uma das vantagens do fork para o desenvolvimento de software é poder compartilhar ideias sobre novas funcionalidades, soluções para erros ou outras direções que o código original possa alcançar. Essa cópia também contribui com a customização do código para atender necessidades específicas. Além disso, é uma forma de realizar testes sem comprometer o projeto inicial.

Existem alguns exemplos que você talvez use no dia a dia, mas nem sabia que se tratava de um fork. Em 2010, a comunidade OpenOffice.org anunciou a criação da organização sem fins lucrativos The Document Foundation. Ela surgiu para promover o desenvolvimento de software de aplicativos livres e de código aberto para tarefas administrativas (soluções de texto, planilhas, apresentações etc). O principal projeto da fundação é o LibreOffice, um fork do OpenOffice.org.

Outro caso relevante no desenvolvimento de software são os bancos de dados de código aberto MySQL e MariaDB. O MySQL é de propriedade da Oracle, e o MariaDB é um fork desta tecnologia, que prioriza a flexibilidade e a liberdade dos usuários. Ele mantém a compatibilidade de protocolo com o MySQL.

Concluindo, o fork apoia avanços na colaboração e liberdade de desenvolvedores de software, ao possibilitar a evolução da tecnologia em comunidade. Essa construção conjunta abre portas para múltiplos caminhos.

Mais do Blog da Caiena:

Mais conteúdos

Ao clicar em “Aceitar todos os cookies”, você concorda com o armazenamento de cookies em seu dispositivo para aprimorar a navegação no site, analisar o uso do site e nossos esforços de marketing. Veja nossa Política de Privacidade para mais informações.

Contato

Ops, revise o formulário e tente novamente.