Novo release do Jails 1.0.0 e a experiência de escrever um framework

Fala meu povo!

Eu às vezes me sinto um pouco babaca escrevendo aqui pra mim mesmo ahahhaahah. Mas se você é um dos poucos que acompanham este blog parado tenho uma boa notícia!

Acabei de lançar a última versão do Jails, projeto de arquitetura AMD que comecei faz algum tempo já. Não imaginava que fosse chegar à esse ponto, não tinha a mínima idéia o quanto ela evoluiria desde a sua concepção lá no início. Me lembro que pensava que se eu utilizasse ela na versão 0.0.2 ( lá no comecinho ) eu iria melhorar muito meus projetos… Mal sabia o quanto ela ainda iria melhorar.

Jails 1.0.0 ( Orpheus )

Bom, todos os releases tem um codinome baseado em alguma figura mitológica, é por isso o nome estranho ali. Mas falando do que mais importa, esta versão é estável e totalmente reescrita do zero.

Quando você tem uma idéia, você a rabisca, faz rascunhos primeiro, depois lapida, testa, gera algumas versões e vê como ela se comporta em um cenário em produção.

Bom foi isso que eu fiz basicamente, quando ela se tornou promissora e realmente fazia sentido ser usada, decidi então reescrever usando os mesmos conceitos, porém melhorando a parte técnica do código. Isso faz com que melhore tanto na performance, quanto na manutenção, e abrindo novas possibilidades ao mudar algum approach.

Independente do jQuery/Zepto

Esta foi uma tarefa bem difícil pois ao contrário do que a maioria pensa, trabalhar sem jQuery é complicado. Dar suporte à maioria dos browsers não é uma tarefa fácil. O Jails ainda não dá suporte à maioria deles, mas uma característica nesta versão faz com que você acople bibliotecas nela que faz com aumente o espectro de compatibilidade. Por exemplo, se usar um Adapter jQuery 1.11 ela vai dar suporte à todos os browsers que esta versão do jQuery dá.

Repositórios – Components & Modules

No começo eu estava tão empolgado com a idéia que queria inflar o repositório com módulos e componentes. Com esta nova versão, percebi que a maioria deles tinha dependência com o jQuery/Zepto, mas não precisariam ter.

Não foi só a biblioteca que foi ganhando maturidade, mas eu também, ao utilizá-la no dia-a-dia e percebi que ao invés de ter repositórios lotados de componentes e módulos beta, eu deveria me preocupar mais com a qualidade dos componentes/módulos que eu estava escrevendo.

Eles também ganharam uma interface um pouco mais bonita, um lugar para buscar e ler sobre a documentação e ver exemplos.

Compartilhando Exemplos

No início eu hospedava em cada módulo/componente os exemplos que fazia. Isso começou a fazer menos sentido conforme fui amadurecendo o projeto, não fazia sentido criar uma série de exemplos e ficar commitando no github…( Ahh vá !! ) Oras… pra que serve jsfiddle, codepen, plunker? Então agora, os exemplos são todos hospedados nestes serviços..

Mas, existe um caso que vale a pena ser hospedado. Alguns projetos eu fazia e deixava na minha máquina, eram aplicações para testar o funcionamento e comportamento do Jails. Existem mais arquivos, e são mais complicados de serem testados em serviços de compartilhamento de código pelo fato destes serviços serem mais lentos por estarem na nuvem.

Então criei um repositório chamado Demos e lá ficam estas aplicações, no momento existem apenas duas, uma aplicação Flickr usando o serviço JSONP do próprio, e uma aplicação TodoMVC, um fork daquele projeto famoso.

Documentação…

É a parte mais chata de todas né… bom dei uma melhorada no padrão das documentações dos módulos e componentes, mas preciso ainda dar um grau na documentação do próprio Jails…

Por enquanto está lá meio capenga na wiki do projeto, mas acho que a wiki do github não tem um apelo visual dos melhores.. Acho que vou melhorar esta documentação e usar o bom e velho gitbook.

Exército de um homem só

Nem preciso dizer que não tenho qualquer suporte e/ou contribuição né? Mas isso não é de fato o que me incomoda. O que realmente me incomoda é o fato de eu não conseguir ainda “vender” este projeto, mostrar o potencial dele para as pessoas…  então é o fato de ninguém realmente ter usado que me deixa mais angustiado…

Estou sofrendo do estigma de “mais um framework javascript” e lutar para ter a atenção que React, AngularJs, Ember, Backbone é certamente uma luta perdida, praticamente Davi vs Golias.

Motivação

Mas não se trata de ganhar uma luta, ou aparecer mais que os outros… Recebi alguns comentários, emails e stars no github que me motivaram a continuar. E não são só estas as minhas motivações.

O fato é que está FUNCIONANDO, não no sentido técnico, mas no sentido filosófico, está cada vez mais fazendo sentido escrever pequenos frameworks, pequenas bibliotecas. Eu realmente estou escrevendo menos código, estou conseguindo me divertir MUITO mais desenvolvendo e estou olhando para um código antigo feito em Jails com orgulho, e não mais com aquela sensação de que tudo ficou um lixo. Inclusive pensando bem…era este meu objetivo principal.

Consigo ver agora nos projetos que utilizei o Jails, o que mais pode ser feito, ao invés de pensar em refactories. Ao invés de pensar em que módulo melhorar, pensar qual módulo poderia agregar mais ao site, como um notificador quando algum módulo do site quebra, como fazer um BI desacoplado, etc etc etc.

Agora penso muito mais em como posso agregar com outras soluções, ao invés de pensar em como posso destruir e começar tudo do zero. Mesmo que seja a única pessoa no mundo que esteja usando, já valeu MUITO à pena.

Eu já utilizei outros frameworks, outras arquiteturas, novas e antigas… já tentei de tudo. Posso dizer com um PUTA orgulho… Nenhum deles, até agora, me faz “dropar” essa iniciativa e migrar para outra solução. Simplesmente porque o projeto não mira as inovações do mercado, o projeto é pé no chão, simplicidade aqui é tudo, e a modularização faz com que qualquer coisa nova revolucionária e já consolidada, possa ser acoplada de maneira muito simples.

Posso mudar a micro-arquitetura das aplicações de acordo com o projeto, e não engessar todas elas numa única arquitetura. Mantendo sempre a simplicidade, acho que o projeto só tem a crescer mais e mais.

Abaixo cito uma das frases que mais tem feito sentido para mim nos últimos tempos, reflete a verdadeira essência do Jails, sempre penso nela quando vou refatorar o código do projeto, ou quando estou escrevendo um componente/modulo e penso que preciso colocar mais coisas:

…It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to subtract. 

Antoine de Saint Exupéry – Terre des Hommes (1939)

 

 

Anúncios

2 comentários sobre “Novo release do Jails 1.0.0 e a experiência de escrever um framework

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s