Postagens

6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr...

Busca de CEP com o Lazarus - Parte 5 - Considerações finais

Imagem
Voltando com tudo de um feriado muito trabalhado e 4 dias sem blogar nada, vamos começar o dia com a parte 5 do tutorial de consulta de CEP com Lazarus. Como o leitor deve ter percebido nas postagens anteriores, colocamos a chave obtida no site  http://www.buscarcep.com.br diretamente no código fonte, rigidamente. Isso é muito feio, não devemos fazer esse tipo de coisa nunca, pois exigiria uma recompilação desnecessária cada vez que fosse necessária a alteração da chave. Peço também que os leitores não utilizem a chave utilizada nesse blog por motivos óbvios: a chave tem limite de consultas. As primeiras coisas que vamos mudar é a classe TLazCep, que terá agora a propriedade Chave e as propriedades para trabalhar com proxy: ProxyHost, ProxyPort, ProxyLogin, ProxyPassword. Se você não usa proxy para se conectar basta deixar os campos relativos a proxy em branco. A interface da nova classe ficará assim: TLazCep = class private FXML: UTF8String...

Botão TweetMeme

O penduricalho de hoje da série Site aos Pedaços é o botão TweetMeme - Retweet Button. Para ativa-lo você deve entrar no site  http://help.tweetmeme.com/  se cadastrar, se logar e ir para a opção Retweet Button lá embaixo. Você cairá em uma página com o código para colocar em uma página html estática ou o código para o wordpress. Para o blogspot há alguns passos a mais. Vá na opção Design --> editar HTML como já vimos antes e procure pelo seguinte trecho de código: <b:includable id='post' var='post'> <div class='post hentry'> E cole o seguinte código: <!-- twwetme begin -->...

Acessando Portas

Fazendo pós graduação na Fatec conheci professores que são VERDADEIROS professores. São NINJAS, JEDIS e por aí vai. A maioria deles tem um curriculum invejável: duas formações, um mestrado, dois doutorados, pós doutorado, certificações internacionais, experiência de vida. Fiquei intrigado, me perguntando porque esses caras não são milhonários com tanto conhecimento, e porque vêm dar aulas na Fatec. O Professor Gutenberg me aconselhou a ler o poema "Portas" de Içami Tiba. Ei-lo: Portas Se você abre uma porta, você pode ou não entrar em uma nova sala. Você pode não entrar e ficar observando a vida. Mas se você vence a dúvida, o temor, e entra, dá um grande passo: nesta sala vive-se! Mas, também, tem um preço... São inúmeras outras portas que você descobre. Às vezes curte-se mil e uma. O grande segredo é saber quando e qual porta deve ser aberta. A vida não é rigorosa, ela propicia erros e acertos. Os erros podem ser transformados em acertos quando com eles se aprend...

Busca de CEP com o Lazarus - Parte 4 - Testando e Usando o TLazCep

Imagem
Antes de começar a fazer as alterações e melhorias prometidas na parte 3 , vamos mostrar como deve ser o uso da biblioteca TLazCep. Adicione um botão e dois memos a form que estivemos usando até agora. Lembrando: essa form já tem 3 edits (edCep, edChave e edUrl) e agora ficará com 4 memos (mRequest, mResponse, mXML e mEndereco) Os memos mRequest e mResponse são de nossos exemplos anteriores e não serão usados por enquanto. Só quando falarmos de proxy. Deixe o formulário como a imagem abaixo, O LFM do formulário ficará assim: object Form1: TForm1 Left = 252 Height = 314 Top = 281 Width = 718 Caption = 'Form1' ClientHeight = 314 ClientWidth = 718 LCLVersion = '0.9.28.2' object Label1: TLabel Left = 8 Height = 14 Top = 0 Width = 20 Caption = 'CEP' ParentColor = False end object Label2: TLabel Left = 96 Height = 14 Top = 0 Width = 32 Caption = 'Chave' ParentColor = False end ...

Botão Add This para adicionar seu post em qualquer rede

Imagem
No Site aos Pedaços de hoje vamos falar sobre o botão Add This, que você pode colocar no seu blog ou site para que as pessoas possam repassar adiante seu post. O Add This é uma ferramenta legal porque, além de integração nativa com o blogger, te dando o código pronto sem você ter que quebrar muito a cabeça, ele te dá estatísticas por e-mail, dizendo quem clicou  no que e repassou pra onde. Para iniciar acesse o site  http://www.addthis.com/  e escolha seu tipo de site, blog ou CMS, escolha o estilo do botão e integre com uma conta do google analytics se você possuir. Não falaremos sobre o  google analytics nesse post, talvez futuramente. O código para colocar o  botão no blog é este: <!-- AddThis Button BEGIN --> <div><a expr:addthis...

Sugestões para o google groups

Seria legal se pudéssemos criar pastas no google groups, ou que pelo menos fosse integrado com o google docs. Outra coisa legal seria um arquivo enviado por e-mail para o grupo ir direto para a seção de arquivos. Coloquei a sugestão no grupo dedicado a isso, vamos ver se rola. I'd like to suggest folder/directory creation in google groups. It's possible to upload files, but it's impossible to create folders or direcotories to  organize these files. Other good improve would be to automatically put in group files those files sent to group by e-mail. Another suggestion are integration between google docs and google groups. Outra coisa que falta é filtrar os buzz. Os buzz são legais, mas receber todos eles na sua caixa de entrada pelo pop3 não é legal. 

Busca de CEP com o Lazarus - Parte 3 - XML Document

Na postagem anterior aprendemos como usar a classe THTTPSend da biblioteca synapse para criar consultar o serviço de consulta de cep e receber um xml com as informações sobre o endereço. Hoje vamos ver como criar uma classe para encapsular todo esse mecanismo e fazer com que os atributos dessa classe sejam os dados do endereço. Primeiro de tudo vamos criar um arquivo chamado LazCep.pas e a classe LazCep. Repare nas units que temos que adicionar no uses. uses Classes, SysUtils, DOM, XMLRead, httpsend, dialogs; type { TLazCep } TLazCep = class private FXML: DOMString; FCEP: DOMString; FXMLDoc: TXMLDocument; //sets procedure SetCep(const vCep: DOMString); //gets function GetCep: DOMString; function GetLogradouro: DOMString; function GetCidade: DOMString; function GetEstado: DOMString; ...