| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:29:39
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Eu realmente odeio o estilo de Rby para declarar dependências. Uma linguagem que lida com classes e módulos não deveria fazer "require" por arquivos e sim por alguma abstração consistente. Nos últimos projetos eu estava usando um hack para incluir tudo de uma vez só: Que todo mundo sabe que é horrível mas pelo menos sanava o problema. O ponto é que esse código não garante ordem e eu tive problemas com arquivos que são carregados antes de suas dependências internas. A solução por enquanto foi voltar pro 'padrão' de cada arquivo faz seu próprio require de arquivos. Estou pensando eme srever uma libzinha para tentar aplicar conceitos de pacotes e dependências, talvez uma DSL, mas anes gostaria de saber: 1) Alguém conhece algo parecido? 2) Como vocês gerenciam suas dependências hoje?
This message was edited 1 time. Last update was at 20/02/2008 09:30:01
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:33:39
|
nadele
Debugger
Membro desde: 14/02/2008 13:28:16
Mensagens: 62
Offline
|
Eu deixo uma classe por arquivo, então eu tenho que dar require para todos as classes que eu estou usando.
Isso é chato demais mesmo.
Ruby deveria ter um default classpath como Java ou seja, todas as classes que estão no mesmo directório ão visíveis.
Será que eu tenho que fazer um hackezinho para carregar todos os .rb que estão no mesmo diretório da minha classe?
This message was edited 1 time. Last update was at 20/02/2008 09:34:18
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:49:15
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Assim, ainda não escrevi uma aplicação não rails em Ruby, mas o autorequire do Rails já quebra um galhão, né não?
Acho que ele em si já poderia ser padronizado pra a linguagem em si.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:54:46
|
nadele
Debugger
Membro desde: 14/02/2008 13:28:16
Mensagens: 62
Offline
|
Em que lugar do meu código/classe devo colocar o código do autorequire, ou seja, que pega todos os .rb do diretório onde eu estou e dá um require?
Devo meter esse código fora do meu módulo, dentro do módulo ou dentro da classe ou dentro do initialize?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:56:24
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Não adianta muito porque Ruby não posui a convenção de nome do arquivo = nome da classe e ermite top-level (i.e. Object) methods.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 09:56:53
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Ele pega da sua pasta lib ou dos gems que você tiver na suam máquina pelo nome da classe que você estiver usando, não precisa nem dar require.
Não é uma maravilha, mas já faz a maior parte do trabalho.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 11:08:45
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Dizer quais classes você depende é meio ruim, o ideal é dizer quais módulos vc precisa. Para isso adotar a convensão que o nome do arquivo é o do módulo é razoavel e não mata ninguém.
Só toma cuidado para não inventar a cagada que é o sistema de módulos do python.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 11:10:54
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Modulos em Ruby sao apenas namespaces com meetodos atachados, nao vai adiantar muito.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 11:22:03
|
nadele
Debugger
Membro desde: 14/02/2008 13:28:16
Mensagens: 62
Offline
|
louds wrote:Dizer quais classes você depende é meio ruim, o ideal é dizer quais módulos vc precisa. Para isso adotar a convensão que o nome do arquivo é o do módulo é razoavel e não mata ninguém.
Mas você não pode fazer um include MyModule::Util sem antes fazer o require de todas os .rb desse módulo, certo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 11:30:49
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Teoricamente no múdulo você teria um arquivo com o nome do módulo que dá um require em todos os arquivos do mesmo (é assim que os gems funcionam).
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/02/2008 11:37:08
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Maurício Linhares wrote:Teoricamente no múdulo você teria um arquivo com o nome do módulo que dá um require em todos os arquivos do mesmo (é assim que os gems funcionam).
Genial!
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
|
|