Escrevendo código em um macbook

Ferramenta: editorconfig

Grandes conhecimentos exigem grandes responsabilidades. Saber que você pode optar por utf-8 ou iso-5590-1 pode começar a colocá-lo(a) em uma situação chata. Se apenas um único programador escolher trabalhar de forma diferente em algum momento, quando forem juntar duas partes do projeto o mesmo pode quebrar igual um ovo caindo no chão.

Foto de casca de ovo quebrada.
Foto: http://pt.freeimages.com

O mesmo pode acontecer quando falamos de indentação que pode ser por espaços ou tabulações. E o mesmo problema ao optar por deixar ou não uma simples linha em branco extra no final do arquivo. As vezes até gostamos de fazer escolhas diferentes para cada tipo de arquivo. PHP será utf8 com 4 espaços de indentacao; javascript e CSS usarão 2 espaços em utf8 também; já html será identado usando tabulações. Que salada!!!

Agora, imagina essa salada ao trabalhar com vários projetos diferentes com equipes distintas e as vezes até alguns arquivos são providos por agências de publicidade ou programadores terceiros.

Você pode até fazer a configuração no seu editor de código, mas como já falei antes o problema não está apenas em um único arquivo ou em um projeto e sim em uma quantidade de projetos que podem ter padires diferentes para o mesmo tipo de arquivo.

Imagina trabalhar em um sistema com CodeIgniter como framework e ao mesmo tempo com outro sistema escrito com a ajuda do WordPress. Cada um possui um guia de estilos diferentes e é realmente exausituvo ficar fazendo as devidas configurações no editor de códigos a cada troca de projeto. E se esquecer de trocar uma única vez o projeto pode se perder para todo o sempre.

Capa do livro: Criando um E-commerce com CodeIgniter de Ademir C. Gabardo
Livro: Criando um E-commerce com CodeIgniter

Alguns editores guardam as configurações em um arquivo/pasta na raiz do projeto como o eclipse ou o komodo, mas não é trivial de configurar pois são arquivos em XML ou configurações demais como paletas de cores para cada linguagem e ainda, todos os desenvolvedores precisam possuir o mesmo editor para que isso funcione corretamente. E cá entre nós… Isso não vai acontecer… Cada programador tem o seu xodó que se sente mais confortável.

Uma solução simples e rápida é o editorconfig. Ele consiste em um arquivo de configuração simples que define e mantém o guia de estilo e uma série de plugins de editores de texto que conseguem ler esses arquivos e rapidamente definir o estilo ao abrir os arquivos de trabalho. O legal é que ele é um arquivo muito simples e fácil de manter e pode ser adicionado aos controladores de versão (git, svn, mercurial, cvs).

Assinatura Visual do EditorConfig
http://editorconfig.org

Para ter uma ideia de quão simples é criar o arquivo do editorconfig, veja um exemplo de como ficaria seu arquivo de configuração.

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8

# 4 space indentation
[*.py]
indent_style = space
indent_size = 4

A gama de plugins que o editorconfig carrega é muito vasta e é dificil que seu editor preferido não esteja na lista. E, se não estiver disponível para seu editor preferido, é possível criar o seu a partir das bibliotecas de parse que existem e enviar para o projeto.

O editorconfig é uma das primeiras coisas que eu adiciono aos projetos e incentivo o time a utilizar devido a ganha de facilidades que ele traz para os projetos. E você, qual é seu setup inicial? Qual é a coisa mais importante, no seu conceito, que todo projeto deve ter?

Leave a Reply

Leave a Reply +

Leave a Reply

Your email address will not be published. Required fields are marked *