Mudei de estágio faz menos de um mês e com isso encontrei novos desafios a serem transpostos. Agora estou estagiando no Ikwa, que é uma rede de relacionamento voltada a orientação profissional. Se alguém se interessar em conhecê-lo aqui vai o endereço: http://www.ikwa.com.br. O conteúdo é de boa qualidade e o site também é muito bem feito.
Como eu gosto da área de educação me identifiquei muito com a área de atuação da empresa, pois é voltado a educação, mas sem sair da área de computação. Por isso me motivei a mandar curriculum para cá e agora estou fazendo parte da equipe! 😀
Falando um pouco de tecnologia, o site é feito com a linguagem Ruby, usando o framework Ruby on Rails. Ruby é uma linguagem interpretada assim como PHP e Python. Achei parecida com Python, mas tem umas excentricidades que ainda estou me adaptando. Você já viu em alguma linguagem ter pontuação? Pois é, em Ruby tem. Um exemplo:
if id.nil?
Isso serve para verificar se id é nulo. Bizarro? Eu achei que é, mas pensando bem tem bem mais lógica do que um id.IsNull…
O framework Ruby on Rails (para os íntimos Rails apenas) é uma maravilha. Adorei! Ele impõe que a sua aplicação tenha a arquitetura MVC (model, view, controller). Mas também você ganha muito em simplicidade por causa dessa restrição.
Ah, ele cria a estrutura do projeto para você, o que é uma diferença do framework Prado para PHP que falei a uns posts atrás. Isso é muito bom. Ele tem vários scripts que te ajudam a criar tudo que é necessário, como os controllers, as views e os models.
Um grande problema em sistemas em desenvolvimento (se é que algum dia eles ficam “prontos”) é que existem técnicas para o crescimento organizado do código, mas é muito difícil o banco de dados crescer acompanhando esse crescimento do sistema. Um conceito que é usado no Rails é o de migrações de banco de dados. Em vez de você criar as tabelas e os campos direto no banco de dados, você faz um arquivo com as modificações e depois roda a migração. Assim seu banco fica consistente com a sua aplicação em cada uma das versões dela (lógico se estiver sendo usado um sistema de controle de versões como o svn).
Na estrutura de pastas, o Rails também já cria pastas para testes automatizados. Testar é muito boa prática para saber se com a modificação do código não foi inserido algum erro junto. Só que testar “na mão” é quase impossível para sistemas grandes, pois podem existir muitos casos (ou até infinitos) e demorar muito para fazer todos os testes necessários, se você lembrar de testar tudo. Para isso existem os testes automatizados. Eles podem ser de três tipos: unitários, funcionais e de integração. De forma simples pode-se dizer que os testes unitários testam os models, os testes funcionais testam os controllers e os testes de integração testam um caso de uso do sistema.
Bom, os testes automatizados não são uma garantia de que o sistema funcionará, mas com eles é possível testar diversas opções pensadas (muitas vezes não é possível testar todas por serem infinitas!) e de forma automática. Se o software não passar em todos os testes, isso significa que foram inseridos problemas na sua alteração. Se passar em todos os testes, isso é um bom sinal, mas não significa que seu sistema está perfeito e sem erros. Por isso, os testes a serem feitos devem ser bem pensados, pois quanto mais opções forem previstas, maiores as chances dos testes refletirem a realidade.
O Ruby on Rails é muito adequado para ser usado por desenvolvedores que utilizam métodos agéis de desenvolvimento de software. Mas quanto a isso eu não posso falar muito ainda, estou me iniciando nesse mundo e posso dizer que estou aprendendo muito. Também acredito que com tudo isso que estou aprendendo a qualidade do software desenvolvido é bem melhor. 😛
Bom, é isso por hoje!
Muito legal você ter gostado de RoR, deu pra perceber que tu tens bom gosto =)
Eu também gosto muito de Rails mas principalmente sou fã da linguagem em si, do Ruby.
Usamos, entre outras coisas, Ruby e Ruby on Rails no Pagestacker e posso dizer que foi uma ótima escolha. Tanto a linguagem quanto o framework nos permitem sempre criar novas features para o Pagestacker e ainda sim manter uma boa arquitetura, usando sempre coberturtura com testes automatizados e outros métodos de garantia da qualidade do nosso software.
Em suma, bem vinda ao mundo e a comunidade de Ruby e Ruby on Rails =)