#desenvolvimento, #prosa

Oitavo #DevDojo – BH


Olá pessoal.

No 2° Café Ágil em BH foi iniciado o #horaextrabh, ainda não tive a oportunidade de comparecer, mas tenho acompanhado a lista do grupo. E foi lá que fiquei sabendo dos dojos que a DevIsland tem organizado.

O dojo irá acontecer no dia 28/05 de 9h e meia até às 12h, na UNA do Barro Preto (Rua Goitacazes, 1159, bairro Barro Preto). O tema será um dos quatros disponibilizados no formulário de inscrição.

E como prometi estou divulgando os eventos de desenvolvimento para os leitores.

Divulguem e compareçam.

Até lá 😉

Padrão
#configuração

Projeto RoR nas nuvens – Parte 2


Olá pessoal.

No post anterior fiz uma breve introdução sobre o projeto que estou desenvolvendo. E como prometido iremos instalar e configurar o ambiente para desenvolver a aplicação RoR.

Para começar baixe o Ruby 1.9.2 aqui, copie para o diretório /opt e extraia os arquivos:

$ sudo tar -xvf ruby-1.9.2-p180.tar.gz

Entre na pasta do Ruby:

$ cd ruby-1.9.2-p180

Configure e instale:

$ sudo ./configure
$ sudo make
$ sudo make install

Pronto! Ruby instalado vamos pro próximo.

Agora é preciso instalar o zlib. Para isso baixe este arquivo, copie para opt e extraia:

$ sudo tar -xvf zlib-1.2.5.tar.gz

Entre na pasta do zlib:

$ cd zlib-1.2.5

Em meus testes não consegui instalar o zlib utilizando sudo, então para instalar foi necessário fazê-lo como root.


$ ./configure; make test $ make install

Agora vamos instalar o zlib que veio junto com o Ruby. Entre na pasta do zlib:

$ cd ruby-1.9.2-p180/ext/zlib

Instale o zlib:

$ ruby extconf.rb
$ make && make install

Feito isso vamos para a instalação do Rails.

$ sudo gem install rails

Para testar crie uma aplicação Rails com o comando:

$ rails new app

Algo semelhante deverá ser exibido no terminal:

create
create  README
create  Rakefile
...

Ainda falta instalar o sqlite3

$ sudo apt-get install libsqlite3-dev

$ sudo gem install sqlite3

Para testar acesse o diretório onde sua aplicação Rails foi criada e inicie o servidor WEBrick

$ rails s

Acesse http://localhost:3000

Se aparecer a página “Ruby on Rails: Welcome aboard” significa que agora seu Ubuntu está pronto para que você possa desenvolver aplicações RoR, senão poste os problemas ai para tentarmos resolver.

No próximo post iremos configurar o Git e o Github.

Até lá 😉

Padrão
#prosa

Projeto RoR nas nuvens – Parte 1


Olá pessoal.

Já tem um bom tempo que venho tentando me aprofundar nos estudos de Ruby on Rails. Neste intuito utilizei os livros: Use a cabeça: Rails e Desenvolvendo Aplicações Web com Ruby on Rails 2.3 e PostgreSQL. Confesso que não cheguei a finalizá-los, porque apesar deles serem absurdamente práticos senti a necessidade de começar um projeto “de verdade”.

Sendo assim meu propósito é desenvolver um projeto real e ir documentando através dos posts.

Pretendo utilizar neste projeto as tecnologias atuais e free:

  • Ubuntu Maverick
  • Ruby
  • Rails
  • jQuery
  • CSS3
  • HTML5
  • PostgreSQL
  • Git
  • Github
  • Heroku

Também pretendo utilizar algumas metodologias como TDD.

Por enquanto é isso, o próximo post será sobre configuração do Ruby on Rails. Já postei sobre a configuração do RoR aqui e aqui mas ocorreram algumas mudanças nestas últimas versões.

Até la 😉

Padrão
#desenvolvimento

Ruby – Conhecendo a linguagem


Olá leitores.

Após um tempo sem posts resolvi postar os resumos que tenho feito durante os estudos de Ruby. Ainda não tem Ruby instalado? Veja como instalar aqui.

Recapitulando: Ruby é uma linguagem de programação orientada a objetos com tipagem dinâmica e forte. Foi projetada para uma codificação rápida e para programação em grande escala.

Por tipagem dinâmica entendemos que não é necessário informar o tipo de dados de uma variável na hora da declaração. O tipo pode ser escolhido na compilação ou na execução do programa.

Em Ruby tudo é objeto, até os tipos primitivos. Entretanto as variáveis não são objetos, mas sim referência para eles.

Um pouco de Orientação à Objetos e particularidades de Ruby:

Classe é uma entidade que une características comuns, composta por métodos e atributos.
Nomenclatura:
class – inicia
end – finaliza

class Pessoa

   # Corpo da classe

end

Objeto é a instância de uma classe que possui uma identidade única, estado e comportamento.

Método é a sequência de expressões, separadas por blocos, contida em uma classe.

Nomenclatura:
def – inicia
end – finaliza

def cadastrar_pessoa

   # Corpo do método

end

Observação:
Os nomes dos métodos que retornam true ou false são terminados por ? (interrogação). E os métodos que modificam seu objeto são terminados em ! (exclamação).

Pacote é um conjunto de classes interrelacionadas.

Encapsulamento é uma forma de impedir o acesso à alguns campos e métodos através da ocultação dos mesmos.

Herança é um meio de permitir que os campos e métodos de uma classe-pai, sejam herdados e utilizados na classe-filha.
Nomenclatura:
< (herda de)
nome da classe filha < nome da classe pai

class Carro < Veiculo

   # Corpo da classe

end

Polimorfismo é uma maneira de reescrever os métodos de formas distintas nas classes-filhas.

Visibilidade é o acesso à uma classe, atributo, constante ou método.

Modificadores de acesso:

public – acessível a todos.
protected – acessível à própria classe e às classes filhas.
private – acessível somente à própria classe.

Abstração é a concentração nos aspectos essenciais de um contexto, ignorando os menos importantes.

Constante é uma variável com mesmo nome durante toda a execução do programa. Em Ruby a constante é mutável.

O escopo da variável é definido pela nomenclatura.

Variável local é definida dentro de um método, só existe dentro do método.
Nomenclatura: variavel

Variável global é acessível em qualquer parte do programa.
Nomenclatura: $variavel

Variável de instância implementa atributos da classe representando o estado do objeto.
Nomenclatura: @variavel

Variável de classe ou estática possuem informações referentes à própria classe. Variáveis de classe são variáveis utilizada por vários objetos.
Nomenclatura: @@variavel

Variáveis de nomes compostos são separadas por underscore (_).

As variáveis de instâncias e globais são inicializadas implicitamente. Porém as variáveis locais e de classes precisam ser inicializadas antes da utilização.

Os blocos de uma linha são limitados por {chaves} e os que possuem mais de uma linha são iniciados com DO e finalizados com END.


{puts "Bloco de uma linha"}

do

   puts "Bloco com mais de uma linha."
   puts "Outra linha aqui."

end

Para comentar uma linha utiliza-se # (tralha) e para comentar um bloco utiliza-se =begin para iniciar e =end para finalizar.


# Comentário de uma linha

=begin

   puts "Comentário de mais de uma linha."
   puts "Mais uma linha."

=end

Ruby não precisa de terminador de linha. A quebra de linha é tida como um delimitador.

Operador de escopo :: é utilizado para acessar membros internos de uma classe ou para acessar uma constante.

Nil é um objeto da classe NilClass que indica um valor nulo.

Por enquanto é isso, pessoal. Espero voltar em breve com um pouco mais de Ruby 😉

Padrão
#configuração, #desenvolvimento

Criando um projeto com Ruby on Rails


Como prometi anteriormente iremos criar nosso primeiro projeto utilizando Ruby on Rails \o/

Inicialmente vamos atualizar nosso RubyGem, e faça isso constantemente:

# gem update --system

Agora crie um diretório para armazenar seus projetos e acesse-o:

$ mkdir projetos
$ cd projetos

E para criar um projeto RoR:

$ rails --database prostgresql primeiroprojeto

Este comando cria um novo projeto em RoR utilizando o PostgreSQL como banco de dados. A estrutura criada pelo Rails é padrão e deve ser mantida para que possa ser reconhecido como um projeto Rails. Serão criadas as seguintes pastas:

app – para os códigos-fonte.

config – para os arquivos de configuração.

db – para os scripts do banco de dados.

lib – para as bibliotecas do Rails.

log – para os logs de erro.

public – para as imagens, CSS, JavaScript.

script – para os scripts de gerenciamento.

test – para os testes da aplicação.

tmp – para os arquivos temporários.

vendor – para outras bibliotecas.

Com o projeto criado podemos configurar a conexão com o banco de dados. Para isso abra o arquivo database.yml  que se encontra no diretório config e altere o username e o password para o usuário e a senha criado no seu PostgreSQL. Altere para os 3 ambientes do RoR (desenvolvimento, teste e produção):

development:
   adapter: postgresql
   encoding: unicode
   database: primeiroprojeto_development
   username: usuario
   password: senha

test:
   adapter: postgresql
   encoding: unicode
   database: primeiroprojeto_test
   username: usuario
   password: senha

production:
   adapter: postgresql
   encoding: unicode
   database: primeiroprojeto_production
   username: usuario
   password: senha

No terminal, logue como o usuário do banco para poder criar o banco de dados para o projeto:

# su - usuarioDoBanco

$ rake db:create

Agora vamos criar o controller da aplicação. Para isso acesse o diretório do projeto e gere um controller denominado controle:

$ ruby script/generate controller controle

Acesse o diretório ../app/controllers/ para adicionar um método no controle criado.

Abra o arquivo controle_controller.rb e adicione o método que define um valor para a variável de instância:

class ControleController < ApplicationController
   def index
      @helloworld = "Hello world!!!"
   end
end

Para finalizar o projeto crie um arquivo chamado index.erb no diretório ../app/view/controle e adicione a linha abaixo para imprimir a variável de instância definida no controle:

<%= @helloworld %>

Projeto criado e configurado, agora só falta rodar. Inicie o servidor WEBrick que utiliza como padrão a porta 3000:

$ ruby script/server

Acesse seu projeto via browser http://localhost:3000/controle

Agora é só começar a brincar.

Até breve 😉

Padrão
#configuração

Configurando o Ruby on Rails


No post anterior configuramos o ambiente para conhecermos o Ruby. Agora vamos configurá-lo para desbravarmos o Rails.

Instale o PostgreSQL:


zypper in postgresql

zypper in postgresql-server

Aqui tem um passo-a-passo das configurações iniciais do PostgreSQL no openSUSE.

Através de uma breve pesquisa com meus colegas, detectei que o uso de IDE para desenvolvimento com RoR não é muito usual, mas um bom editor de texto é fundamental.

Optei por utilizar o Kate pois ele disponibiliza uma listagem de diretórios e um terminal de forma integrada à área de edição.

E para instalar o Kate:


zypper install kate

Vamos então adicionar o pacote do Rails:


gem install rails --include-dependencies

E a interface de acesso ao PostgreSQL:


gem install postgres-pr --include-dependencies

Ambiente pronto!

No próximo post criaremos nosso primeiro projeto RoR \o/

Até breve 😉

Padrão
#configuração

Desbravando o Ruby


Há tempos que tenho interesse em conhecer Ruby e mais especificamente Rails. E estou tendo esta oportunidade agora.

Fui agraciada ao ganhar na promoção do Ruby Inside Brasil o livro Desenvolvendo Aplicações Web com Ruby on Rails e PostgreSQL, do professor Ricardo Roberto Leme. Utilizarei o livro como guia de estudo e compatilharei meu aprendizado via posts 😉

Em síntese:

Ruby é uma linguagem de script orientada à objetos e altamente dinâmica. Saiba mais.

Rails é um  framework web desenvolvido com Ruby e que utiliza o design pattern Model-View-Controller.

RubyGems é um gerenciador de pacotes do Ruby.

IRB é um shell interativo do Ruby.

Neste post iremos preparar o ambiente de desenvolvimento Ruby no Linux, utilizando a distribuição openSUSE.

Então vamos lá.  Eu utilizei o terminal para realizar todas as  operações.

Instale o interpretador da linguaguem Ruby:

zypper install ruby

Instale o RubyGems:


zypper install rubygems

Vamos testar o Ruby.

Para entrar no shell do Ruby:


irb

Nosso primeiro “programa”:


puts "Hello world!!!"

E para sair do shell do Ruby:


exit

Os próximos pacotes serão instalados através do RubyGems.


gem install rake --include-dependencies

gem install rdoc --include-dependencies

gem install activesupport --include-dependencies

gem install activerecord --include-dependencies

gem install actionpack --include-dependencies

gem install actionmailer --include-dependencies

gem install actionwebservice --include-dependencies

gem install activeresource --include-dependencies

Pronto! Agora podemos brincar com Ruby antes de desbravar o Rails 😉

Até lá.

Padrão