Desenvolvimento WEB

Experiências na instalação do ambiente Ruby 1.8.7 on Rails 2.3.6

A configuração deste ambiente foi motivada por se tratar de um ambiente bem parecido com o de uma hospedagem de contratei esses dias no site5.com. Lá eles não tem a versão mais nova do Ruby (1.9.3), e não instalaram ainda por diversos motivos. A principal vantagem é que eles permitem a configuração do Rails 3. E esse era o meu interesse.

Este post tem por objetivo principal mostrar os passos necessários para instalar no Windows 7 32 bits o seguinte ambiente de desenvolvimento:

  • Ruby 1.8.7
  • Rails 2.3.6
  • Mysql Server Community 5.5.25

Comecei assim.

  1. Instalei o Ruby 1.8.7

  2. Instalei o DevKit

  3. Instalei o Rails

    • Abrir o prompt de comando (cmd)
    • Digitar o comando de instalação: gem install rails
  4. Instalei o MySql Community

  5. Instalei a libmysql.dll

    • Baixar o conector neste link: mysql-connector-c-noinstall-6.0.2-win32.zip
    • Extrair os arquivos para uma pasta qualquer: C:\MySqlConnector\ (Sugestão minha)
    • Copiar o arquivo C:\MySqlConnector\lib\libmysql.dll na pasta C:\Ruby187\bin\
  6. Criei o projeto

    • Abrir o prompt de comando
    • Criar a pasta: C:\sites\
    • Navergar até esta página com o seguinte comando: cd C:\sites\
    • Criar o projeto: rails new nome_do_seu_site -d mysql
    • Aguardar a finalização do processo
  7. Configurei os parâmetros de banco de dados

    • Usar as informações desta página para criar um usuário e garantir os privilégios dele
    • Abrir o arquivo: C:\sites\nome_do_seu_site\config\database.yml
    • Informar  usuário e senha
    • Configurar a porta de acesso (port: 3306)
    • Salvar e sair
  8. Configurei o arquivo hosts do Windows

    • Executar o notepad como administrador
    • Abrir o arquivo C:\Windows\System32\drivers\etc\hosts
    • Retirar o # (comentário) da linha: # 127.0.0.1    localhost
    • Salvar e sair
  9. Executar o seu projeto

    • Ser feliz! 😀

Principais problemas enfrentados

SyntaxError on the welcome to rails screen using Pow

  • Causa: Executei o comando (6) de criação da aplicação quando a versão do Ruby instalada era 1.9.3.
  • Solução: Desinstalar todas as versões do Ruby, instalar a versão correta, indicada na seção (1), e por fim, criar um novo projeto.

mysql2 gem compiled for wrong mysql client library

  • Causa: Usei a biblioteca libmysql.dll disponível no site Dll-files.com que está numa versão diferente da exigida pela gem mysql2 do Ruby.
  • Solução: Substitui o arquivo libmysql.dll pela versão oficial, disponível do site do MySql. Para fazer isso, basta executar o passo 5.

Can’t connect to MySQL server on ‘localhost’ (10061) (Mysql2::Error)

  • Causa: A aplicação não consegue encontrar o endereço localhost para se conectar ao banco de dados.
  • Solução: Editar o arquivo hosts e retorar o comentário da linha: # 127.0.0.1   localhost. Para fazer isso, basta executar o passo 8.

Mantis Bug Tracking

Logo do mantisUma das principais ferramentas que o testador deve ter conhecimento é a ferramenta de bug tracking. Este tipo de ferramenta tem como principal característica o gerenciamento dos defeitos (bugs) de um projeto. A quem use-a não só para este fim, mas com certeza este é o seu foco e é por isso que ela é conhecida.

Por que usar?

Usar uma ferramenta de bug tracking trará um grande ganho de produtividade para a equipe de desenvolvimento, pois os principais benefícios são:

  • Visão geral da quantidade de feitos apresentados por um produto de software
  • Centralizador de informações a respeito dos defeitos ocorridos e das medidas usadas para resolver os problemas
  • Histórico da evolução da qualidade dor produto desenvolvido
  • Comunicador de ocorrências, através do envio de e-mails

Estas são algumas informações básicas sobre os benefícios trazidos para quem usa uma ferramenta. Você mesmo deve estar pensando agora em vários outros benefícios e quem sabe até em limitações. Fique a vontade para comentar.

Características Gerais

O Mantis é um sistema de código aberto, sob a licença GNU General Public License (GPL), que foi desenvolvido na linguagem de programação PHP e utiliza o banco de dados MySQL ou PostgreSQL para armazenar as informações. Por ser um sistema WEB, ele roda em um servidor de aplicação e é acessado através de um navegador.

No momento da instalação você certamente irá querer facilidades, para que você consiga executar a ferramenta o mais rápido possível e comece a mostrar os resultados para a sua equipe. Pois bem, uma das maiores recomendações é usar o WAMP (Windows, Apache, MySQL e PHP) ou LAMP ( Linux, Apache, MySQL e PHP).

Customização

Este com certeza é um bom motivo pelo qual um gerente de projetos pode escolher esta ferramenta. A sua licença e o código aberto permitem que você realize customizações para diversos fins. Acredito que alguns deles sejam a produtividade, a comunicação e a extração de informações diferenciadas. Posso citar como exemplo, o desenvolvimento de plugins que:

  • Simulam online o task board do scrum
  • Se integram ao Twitter ou outros sistemas de comunicação interna
  • Exportam relatórios para pdf, xls e outros formatos
  • Alteram o layout e as cores da aplicação

Leia mais sobre os assunto

Um bom lugar para começar é através da página principal da ferramenta. Nela você encontrará as informações necessárias e demonstrações de uso. Além disso, este site também mostra um panorama geral da ferramenta e estes aqui:

  1. Plugins para o Mantis – Parte 1
  2. Instalar o bug tracker Mantis

mostram como instalar. Pronto, agora é mãos à obra.

Code Smells

É interessante como nunca me ensinaram isso na faculdade. Quando uma pessoa aprende a desenvolver sistemas, também deveria aprender como não desenvolver. Principalmente isto. Assim, você pode focar na solução que deseja desenvolver e saberá se está fazendo algo muito errado. Saberá também quais as melhores práticas de desenvolvimento e, melhor ainda, poderá deixar seu código mais claro, conciso e flexível.
Sabe aquele código que você olha e sente um mau cheiro? Alguns pensam, outros preferem falar em voz baixa: – “Nossa, é um perigo mexer aqui”. Ou pior do que isso, você lê aquele comentário no início da classe: “Só Jesus entende o código abaixo, melhor você cair fora”. Pronto, você agora sente a prensença de um code smell.
Um code smell é uma parte do código fonte do seu programa que poderá causar algum problema. Na literatura existem vários padrões já identificados e difundidos. A partir destes padrões você pode avaliar seu código e verificar se ele está muito mau-cheiroso.
A Industrial Logic disponibilizou uma lista dos padrões de code smells mais conhecidos e das possíveis técnicas de refatoração que você pode utilizar para eliminar estes problemas. Acredito ser uma lista muito boa para consultar naquele momento em que queremos alterar o código fonte e tentar melhorá-lo.

Code smells mais comuns

Alguns autores preferem dividir a lista de code smells comuns em duas partes, os que estão em uma classe e os que envolvem mais de uma classe. Mas como o objetivo do post é ser introdutório, apresentarei uma lista única. São eles:

  • Comentários
  • Código duplicado
  • Método longo
  • Classe muito grande
  • Muitos parâmetros
  • Recurso invejoso
  • Intimidade inaproriada
  • Herança recusada
  • Classe preguiçosa
  • Complexidade inventada
  • Identificadores excessivamente longos
  • Identificadores excessivamente curtos
  • Uso excessivo de literais

Agora tenha muito cuidado quando decidir alterar uma parte do seu sistema que esteja “funcionando”. Tenha testes que garantam o comportamento do seu sistema, pois a chance de você inserir outros erros, ao tentar eliminar os maus cheiros, é grande! Muita calma nessa hora. Refatorações devem ser controladas, objetivas e pequenas para que tenham os resultados desejados.

E melhor do que ficar lendo sobre code smells aqui, é procurar mais informações e ler um pouco mais sobre o assunto. Comece por esta lista de links:

  1. Code smells by Wikipedia
  2. Code smells by Jeff Atwood in Coding Horror
  3. Code smells to refactoring, quick reference by Industrical Logic
  4. Badsmells to refactoring by java.net
  5. Code smells e refactoring by Carlos Duarte

Diferenças entre Gems e RubyGems

O Ruby também tem algo que o torna muito interessante. Este algo se chama RubyGems. Na verdade este é um módulo do Ruby que permite acessar um repositório de bibliotecas para o Ruby, as famosas Gems. Cuidado! Não confunda o RubyGems com as Gems.

  • RubyGems: Módulo para acesso ao repositório de bibliotecas através de comandos no terminal/prompt
  • Gems: Bibliotecas escritas em Ruby e armazenadas no servidor, que podem ser acessadas através dos comandos do RubyGems.

Para quem teve a oportunidades de conhecer o mecanismo de instalação de aplicativos do linux, especialmente no Ubuntu, sabe como é prático. O RubyGems possui um mecanismo muito parecido com o famoso apt-get do Linux. Em outros post detalharei melhor o funcionamento destes comandos.

Link para uma nova página com Ruby on Rails

Para quem precisar submeter o resultado de um formulário em uma nova aba ou janela, basta construir um form com o parametro :target => ‘_blank’

exemplo:

<% form_tag({:controller => 'isentos', :action => 'pesquisa'}, :target => '_blank') do -%>
<%= text_field_tag :string_busca %>
<%= submit_tag 'pesquisar' %>
<% end -%>

Também funciona para links:

link_to 'Cool site', "http://chennairails.blogspot.com", :target => '_blank'

Ruby on Rails instalado e configurado

Excelente tutorial do meu amigo Nielson sobre como instalar configurar o Ruby on Rails no Ubuntu. Além disso, ele configura conexão com bancos de dados SQLite, MySql, Oracle e ImageMagick. Sendo este último, excelente para usar recursos de captcha e demais operações com imagem na sua aplicação.

Confira da Íntegra!

Firefox Otimizado para Netbooks

Existem vários recursos disponíveis para o navegador web Firefox, eles são os famosos complementos que deixam seu navegador personalizado e útil. O que mais me impressionou nesses dias foi um pacote de complementos selecionados especialmente para netbooks, é realmente show.

Para enriquecer seus conhecimentos visite a página Netbook Optimized do firefox.