• SQLite - Um mecanismo de banco de dados incrivelmente versátil

    Logo do SQLite
    Logo do SQLite

    Durante o desenvolvimento de uma aplicação, seja ela web, desktop ou mesmo mobile, sempre aparece algumas perguntas...complexas. Que linguagem de programação usar? Framework? Quais plataformas focar? E mais importante ainda: Onde armazenar os dados da aplicação?

    Naturalmente, as resposta vão variar bastante de aplicação para aplicação. Não existe sequer uma aplicação em que eu trabalhei na vida em que a resposta foi simplesmente "evidentemente vai ser X, pois sim", embora com o passar dos anos a experiência e o conhecimento sobre diferentes soluções ajude na decisão por escolhas melhores e mais apropriadas para cada contexto.

    E hoje, depois de anos sem escrever nada por aqui, eu vou falar um pouco sobre uma forma de armazenar e consultar dados que é bem interessante, mas quase nunca considerada no desenvolvimento de uma aplicação moderna, embora seja literalmente o mecanismo de banco de dados mais usado do mundo (sim, eu sei que isso é bastante contra intuitivo, mas eu já vou explicar mais sobre): o SQLite.

    (mais…)
  • Versionamento Semântico - Ou como versionar software

    Quando você cria softwares, você precisa lidar com versões em algum momento do desenvolvimento. Seja para gerenciar dependências, seja para dar um número de versão adequado para aquela mudança ou conjunto de mudanças que você fez. Mas, como representar corretamente uma mudança? Afinal, mudanças nem sempre são drásticas: Pode ser uma simples solução de bug, ou algum recurso tão simples que não afeta em nada os outros recursos do seu aplicativo. Bom, por essa razão hoje vou falar um pouco sobre o Versionamento Semântico, um padrão que, quando seguido corretamente, ajuda a garantir que cada nova versão lançada represente corretamente as mudanças feitas em relação à versão anterior.

    (mais…)
  • Composer - Gerencie Dependências no PHP Facilmente

    Logotipo do Composer
    Logotipo do Composer

    Todo projeto possui dependências. Isso é completamente normal e existe em qualquer linguagem de programação que você possa usar para criar seu projeto, seja PHP, Javascript, Ruby ou Go. O ponto é que eu vejo muitos projetos por aí que não usam sequer um gerenciador para ajudar a manejar toda a bagunça que o uso de muitas dependências podem causar, especialmente porque é comum uma dependência ter como dependência outra dependência (plugins do jQuery são um exemplo, assim como Underscore e Backbone), e, no server-side, isso só se torna ainda mais importante: Já imaginou o quão grave seria um problema com alguma dependência importante no seu projeto e o quão louco seria atualizá-la quando vários outras dependências do seu projeto a usam também? Pois então, isso é bem comum quando se usa frameworks..E por isso que hoje vou falar um pouco sobre o Composer, um gerenciador de dependências esperto para PHP que sabe como administrar tudo da melhor forma possível.

    (mais…)
  • .gitignore - Saiba como ignorar arquivos no Git facilmente

    Logotipo do Git

    Uma coisa que todo iniciante de Git costuma fazer é comittar tudo o que há no projeto no repositório. Isso inclui dependências, arquivos compilados, arquivos temporários, e assim vai. Entretanto, com o tempo, esse tipo de arquivos tendem a ser modificados, e tendem a bagunçar muito mais do que deveriam o repositório. Como se isso não fosse o suficiente, à cada clone feito, é necessário lidar com uma quantidade muito maior de dados, pois não há como clonar um repositório no git sem clonar todos os arquivos (você pode até customizar o que vai ser baixado ou não, mas, dada uma branch, você precisa baixar todos os arquivos da branch para conseguir usá-la), o que tende a causar problemas ainda mais significativos ao decorrer do tempo. Por causa disso, hoje vou falar um pouco sobre o .gitignore e como criá-lo, um arquivo simples que lista o que o Git deve ignorar quando você estiver trabalhado no repositório, de forma que seja possível evitar a adição de arquivos indesejados no repositório sem dificuldades, tornando os arquivos indesejados totalmente invisíveis ao Git.

    (mais…)
  • Docker Compose - Ou como criar aplicações multi-containers no Docker

    Logotipo do Docker, que será usado em parceria com o Docker Compose

    No extenso post que fiz sobre o Docker, falei muito sobre o que a plataforma é apresentei alguns exemplos no qual ela se mostra bastante útil, mostrando o porque que ela é interessante especialmente para aplicativos já planejados para serem totalmente distribuídos. Entretanto, essa última parte, como você pode imaginar, exige um setup maior, pois você precisa configurar containers para cada aplicação e conectar tudo de forma que um container possa se comunicar com o outro, o que é bem complicado de administrar quando você precisa criar um determinado ambiente no Docker com determinada frequência (para uso por desenvolvedores, por exemplo). Por causa desse probleminha, hoje eu vou falar um pouco sobre o Docker Compose, uma ferramenta esperta que tem como objetivo facilitar essa configuração e permitir que ela seja reproduzível em qualquer ambiente no qual o Docker esteja instalado (ou que tenha acesso ao Docker, de alguma forma).

    (mais…)