Pular para o conteúdo principal

Programe pelo Navegador com Code Lab

O projeto Code Lab permite programar diretamente pelo navegador, sem nenhuma outra dependência externa. É interessante para os casos em que se quer fazer um experimento rápido mas não há um computador com a linguagem instalada e configurada por perto.

Esse projeto foi feito originalmente como uma prova de conceito e também ajudar meus alunos da PUC a usarem diferentes linguagens de programação sem a necessidade de instalar nada na máquina deles.

Leia mais…

Cursos Gratuitos de Git, Mercurial e Subversion

Estão disponíveis cursos completos e gratuitos de Git, Mercurial, Subversion e Controle de Mudança no canal da Pronus no Youtube. Eu condensei nestes cursos grande parte dos meus anos de experiência em consultoria e treinamento em Gerência de Configuração de Software. Como eu agora trabalho com desenvolvimento Web, achei melhor disponibilizar gratuitamente esses vídeos para que este conhecimento não fique perdido e possa ser útil a quem precisar.

O diferencial desses cursos é que eles vão muito além do funcionamento das ferramentas e apresentam uma base teórica de controle de versão e de mudança. O conteúdo do curso do Git, por exemplo, contém os seguintes tópicos:

Programa do Curso de Git
Início Tópico
00:00:00​ O que é gerência de configuração de software?
00:07:55​ Repositório e Diretório de Trabalho
00:15:39​ Fluxo de Trabalho Individual
00:17:21​ Instalação do Windows Subsystem for Linux (WSL)
00:20:31​ Instalação do Git
00:22:47​ Configuração do Git
00:26:28​ Operações Básicas do Git - Parte 1
00:30:40​ Operações Básicas do Git - Parte 2
00:35:42​ Operações Básicas do Git - Parte 3
00:37:56​ Ignorando Arquivos no Diretório de Trabalho
00:44:08​ Ignorando Arquivos no Git
00:48:01​ Revertendo Alterações pela Linha de Comando
00:59:37​ Revertendo Alterações pela Interface Gráfica
01:06:22​ Controle de Versão Centralizado x Distribuído - Parte 1
01:12:32​ Controle de Versão Centralizado x Distribuído - Parte 2
01:18:17​ Topologias de Controle de Versão Distribuído no Git - Configuração do Servidor
01:26:52​ Topologia Peer-to-Peer no Git
01:30:01​ Topologia Cliente-Servidor no Git
01:32:52​ Topologia Fork-Pull no Git
01:36:06​ Controle de Concorrência - Parte 1 - Travamento
01:41:57​ Controle de Concorrência - Parte 2 - Mesclagem
01:52:03​ Controle de Concorrência - Parte 3 - Ramos Individuais
02:02:25​ Revisão dos Mecanismos de Controle de Concorrência
02:04:34​ Demonstração da Mesclagem
02:13:15​ Demonstração do Rebase
02:20:57​ Fluxo de Trabalho em Equipe
02:22:45​ Variações de Projeto - Parte 1 - Ramos
02:27:15​ Variações de Projeto - Parte 2 - Ramo Principal e Dedicado
02:31:08​ Variações de Projeto - Parte 3 - Etiquetas, Ramo de Manutenção e Ramo Estável
02:42:27​ Variações de Projeto - Parte 4 - Ramos Individuais
02:44:09​ Revisão dos Conceitos de Variação de Projeto
02:48:22​ Como Funcionam Ramos no Git?

O curso de Mercurial, que é a ferramenta de controle de versão que eu mais gosto e uso em todos os meus projetos pessoais, segue a mesma linha.

E pra quem é da velha guarda, há o curso de Subversion. Ministrei esse curso muitas vezes na época que o Subversion era o mais popular.

12 Fatores na Construção de um Aplicativo Web

The Twelve-Factor App é um conjunto de recomendações muito popular para desenvolvimento de aplicações web, que é resultado de anos de experiência do pessoal da Heroku na administração de centenas de milhares de aplicações na forma de software-como-serviço.

Os 12 fatores é um conjunto de soluções conceituais que visa tornar as aplicações mais portáveis, escaláveis e fáceis de serem desenvolvidas e implantadas. Pode ser aplicado a projetos escritos em qualquer linguagem de programação.

Leia mais…

Qual a melhor ferramenta de controle de versão: Subversion, Git ou Mercurial?

As ferramentas mais interessantes atualmente de controle de versão são o Subversion, Git e Mercurial. Se você ainda não escolheu uma, ficará feliz em saber que existe sim uma solução simples e eficaz dependendo do perfil da equipe e das necessidades do projeto. A surpresa está em saber que a melhor opção certamente será o Subversion ou o Mercurial, mas dificilmente o Git. Vamos analisar os porquês neste artigo.

Leia mais…

Por que o Facebook escolheu o Mercurial e não o Git?

Nem todo mundo sabe, mas o Facebook usa o Mercurial como controle de versão desde 2013. Antes, usou o Subversion e depois tentou o Git. Mas como o Git não deu conta do volume de código do seu repositório monolítico, resolveram investir no Mercurial e deu muito certo! Desde então, o Facebook é um grande colaborador do Mercurial, contribuindo com inúmeras melhorias ao projeto. Também são grandes colaboradores o Google e o Mozilla (Firefox).

Essa é a versão resumida da história. Mas o que aconteceu exatamente? Quais foram as limitações do Git que fizeram que fosse preterido em relação ao Mercurial? Vamos analisar esses pontos no artigo.

Leia mais…

Tipos de Ramos do Controle de Versão

Um ramo é uma linha diferente na evolução que forma uma variação isolada e controlada do projeto.

Ramos resolvem vários problemas:

  • Permitem a execução simultânea de atividades diferentes e incompatíveis (ex.: codificação, teste, manutenção)
  • Organizam o esforço de implementação por finalidade, equipe, risco, restrição etc.
  • Isolam implementações arriscadas das que são certas e rápidas.

Se usada corretamente, a ramificação produz uma estrutura que consegue absorver todas as mudanças no projeto de maneira ordenada. Desde as emergenciais, que precisam ser atendidas com urgências e postas em produção, até alterações incertas, que podem se mostrar viáveis ou não com o tempo.

Leia mais…

Comparação de Complexidade entre Subversion, Mercurial e Git Baseada em Quantidade de Texto de Ajuda

Como medir a complexidade do Subversion, Git e Mercurial? Uma forma simples e direta é a partir da quantidade de texto de ajuda: quanto mais simples uma ferramenta, menos linhas são necessárias para explicar seu funcionamento. Essa ideia é bem ilustrada pelo tweet abaixo:

Em outras palavras:

Invista na simplicidade e economize na explicação.

Leia mais…

Mercurial mais rápido com o cHg

Quando você executa um comando hg, um novo processo Python é disparado, o Mercurial é carregado, o comando é executado e depois o processo finaliza. Esse tempo de carregamento inicial do Python e do Mercurial a cada comando nem chega a ser perceptível para execuções esporádicas, mas se você precisa executar vários comandos em um script ou de dentro de uma aplicação, o tempo de resposta começa a aparecer.

O chg é um programa em C que executa os comandos hg através do servidor de comandos do Mercurial que roda em background, evitando o tempo de carregamento inicial.

Leia mais…

O que é Gerência de Configuração de Software?

Mudanças durante o desenvolvimento de software são inevitáveis; o ambiente no qual o sistema opera muda, o entendimento dos usuários e desenvolvedores sobre o sistema muda, os requisitos mudam. Com tantas mudanças assim, como evitar que o desenvolvimento fique caótico?

A área da Engenharia de Software que trata esse assunto é a Gerência de Configuração de Software:

Gerência de Configuração de Software (GCS) é um conjunto de atividades de apoio que permite a absorção ordenada das mudanças inerentes ao desenvolvimento de software, mantendo a integridade e a estabilidade durante a evolução do projeto.

As atividades da GCS e as respectivas ferramentas de apoio são:

  • Controlar e acompanhar mudanças (Controle de Mudança)
  • Registrar a evolução do projeto (Controle de Versão)
  • Estabelecer a integridade do sistema (Integração Contínua)

ferramentas GCS

Leia mais…