Sempre utilizei software livre e busquei contribuir com as comunidades o máximo que possível… seja palestrando sobre algum assunto do qual me interessei no momento e achei oportuno dividir o conhecimento, ou escrevendo posts no meu blog pessoal a respeito de algum problema que custei a resolver e achei melhor tomar nota para referência futura.
As vezes, até aquele seu pequeno programinha, feito para resolver um determinado problema no seu dia, é uma baita ajuda para outra pessoa, e isso é muito motivador.
Certe vez, trabalhando junto a uma equipe, no meio deu ma discussão acalorada por prazos e qualidade, alguém soltou uma frase que me marcou: “Não nasci para trabalhar de graça”, - admito que aquele momento fez perder toda a admiração que eu tinha pela pessoa, como profissional. Este é um pensamento errado. Ninguém trabalha de graça, e escrever software livre ou de código aberto não é trabalhar de graça.
Quando você contribui, seja com um software, uma documentação, o que for, você não está trabalhando de graça, você está retribuindo o que recebeu. Não somente para quem compartilhou, mas para toda uma comunidade a sua volta.
Gosto muito de usar como exemplo, o PHP. Imagine você, se em 1995, Rasmus Lerdorf não compartilhasse seu código-fonte? Ou se Linus Torvalds não fizesse o mesmo com o Linux em 1991?
Onde você estaria agora? Com o que estaria trabalhando? Eu sinceramente, não sei responder essas duas perguntas.
Mas agora me deixe fazer outra pergunta: como você retribui a isso tudo? Sabe citar alguma?
Acredite, contribuir não é tão difícil assim. E você pode fazê-lo das mais diversas formas:
Enfim, você tem infinitas - sério - possibilidades de poder contribuir com algo que te ajuda tanto no seu dia-a-dia, e não pense que está trabalhando de graça ou perdendo seu tempo, muito pelo contrário, você vai ver, que é gratificante ver que aquela pessoa não precisou ficar um mês escrevendo e testando códigos para fazer algo funcionar, ela simplesmente confiou no seu trabalho para solucionar um problema.
Vejo muitos que não compartilham sequer um trecho de código porque:
A lista de motivos motivos bobos é imensa, vai por mim.
Acho que os que falam isso, são os que realmente não entenderam o que é uma comunidade.
E você, entendeu?
Vou começar este post com uma pergunta e já uma resposta: você sabe o que movimenta uma comunidade? Pessoas!
O parágrafo acima parece - e é - óbvio, não é mesmo? Porém, na prática a coisa é muito diferente. A comunidade é composta sim, por pessoas que vêem o todo, que entendem que, participar de uma comunidade, não é perda de tempo, tão pouco querer fazer parte de panelinha, é networking, aprendizado, compartilhamento e muito mais. Participar de uma comunidade, é melhorar todo o eco sistema da profissão que você escolheu para sua vida. É um benefício que você faz para sua própria carreira, e os resultados são incalculáveis.
Sabe aquele problema que você está a um tempão tentando resolver e não consegue? A solução dele talvez possa ser encontrada num Meetup, trocando idéias com quem é tão apaixonado quanto você por determinado assunto. Ou quem sabe naquela mini palestra, apresentada por aquele amigo seu, que você nem sabia que manjava dos paranauê daquilo que você tá se quebrando pra aprender e pode te dar dicas valiosíssimas. Fazer parte de uma comunidade é isso tudo e muito mais, acredite.
Quando você participa de uma comunidade, você faz também grandes amigos, e se enche de orgulho de descobrir que aquele p*** projeto, possui contribuições daquele cara que tá ali, perto de você, e o mais incrívle é que é como você, um cara normal. E ainda te dá dicas de como contribuir para o projeto também!
E aí, se animou a participar de uma comunidade? Existem muitas incríveis por aí, o PHPSC é somente uma delas. E todas estão com as portas abertas aguardando sua participação.
E você pode participar de várias formas, escrevendo um post, participando dos meetups, compartilhando código e etc, o único limite, é a imaginação.
Boa jornada!
Saudações méros mortais, este é um artigo que escrevi e publiquei, inicialmente no meu blog, estou republicando-o no PHPSC, meu primeiro artigo publicado aqui. Neste artigo mostrarei sobre annotations (é claro, está no título).
Como disse meu amigo Guilherme Diego no artigo Código Limpo é uma Responsabilidade — Blocos:
Enquanto escrevo, vou ouvindo o álbum As Daylight Dies da banda Killswitch Engage, é um banda muito bacana.
Enfim, vamos ao que interessa, vem comigo.
Em um projeto recente do qual participei do processo de refactoring, o que me auxiliou bastante, foi a implementação de annotations, onde foi possível segregar informações estáticas e até atingir algumas práticas de clean code, salientando que isso foi uma solução que funcionou bem no respectivo projeto.
Neste artigo eu não discutirei se é o correto, ou não, apenas demonstrarei como implementar custom annotations com o doctrine reader. Fica sobre teu critério meu chapa!
No exemplo que mostrarei, utilizaremos os seguintes arquivos:
Irei demonstrar os códigos no artigo, caso necessário, você poderá verificar no Gist.
Para trabalhar com o Doctrine Annotation Reader, será necessário possuir a dependência “doctrine/common”, conforme o arquivo composer.json abaixo:
Resumindo, esta classe será responsável pela annotation, ou seja, os atributos públicos da classe armazenarão informações que poderão ser informadas por quem irá consumir a annotation em questão. Segue abaixo o arquivo PeopleAnnotation.php, é a nossa annotation:
Repare que, a classe em questão possui uma annotation, sendo ela @Annotation, isto é necessário para informar ao Doctrine Annotation Reader que a classe em questão, realmente é uma annotation.
Nesta etapa, iremos consumir a annotation PeopleAnnotation e informaremos os valores que a annotation disponibiliza.
Salientando, é possível consumir a annotation em:
No exemplo abaixo, temos a classe People, que comsumirá a PeopleAnnotation:
Repare que, a classe People está consumindo a annotation tanto na respectiva classe, quanto nos atributos e métodos.
Nesta etapa final, iremos instanciar a classe AnnotationReader para lermos as annotations extraídas da classe People (que está consumindo a PeopleAnnotation).
Classes nativas utilizadas no exemplo:
Abaixo o exemplo:
A utilização de annotation pode facilitar diversas condições, salientando que, a necessidade de implementar custom annotation varia de situação. Use o bom senso de programador.
Quaisquer feedbacks serão bem-vindos, fique à vontade para comentar e/ou implementar alguma informação.
Até breve méros mortais e eternos aprendizes (todos somos).