You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A API atual é confusa, fácil de trocar postmon.Endereco e postmon.endereco.
Uma opção é deixar só a classe, adicionando um kwarg lazy para identificar se é pra buscar já na inicialização da classe. Talvez fazer a busca automaticamente quando uma propriedade não carregada for buscada.
Outra opção é usar um classmethod para fazer o carregamento ao invés de uma função externa, mas aí complica o caso de uso mais comum:
>>>e=postmon.Endereco.buscar('11111-111')
A solução mais simples talvez seja só renomear as funções do módulo e continuar com os comportamentos atuais:
>>>e=postmon.buscar_endereco('11111-111')
Se alguém ler isso e quiser dar opinião, agradeço. Escrevi para documentar minha cabeça, não defini as mudanças. Qualquer quebra de compatibilidade só vai acontecer na versão 1.0.
Eu usei no PostmonGo o nome BuscarCep("cep") para tratar o mesmo comportamento da sua classe Endereco("cep").
Inicialmente eu tinha, também, colocado Endereco, mas ai achei estranho e fiz uma busca interna (eu comigo e eu mesmo, rsrs) e perguntei a algumas pessoas aleatórias: O que você faz quando precisa saber o endereço de um cep? e as respostas foram sempre as mesmas, Eu busco o cep no site :) Ai fiz a ligação e preferi usar o BuscarCep.
O BuscarCep do PostmonGo é o meu postmon.endereco. Inicialmente, eu tinha usado buscar_cep também, mas achei estranho essa função retornar um objeto Endereco.
Fiquei com medo de ficar tudo buscar_*, buscar_endereco, buscar_cidade, buscar_estado, mas talvez sejam os nomes corretos e evitem a confusão entre uma função e uma classe com mesmo nome.
Activity
iurisilvio commentedon Apr 27, 2014
No caso em que o usuário quer saber os erros do request, a solução continua sendo usar o
buscar().Fica difícil de tratar os erros no lazyload.
Deu erro ou o CEP não tem
logradouro? Não dá pra saber, então volta pro problema de ter que saber o resultado do carregamento.Outra opção é usar um classmethod para fazer o carregamento ao invés de uma função externa, mas aí complica o caso de uso mais comum:
A solução mais simples talvez seja só renomear as funções do módulo e continuar com os comportamentos atuais:
Se alguém ler isso e quiser dar opinião, agradeço. Escrevi para documentar minha cabeça, não defini as mudanças. Qualquer quebra de compatibilidade só vai acontecer na versão 1.0.
aleborba commentedon Apr 27, 2014
Eu usei no PostmonGo o nome
BuscarCep("cep")para tratar o mesmo comportamento da sua classeEndereco("cep").Inicialmente eu tinha, também, colocado Endereco, mas ai achei estranho e fiz uma busca interna (eu comigo e eu mesmo, rsrs) e perguntei a algumas pessoas aleatórias:
O que você faz quando precisa saber o endereço de um cep?e as respostas foram sempre as mesmas,Eu busco o cep no site:) Ai fiz a ligação e preferi usar o BuscarCep.Enfim, meus 2 cents :P
iurisilvio commentedon Apr 28, 2014
O
BuscarCepdo PostmonGo é o meupostmon.endereco. Inicialmente, eu tinha usadobuscar_ceptambém, mas achei estranho essa função retornar um objetoEndereco.Fiquei com medo de ficar tudo
buscar_*,buscar_endereco,buscar_cidade,buscar_estado, mas talvez sejam os nomes corretos e evitem a confusão entre uma função e uma classe com mesmo nome.