Github

Giving back to community

Tudo bom?

Como todo desenvolvedor web que conheço (e provavelmente os que não conheço), utilizo muito código que foi escrito por outras pessoas e está disponível gratuitamente por aí. Lembro daquele tempo difícil, quando eu estava começando com essa coisa de desenvolvimento e não tinha a menor ideia de que isso existia. Ah, que tempos…

No decorrer de 2014 tive muita vontade de fazer parte da galera que compartilha código com o mundo e ajuda toda a comunidade a desenvolver soluções melhores e mais rápido. Meu problema é que fico muito preocupado em compartilhar de forma tão aberta meu pouco conhecimento porque sei que eventualmente vou falar bobagem e corremos o risco de um cara mais novo acabar levando aquilo na cabeça por muito tempo e cometendo erros que seriam evitados se eu tivesse tido mais cuidado. Sei que é uma preocupação exagerada por diversos motivos, mas ainda assim não consigo lidar muito bem com isso.

Bom, quero dar o primeiro passo para mudar esta situação. Não querendo fazer uma retrospectiva do meu 2014, mas este ano foi diferente para mim em termos de desenvolvimento. Acabei entendendo melhor como desenvolver aplicações escrevendo código reutilizável e não estritamente relacionado à demanda em questão. Escrevi alguns packages que funcionaram muito bem para mim e podem funcionar para outras pessoas também.

A ideia deste post é justamente compartilhar estes packages e quem sabe ajudar alguém ☺

Além de possivelmente contribuir para os projetos de pessoas por aí que precisam de algo que eu fiz, esta atitude pode contribuir para meu próprio desenvolvimento, uma vez que posso receber feedbacks de pessoas diferentes e que possam ter uma ideia melhor de como fazer as coisas e me ajudar a tornar estes e outros projetos ainda melhores.

Vamos lá então:

Validator (JavaScript)

Este é um package para validação de formulários que fiz há algum tempo enquanto estava praticando com JavaScript. Ele foi feito sem usar outras libs, como jQuery, e é bastante flexível, te dando uma interface simples para desenvolver suas próprias regras de validação, se necessário.

SysFeedback (PHP + Laravel)

Antes de usar o Laravel já havia trabalhado com o CakePHP por algum tempo. Uma coisa que senti falta no Laravel é uma maneira simples de emitir mensagens/avisos no controller para serem renderizados na View sem muita dificuldade. No cake a gente fazia $this->Session->setFlash($message) e pronto. Criei este package para ter uma funcionalidade parecida e utilizei em praticamente todos os sistemas que desenvolvi desde então.

Columns (JavaScript)

O gestor de arquivos do Mac tem uma funcionalidade que eu acho incrível (e que também existe no glorioso Elementary OS, mas quebra com frequência). Estou falando da “visualização em colunas” ou Miller Columns. Quando vi pela primeira vez adorei e sempre senti falta nos outros sistemas. Existen alguns plugins para o jQuery que fazem isso, mas eu quis fazer o meu para praticar e ver como a coisa funciona. O código tem muito o que melhorar, mas já usei em alguns projetos e ficou legal ☺

http://support.apple.com/library/content/dam/edam/applecare/images/en_US/osx/finder_column_view.png

Modal (JavaScript)

Sempre usei o Fancybox e acho-o fantástico. É super flexível, fácil de usar, bonito etc. Como com o Columns, eu queria praticar meu JavaScript e fazer algo para eu chamar de meu, hehe. Também não utilizo jQuery para tal e funciona legal, mas tem muito o que melhorar.

Request (PHP)

Desenvolvendo algumas aplicações que deveriam ter uma API REST, me peguei várias vezes escrevendo ~o mesmo código~ para lidar com a querystring e poder responder com os resultados esperados pero cliente. Daí surgiu o Request. O que ele faz é analisar a querystring e determinar quais são os filtros, regras de ordenação, detalhes de paginação etc. Este package só faz isso, não é responsável por buscar os dados nem nada do tipo, mas sim te dizer o que deve ser buscado. Em breve pretendo lançar um package que utilize as informações geradas por este aqui para automaticamente buscar os dados necessários no banco utilizando o Laravel.

EloquentEnhancements (PHP + Laravel)

Novamente voltando ao CakePHP, outra funcionalidade que senti falta quando comecei a usar o Laravel foi a habilidade de salvar um registro e seus relacionamentos com apenas uma save() (salvar um contato com múltiplos telefones, por exemplo). Este package surgiu daí e me ajudou bastante até agora. Tem lá seus problemas, mas é bacana. Vale a pena dar uma olhada ;)

Laravel-ReactJS (PHP + Laravel + ReactJS)

Este pacote simplesmente executa o código JavaScript no backend, usando a extensão V8JS, e te dá o componente que você quiser renderizado, ou seja, todo o código HTML que o React geraria no browser. Isso é útil para resolver o problema de SEO que interfaces puramente baseadas em JS têm, por exemplo. Não foi exatamente para isso que o escrevi, mas vamos chamar de feliz acidente ;)

Não são tantos packages nem tão robustos, mas gosto de cada um deles e com certeza me ajudaram e ajudarão nesse lindo mundo de desenvolvimento de software. Estou aberto a qualquer sugestão ou crítica que você tenha, além de estar de braços abertos a PRs.

Valeu!