inicio mail me! sindicaci;ón

Posts de Rails

Fixtures suck, Machinist for the rescue! (1)

Nota: Este guest post foi escrito por Elomar França.

Quem usa muito fixtures sabe que elas costumam dar bastante dor de cabeça: a separação entre os dados do teste (nas fixtures) e o teste em si fazem com que você tenha que absorver dois contextos pra entender o que está acontecendo, nomeação das fixtures geralmente não ajuda, e o pior de tudo é que seus testes ficam mais difíceis de manter e quebradiços, e muita coisa pode quebrar quando você altera uma fixture. Fixtures suck, and you were lied to.

Pra substituir fixtures e sanar esses problemas surgiram várias bibliotecas que te ajudam a criar, nos seus testes, modelos ActiveRecord com dados pré-definidos de forma simples e prática.

Entre as várias opções, se destacam Factory Girl e Machinist. Factory Girl é feita por ninguém menos que Thoughtbot. Machinist é mais simples e tem uma sintaxe mais elegante, e é sobre ela que eu vou falar um pouco.

[Continue lendo]

Como fazer um plugin – Parte 1 (5)

Bom, todo mundo fica dizendo que os plugins são a melhor parte de rails, que a comunidade participa muito, bla bla bla. Decidi então mostrar como fazer um plugin. Aliás, decidi aprender. Não tem muito material sobre isso, principalmente em português. Esse post foi escrito depois de ter lido:

Como é um assunto meio grande, decidi dividir em algumas partes. Nessa primeira, vou mostrar como estender uma classe de Ruby, criar um generator pra gerar migrations e adicionar um acts_as nos models, para adicionar métodos e outras coisas. Como exemplo, vou criar um plugin que adicionará algumas funcionalidades simples de loja à aplicação, chamado little_store. Para isso, ele precisa de um resource Product. Não vou utilizar testes, para que o post não fique muito grande. Talvez eu fale sobre testar plugins em outra oportunidade. É importante notar que algumas coisas que vou mostrar não são as melhores formas de se fazer, como estender BigDecimal pra criar um método que gere uma saída formatada em Real. Já existem helpers prontos que fazem isso. Os exemplos são só pra ilustrar o que estou dizendo, esse plugin não é útil :)

[Continue lendo]

Rails Rumble Applications (4)

Bom, eu decidi votar no Rails Rumble. Então, comecei a olhar algumas aplicações. Acho que nesse link tem todas ou a grande maioria. Não usei nenhuma, só dei uma olhada pra ver qual era a idéia. Mais tarde, quando abrir a votação, eu uso pra ver como são realmente. Essas foram as que eu mais gostei:

[Continue lendo]

Rails Summit – Segundo Dia (3)

No segundo dia, eu já cheguei na hora da palestra da Phusion. Muito legal a palestra, brincaram bastante com Star Wars, Scarlett Johansson e Megaman. O conteúdo da palestra foi muito interessante, ensinaram alguns conceitos de deployment, e como fazer sua aplicação escalar. Eu já sabia algo nesse sentido, na camada dos web servers, mas nada na camada do banco de dados, nem na parte de caching, então foi muito instrutiva. Depois eles falaram brevemente sobre uma aplicação que eles fizeram, chamada Yuumi. Tem uma integração com Twitter, SMS, um sistema de votação parecida com Digg. Eles também embutiram comentários num blog, com o plugin yuumius_comments.

Logo após, teve um Coffee Break e a palestra de Charles Nutter e Thomas Enebo, que eu não assisti. Fiquei uma hora no sofá, esperando a palestra de Jay Fields, sobre imaturidade dos testes. Basicamente, ele falou mal de todos os frameworks que existem pra fazer testes. Não disse que você não deve usar nenhum, mas que, obviamente, todos eles possuem desvantagens e você deve estar atento a isso. É que as pessoas estão muito empolgadas com testes, e achando que são perfeitos e não falham. Foi engraçado ver ele falando mal do RSpec com David Chelimsky assistindo.

Depois fui assitir a palestra de Manoel Lemos, que também teve a participação de Ronaldo Ferraz e Nando Vieira. Eles falaram sobre a história da WebCo e como ela está atualmente. Lemos contou a história do BlogBlogs e os problemas que teve por falta de conhecimento em deploy de rails. Mostrou como superou esses problemas e fez a empresa crescer. Ronaldo falou sobre search engines, e como eles criaram uma abstração para que possam utilizar qualquer solução, por meio de drivers. E Nando contou como eles aplicam Scrum na empresa. Gostei do que ouvi, e pude conhecer mais como a WebCo trabalha. Até então era só uma empresa com um monte de gente boa em Rails, e que diziam ser maravilhosa. Acho que agora também posso dizer que parece ser mesmo bom trabalhar lá :)

[Continue lendo]

Rails Summit – Primeiro Dia (1)

Logo quando cheguei no evento fiz o credenciamento e encontrei Elomar e William, da aprendendo-rails. Ficamos conversando, e depois fomos assistir a palestra de abertura, com Gilberto Mautner, fundador da Locaweb, e Akita. A parte de Mautner foi melhor do que eu esperava, ele contou como começou a empresa e as aventuras dele com ASP, e como a Locaweb está incentivando todos seus desenvolvedores a aprender Rails. Akita falou de como foi seu começo na comunidade Rails e sua vontade de fazer um evento como esse, que se concretizou depois que ele foi pra Locaweb.

Depois da abertura teve o primeiro Coffee Break, onde encontrei o restante dos membros da aprendendo-rails que estavam no evento. De lá, fui pra palestra de Chad Fowler. Tomei um susto com a aparência dele (se não me dissessem que era ele, nunca saberia), mais magro e com menos barba e cabelo. David Heinemeier Hansson teve algum problema e teve que apresentar antes, então colocaram a palestra de Chad no lugar da dele. Ele falou muita coisa que já tinha falado antes, talvez as perguntas não tenham ajudado. Ele disse que o Rails será thread-safe por causa de pressões externas (como JRuby), já que pra MRI não tem muita diferença. Esquivou-se da pergunta sobre a data de lançamento do Rails 2.2, e disse que o Core Team não liga pra ActiveRecord com conexões com bancos diferentes.

Logo depois aconteceu a palestra de Chad, que foi muito boa. A palestra girou em cima da perspectiva de que cada desenvolvedor é um produto. E, como um produto, o desenvolvedor tem que criar sua marca e se promover. E a melhor maneira de fazer isso é “sendo memorável”. Pra ilustrar, deu exemplos de produtos que mudaram seus mercados sendo memoráveis, como o iPod e o próprio Rails. Ele também mostrou, com dados estatísticos (inventados por ele), como existem mais oportunidades em Rails do que em Java ou PHP e que você ganhará muito dinheiro se for um expert, já que a imensa maioria dos programadores são apenas iniciantes. No geral, eu já tinha visto e lido o conteúdo da palestra dele muitas vezes, mas o jeito como ele apresenta que é sensacional, usando muito gráficos e vídeos, principalmente de video games.

[Continue lendo]