VidaGeek.net

Linux, Open-source, Programação e Produtividade

Archive for the ‘Ruby’ Category

Linguagens de programação

Índice de Linguagens de programação

  1. Linguagens de programação
  2. Linguagens de programação - Smalltalk
  3. Linguagens de programação - C++

Linguagens de programaçãoUma pergunta bastante relevante que surge na cabeça de quase todos os programadores certa hora da vida é: por que existem tantas linguagens de programação? Outra bastante comum é: qual delas é melhor? Alguém poderia responder: existem tantas porque uma vem para corrigir as falhas das outras, e a melhor é a que tem menos falhas. Certo? Errado.
(more…)

Posts Relacionados:

  • Lambda the Ultimate
  • Linguagens de programação - C++
  • CodeIDE
  • VidaGeek.net agora também é Fórum!
  • Linguagens de programação - Smalltalk
  • Um dia na vida de um programador azarado
  • Construção de interfaces com o Glade
  • Assine nosso RSS feed!

  • 0 Comments
  • Filed under: C, IA, Java, Opiniao, Programacao, Ruby
  • Ao entrar na sala John Maddog Hall, uma das maiores desse FISL, 5 minutos antes do início da palestra, eu esperava muitas coisas, mas certamente não esperava encontrar uma sala de palestras completamente lotada, com até mesmo pessoas de pé para assistir o Fabrício falar.

    A motivação dessa palestra é algo também interessante: o palestrante sente que Rails acabou sendo o foco da trilha de Ruby e acha que a linguagem em si merecia mais destaque, embora mesmo sua palestra fale de Rails. A palestra ensinou Ruby básico, um pouco de rails e explicou que Ruby é baseado em Convention over configuration e usa MVC naturalmente - tudo isso demonstrado na construção de uma pequena aplicação funcional.

    Passando por a criação de uma página com formulário simples e padrão de Ruby on Rails e seguindo incrementalmente e de forma bastante natural - fazendo alterações à medida que erros foram aparecendo e resolvendo-os. Não sei se propositalmente ou acidentalmente, mas os incontáveis erros que apareceram durante a palestra foram até instrutivos, já que o palestrante mostrou o que causava cada um deles e como eram resolvidos.

    De passo em passo, de erro em erro e passando, eventualmente, pelo scaffold uma aplicação simples de perguntas com usuários. Apenas, uma pena, não deu tempo de terminar essa aplicação. A versão completa dessa aplicação pode ser vista clicando aqui: Aplicação de Perguntas.

    Posts Relacionados:

  • Rails Vs Java e PHP
  • Inscrição de Caravanas para o FISL 8
  • FISL 8.0
  • TDD para Ruby - Fibonacci
  • Séries
  • Autores
  • Google em Inglês
  • Assine nosso RSS feed!

    Encontrei um artigo muito bom sobre construção de interfaces com o Glade neste site. O autor ensina, passo-a-passo, como instalar e utilizar essa ferramenta tão poderosa, concluindo com exemplos em diversas linguagens. O artigo ainda está em construção, mas já está bem completo.

    Para quem não conhece, o Glade é um utilitário para desenvolvimento de interfaces utilizando a biblioteca GTK+. O papel do Glade é permitir ao programador projetar a interface de um programa visualmente, em vez de programá-la, o que pode ser tedioso e cansativo (exceto no Visual Basic e similares, em que tudo já está quase pronto nesse aspecto).

    Como o autor do artigo cita, a biblioteca GTK+ está disponível para muitas linguagens, e o arquivo com a descrição da sua interface, gerado pelo Glade, pode ser utilizado para carregá-la dinamicamente, ou seja, você pode mudar a hora que quiser a linguagem do seu programa que não precisará redesenhar a interface, o que torna o Glade muito versátil.

    Veja também o site oficial: http://glade.gnome.org/

    Posts Relacionados:

  • INC - Colisão de Nomes de Métodos
  • Falando em Java: Overview
  • Falando em Java: Interfaces ricas na Web com Ajax
  • Desenvolvimento de jogos com o Morphic
  • Assine nosso RSS feed!

    TDD para Ruby - Fibonacci

    Ruby
    No livro Test-Driven Development By Example, Kent Beck mostra em um pequeno apêndice como criar a função que calcula o número de Fibonnaci de forma recursiva através do Test-Driven Development(TDD, desenvolvimento direcionado por testes). Baseando-me neste exemplo, criei uma versão para Ruby.

    Primeiro, gostariamos que fib(0) = 0. Para isso começamos a escrever o nosso teste:

    Rodando o teste temos, como esperado, um erro já que não criamos a classe Fibonacci. Devemos fazer agora o mínimo para que os testes passem. Isso inclui em adicionar a classe Fibonnaci e criar uma implementação do método self.fib.

    Rodando o teste descobrimos que está tudo bem. Podemos agora testar se fib(1) = 1, vamos modificar o teste anterior para incluir esta condição.:

    Que obviamente não passará. Podemos mudar o self.fib para a seguinte versão:

    Os testes estão novamente passando, mas existe uma repetição entre eles, algo ruim de se fazer (use a metodologia DRY - Don’t Repeat Yourself). Vamos então refatorar o método test_fib:

    Temos agora os casos de teste compostos de pares (n,fib(n)). Podemos agora adicionar o par (2,1) e rodar os testes para ver que o método continua funcionando. Vamos então adicionar mais um teste, o par (3,2), portanto temos cases = [[0,0],[1,1],[2,1],[3,2]]. O teste não passa, podemos modificar o código rapidamente para resolver este problema.

    Temos agora os testes passando e podemos generalizar para obter o resultado esperado. Ao invés de retornar 2, podemos retornar fib(n-1) + fib(n-2) (o passo completo seria 2 = 1 + 1 = fib(n-1) + 1 = fib(n-1) + fib(n-2) ). Abaixo está o código final:

    Posts Relacionados:

  • Rails Vs Java e PHP
  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • FISL 9.0: Coding Dojo
  • Autores
  • Dia C - Usando testes para o desenvolvimento
  • Falando em Java: Interfaces ricas na Web com Ajax
  • Guia Linux - Parte III: Programação
  • Assine nosso RSS feed!

  • 4 Comments
  • Filed under: Ruby
  • Publicidade