Mão no Código

PHP e Integração Contínua

Written by Pedro Mendes · 2 min read >
PHP e Integração Contínua

Estamos lutando aqui na 3Jane para alcançarmos um formato indolor de Continuous Integration em nossos projetos – que são (até então) em PHP.

Qual a importância da Integração Contínua?

A integração contínua é uma prática importante no desenvolvimento de software que consiste em integrar o código de diferentes desenvolvedores frequentemente em um repositório centralizado.

Detectando e corrigindo os erros rapidamente, você evita que problemas se acumulem e sejam mais difíceis de resolver no futuro.

Além disso, a integração contínua também ajuda a garantir a qualidade do código, pois testes automatizados são executados sempre que o código é integrado, o que permite detectar problemas de forma precoce.

Isso tudo ajuda a garantir que o software seja entregue com maior confiabilidade e rapidez.

Testes

black traffic light
Photo by Davis Sánchez on Pexels.com

Existe um número relevante de ferramentas disponíveis, o problema esta sendo fazer com que elas sigam um fluxo natural no projeto. Ou as ferramentas precisam de uma adaptação para PHP (como o CruiseControl com o PHPUnderControl), ou as ferramentas não se encaixam, ou são muito limitadas.

Embora um pouco complexo, estamos achando algumas coisas boas. Para começar, tinhamos decidido apostar no CakePHP, um framework sólido e com grande similaridade com o Rails.

Ficamos realmente satisfeitos com a organização da “criança” e de como ele é bem feito. E também tem o fato de que o CakePHP já vem com uma integração com o SimpleTest, que até onde pude ver, a ponte entre eles é sólida e sem “adaptações” incomodas – até porque o SimpleTest também é em PHP.

CakePHP vs Code Igniter

sliced white and pink icing covered cake on white plate with silver colored fork
Photo by Erick MUFASA on Pexels.com

Acontece que pelo CakePHP ser bem completo, ele também é mais lento que outros frameworks e por motivos de força maior decidimos trocar para o Code Igniter, que também é um bom framework, mas não possui tantas camadas quanto o CakePHP e teremos que “digitar mais”. Outro ponto fraco do Code Igniter com relação ao CakePHP é o bake, que é um script generator do CakePHP que agiliza muito a vida.

Quanto aos testes no Code Igniter ele já vem com uma library bem simples para teste unitário, mas é tão simples que estou propondo aqui que troquemos para o SimpleTest ou PHPUnit. Como este último parece ter uma integração com o PHPUndercontrol, estou lendo como plugá-lo ao CodeIgniter.

Já construímos o Tracer Bullet para os testes do ambiente e estamos implantando-o. Estou vendo o Phing para automatizar o processo de deploy, mas ainda não parei para estuda-lo de verdade. Essa é uma das minhas metas nos próximos dias.

Versionamento e Issues

person coding on a macbook pro
Photo by olia danilevich on Pexels.com

Para controle de código, migramos do SourceSafe para o SubVersion e apesar de alguns problemas com o Tortoise, valeu a pena.

Pra ser bem sincero, o engraçado é como sempre os problemas envolvem o Windows. Para controle de bug/issues estamos usando o Jira e como Wiki o Confluence. Ah, e para a documentação do nosso código estamos usando o phpDocumentator.

Conclusão

Ufa! Acho que é isso… O problema é conseguir tempo pra ver tudo isso e dar continuidade no projeto.

Mas posso dizer que demos um “salto quântico” no processo de desenvolvimento aqui na 3Jane. Se você quiser uma lista organizada e decente das ferramentas que podem te ajudar no desenvolvimento em projetos PHP, o Dave Marshall publicou um top 10 no blog dele.

Construindo Websockets em Go

Websockets em Go

Pedro Mendes in Mão no Código
  ·   3 min read
Kotlin

Kotlin e seu Null Safety

Pedro Mendes in Mão no Código
  ·   2 min read

4 Replies to “PHP e Integração Contínua”

  1. Hi Jon,I’ve heard about bamboo, but I found several articles (and indications) on CruiseControl and I found some cases of php projects using phpUnderControl.However, we have experienced new products and methodologies in our development process and testimonies are always welcome. You indicate bamboo?Thank you for commenting!PM

  2. o ci é bem simples, mas por outro lado esse simples acaba te auxiliando, naquelas horas dificieis por exemplo: você quer migrar um site todo procedural, para poo, ou quer treinar uma equipe de programadores, ou quer integrar os sistemas com outras tecnologias, já o cake você é um rei , mas um rei que somente pode reinar dentro do reino do cake.Na antiga empresa que eu trabalhei o povo usava sourcesafe, mas ele trava bastante e no final das contas vai lhe trazer mais dor de cabeça do que soluções. Aqui na f6 estamos usando o svn ele é simplesmente ‘phoda’ , acho que não precisa de mais comentarios hahuahuahua. Bom mas como nem tudo são flores geralmente quando você entra na empresa geralmente ela possui alguns vamos dizer ‘projetos que funcionam’ mas que na verdade foram feitos no pog , mas o importante para a empresa é que funciona rsrsr [essa é aquela hora que os programadores começam a ficar calvos huahuahuah/] É muito dificil aplicar uma integração realmente Boa. São muitas resistencias e achismos…

Deixe uma resposta

%d blogueiros gostam disto: