Curso de introdução ao Sinatra no RubyLearning

Posted December 21st, 2010 in Desenvolvimento by felipepavao

Eu sempre gostei do modelo de ensino a distância (EAD) e já tive algumas experiências, tanto aqui no Brasil quanto no exterior. No Brasil, eu fiz o curso da Egenial de Adobe Flex, pois ganhei um sorteio através do site RubyInside. Além de ótimo conteúdo, o curso utilizava o mais destacado produto da empresa, o TreinaTom. Fora do país, minhas únicas experiências aconteceram através do site RubyLearning, de Satish Talim.

Ruby Learning

Como já mencionado, RubyLearning é o site de EAD do Satish Talim, grande evangelista de Ruby. Através de seus cursos, muitos desenvolvedores do mundo inteiro podem melhorar seus conhecimentos de programação. Seus cursos são ministrados através da plataforma de ensino a distância open source Moodle e se caracterizam pelo material de ensino de ótima qualidade, fornecido em PDF. Além disso, grandes e interessantes discussões ocorrem nos fóruns da ferramenta. O meu primeiro curso foi um introdutório a linguagem Ruby. Confesso que após o curso me vi apaixonado pela linguagem e tive certeza que todo projeto em que pudesse escolher uma linguagem, escolheria Ruby, por sua naturalidade e beleza. O último curso que realizei foi um introdutório ao Sinatra.

O que é Sinatra ?

Dando nomes aos bois, Sinatra é uma DSL que possibilita criar aplicações web de maneira rápida e com o mínimo esforço possivel. Basta olhar o código de exemplo de sua página introdutória para entender:

 # myapp.rb
  require 'sinatra'
 
  get '/' do
    'Hello world!'
  end
 
  post '/' do
    'Posting something!'
  end

Como se pode ver, Sinatra permite que se codifique a aplicação orientado pela indicação de correspondência de URL, obedecendo aos verbos HTTP (GET, POST, PUT, DELETE).

Padrões e boas práticas

Sinatra não atende ao padrão MVC, muito embora você possa adaptar e programar dessa maneira. Sinatra deseja que a programação de uma aplicação web seja algo simples, mas não simplório. Por isso mesmo é fornecido ao desenvolvedor a ferramenta de testes Rack::Test, para que você possa usar de TDD durante o desenvolvimento de uma solução, entretanto você pode escolher uma ferramenta que preferir, como RSPEC, por exemplo.

Cases

Embora Sinatra possa ser considerada uma ferramenta simples, enganam-se aqueles que pensam que ela não pode suportar grandes sites. No Brasil por exemplo, a Globo.com construiu o site BaixaTudo com Sinatra. Acredito que já existam muitos outros sites também em Sinatra, então caso você conheça algum, compartilhe aqui no blog.

Conclusão

O curso em si me ofereceu uma grande visão do que pode ser feito com Sinatra. Percebi que ela é uma ótima opção quando não precisamos de todo o poderio que Ruby on Rails oferece. Podemos desenvolver aplicações sob demanda, utilizando as gems que achamos necessárias, chegando assim a um produto mais enxuto e customizado. E pessoalmente enxergo que Sinatra pode ser uma das melhores ferramentas de criação de Mockups para efetivamente demonstrar algum produto de forma rápida e objetiva antes de desenvolvê-lo mais profundamente.

OBS:  A pesquisa sobre problemas no escritório permanece no ar, então se você ainda não respondeu, responda agora e ajude o nobre amigo investindo mais 5 segundos neste artigo.

A função do Middleware para o Django

Posted February 17th, 2009 in Desenvolvimento by felipepavao

Apesar de preferir utilizar em meus projetos pessoais o Rails, tenho estudado e trabalhado muito com o Django. E uma das características mais legais que eu encontrei foi a questão dos Middlewares.

Em comparação com o Rails, seria como um filtro (:before_filter por exemplo) que executaria um comportamento antes da ação principal. O Middleware também tem essa função no Django: é executado antes do processamento da view (que no Rails seria o controller). Veja na imagem como é processado um request com a utilização de Middlewares:

1
2
3
4
5
6
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
)

Processamento de um request no Django

Este trecho de código fica declarado no arquivo de configurações do Django. Ele indica a ordem como os Middlewares serão executados. Essa abordagem nos traz a facilidade de incluir uma série de comportamentos antes de ter um método da view executado.