Archive for January, 2010

Campanha #SouDev Twitter

Posted in Opinião, Programação on January 29th, 2010 by Edipo L Federle – 5 Comments

Ontem chegou até min no twitter via @felipedeveloper uma mensagem sobre uma campanha #souDev no twitter, realmente não sei quem começou isso(se o fundador ler esse post por favor comente), essa campanha tem como simples objetivo fazer com que os desenvolvedores se “achem” no twitter e com isso fazer com que nossa timeline se torne algo melhor, onde possamos conhecer pessoas que trabalham com tecnologia, trocar informações e tudo mais.

Esse post tem como objetivo que o pessoal que ta participando do #SouDev deixe seu comentário para que eu possa ir adicionando aqui no post e com isso poder compilar opiniões de todos sobre a campanha, e até discutir formas de ampliar ela, quem sabe até um blog :D

Então pessoas, o que vocês pensam do #SouDev ?

Ruby Série #5 – Métodos Parte 2

Posted in Ruby/Rails on January 22nd, 2010 by Edipo L Federle – Be the first to comment

Warning: Missing argument 1 for GeSHi::GeSHi(), called in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/codecolorer/codecolorer-core.php on line 137 and defined in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 432

Warning: Missing argument 2 for GeSHi::GeSHi(), called in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/codecolorer/codecolorer-core.php on line 137 and defined in /home/storage/f/73/ab/bitside1/public_html/edipo_blog/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 432

Chamando um método de um objeto

Falando nos paradigmas de Orientação a Objetos os objetos dos quais fizemos chamadas de métodos são denominados
receptores, onde métodos são como mensagens que enviamos para os objetos.

No Ruby temos a palavra chave self que dentro do corpo de um método faz referencia ao objeto de onde ele foi chamado.
Execute a seguinte classe(no exemplo no IRB):

1
2
3
4
5
6
7
class Teste
   def foo
      puts self.class
   end
end

t = Teste.new

O exemplo acima irá imprimir Teste que é o nome da nossa clase. Nos outros posts ainda não foi apresentado como seria a criação de métodos para classes de objetos( Veremos isso em outros posts) , mas provavelmente você já fez alguma chamada de método em objetos, assim:

1
"minha String".length

Sim em Ruby tudo realmente tudo é um Objeto, veja:

1
2
3
4
"minha".is_a? Object => true
1.is_a?Object =>true

:a.is_a? Object => true

No Ruby assim como em grande parte das linguagem OO usamos o ponto(.) para separar o objeto do método.

Métodos e Parênteses

No Ruby podemos não usar os parênteses na maioria dos casos em métodos de invocação. Mas tome cuidado com isso, em alguns casos mais complexos isso pode causam ambiguidades sintáticas. Vamos far uma olhada nisso:

Provavlemente você ja fez isso:

1
puts "Hello"

ao invés de:

1
puts ("Hello")

Agora considere o seguinte código:

1
2
3
s = "Minha String"
"Minha String"
sz = s.length

Bom vimos algo assim antes, você pode estar pensando que length e um prioridade ou campo ou até um variável de objeto.
Os objetos são totalmente encapsulados, então a única forma que temos de usar eles é através da invocação dos seus métodos, que foi o que fizemos nos exemplos acima. Neste caso também omitimos os parênteses, pois esse método não espera nenhum argumento, mas poderiamos perfeitamente
usar assim: sz = s.length().

Você também pode omitir os patênteses tambem em uma lista de parâmetros em métodos, por exemplo:

1
2
3
def meu_metodo x,y,z
   x + y + z
end

O que de fato não sei se é melhor que com os parênteses, acho melhor não usar quando temos um argumento apenas.

Bom pessoal é isso por hoje, logo daremos continuação aos posts sobre Ruby.

Abraço a todos

[Tradução] – Asciicasts – 194: MongoDB e MongoMapper

Posted in Ruby/Rails, Traduções on January 10th, 2010 by Edipo L Federle – Be the first to comment

Olá pessoas, hoje o Eifion Bedford colocou no ar a tradução para o português que fiz do post sobre MongoDB.

Como essa foi minha primeira tradução certamente ela tem erros, mas acredito que está dado para entender legal, espero receber  algum feedback em relação a tradução.

Aqui esta o link do episodio: http://pt.asciicasts.com/episodes/194-mongodb-e-mongomapper