Snippets: aumentando a produtividade com eles

Uma ótima dica para quem usa uma IDE ou editor decente é usar os snippets, blocos de códigos reutilizáveis que "brotam" no seu código.

Background Image

Uma ótima dica para quem usa uma IDE ou editor decente é usar os snippets, blocos de códigos reutilizáveis que “brotam” no seu código após o uso de uma keyword e um tab.

É impressionante como a maioria sabe disso mais deixam essa ferramenta de lado.

O que são Snippets?

person in white shirt using computer
Photo by cottonbro studio on Pexels.com

Snippets de código são uma pequena porção de código-fonte que pode ser reutilizada em vários lugares.

Ele pode ser utilizado para representar uma solução comum a um problema específico, para representar um trecho de código usado com frequência ou então como uma demonstração de como algo deve ser feito.

Alguns exemplos de snippet de código incluem:

  • Uma função para calcular a média de uma lista de números
  • Um exemplo de como ler dados de um arquivo
  • Uma implementação de uma determinada estrutura de dados
  • Um exemplo de como usar uma API específica

Snippet de código geralmente são curtos e podem ser facilmente copiados e colados em outro projeto.

Alguns editores de código, IDEs e ferramentas de desenvolvimento web possuem recursos de gerenciamento de snippets, isto é, permitem buscar, classificar e gerenciar snippets de código salvos.

Isso pode ajudar a tornar o desenvolvimento mais rápido e eficiente, permitindo então que os desenvolvedores encontrem e reutilizem o código com facilidade.

Habilitando snippets no GEdit

Utilizando o Gedit hoje resolvi checar como criar novos snippets com coisas mais úteis que for, if e foreach.

Por exemplo, tenho trabalhado em um projeto com CodeIgniter, fiz em poucos minutos snippets completos para criação de controllers, models, helpers, libraries, etc.

Além do código em si, embuti os esqueletos dos comentários no formado do phpDocumentator.

Tive uma sensível diferença de produtividade, mesmo tendo parado para criar os snippets. Agora entendo porque o Pragmatic Programmer bate na tecla dos script generators. Realmente ajuda.

Para habilitar os snippets no GEdit, basta ir em Edit -> Preferences -> Plugins e selecionar o plugin snippets.

Preferências do Gedit
Preferências do Gedit

Clicando no botão Configure Plugin na mesma janela, você pode ver todos os Snippets criados e criar os seus. Para criar um snippet novo não tem mistério algum, basta olhar os outros que você pega o jeito da coisa fácil fácil.

A única coisa que achei estranho no GEdit é que você só pode configurar o plugin do snippet se tiver com um arquivo de extensão reconhecida aberto no Editor. Se estiver só com um Unsaved Document aberto por exemplo, ele não deixa.

Para quem ainda não conseguiu “visualizar” a coisa toda, veja as duas imagens abaixo:

Editor do Gedit
Editor do Gedit

Criei o snippet cicontroller para construir controllers do CodeIgniter. Enfim, depois de digitar essa keyword dar um tab, tenho isso:

Snippet gerando código
Snippet gerando código

Como ser um programador mais ágil

athletes running on track and field oval in grayscale photography
Photo by Pixabay on Pexels.com

Certamente os snippets não são a única forma de se tornar um programador mais rápido, existem formas mais eficientes do que simplesmente habilitar um recuso no seu editor de texto. Por exemplo:

  1. Pratique: A prática é a chave para se tornar melhor em qualquer coisa, incluindo programação. Portanto, quanto mais você escrever código, mais rápido você se tornará em escrever e entender códigos.

  2. Aprenda a digitar rapidamente: Uma boa digitação pode ajudar a aumentar sua velocidade de codificação. Há vários tutoriais e jogos online que podem ajudá-lo a melhorar sua digitação.

  3. Conheça seu ambiente de desenvolvimento: Conheça seu editor de código ou IDE e aprenda todos os atalhos de teclado e recursos que ele oferece. Isso pode ajudá-lo a navegar e escrever código mais rapidamente.

  4. Reutilize o código: Reutilize o código que você já escreveu, se possível. Utilize snippets de código, bibliotecas e frameworks. Quanto menos código você precisar escrever, mais rápido você será.

  5. Aprenda a depurar rapidamente: Saber como depurar seu código rapidamente pode ajudá-lo a identificar e corrigir erros mais rapidamente.

  6. Aprenda a pesquisar: Aprenda a usar a documentação e ferramentas de pesquisa para encontrar informações e soluções de forma rápida. Isso pode economizar muito tempo e esforço.

  7. Faça pausas regulares: Fazer pausas regulares pode ajudá-lo a se manter concentrado e evitar a exaustão.

  8. Aprenda a lidar com o fracasso : Não se desanime quando encontrar dificuldades, em vez disso tente entender o porque de ter dificuldade e use isso para se tornar melhor.

Lembre-se, programar requer habilidade, mas também requer paciência e perseverança. Com o tempo e a prática, você poderá se tornar um programador mais rápido.

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.

Background Image

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.