Postagens

Mostrando postagens com o rótulo metaprogramação

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...

Metaprogramação no lazarus

Imagem
No meu último post  eu falei sobre o componente Pascal Script da RemObjects. A melhor notícia é que a versão 3 do componente, com um belo instalador automático e uma série de melhorias, tem uma versão para lázarus muito fácil de se instalar. Além disso tem uma versão também para o visual studio / .net, então imagina usar metaprogramação "via script" no ambiente .net que já permite metaprogramação. Vai ser show de bola, e um perigo também, se mal usado. Esse é  o tipo de recurso que quando agente usa fala: "e porque não?". Bom, pelo menos como aprendizado e prova de conceito darei uma estudada e desenvolverei mais alguns exemplinhos. Por hora, fiz no lázarus o mesmíssimo exemplo feito em Delphi no  último post , espero que gostem. Uma das mudanças foi colocar um SynEdit para digitar o código, em vez de um memo comum. O Synedit é show! Faça o download do exemplo aqui : Have fun ;)

Metaprogramação na Revista Clube Delphi 116

Imagem
Já está disponível a versão digital da Revista Clube Delphi #116  no site da DevMedia. Nesta edição há dois artigos de minha autoria: Um sobre Metaprogramação em Delphi (artigo de capa) onde falaremos sobre como criar um aplicativo que interprete scripts em Object Pascal, para customizações feitas pelo próprio cliente. Num outro artigo  abordamos algumas dicas da API e do Registro do windows. O assunto sobre metaprogramação, em particular, é um tipo de assunto que me interessa muito, seja qual for a linguagem, e eu pretendo publicar outros artigos sobre esse assunto. Há ainda um artigo bastante interessante do Rafael Stavarengo mostrando como criar um agendador de tarefas OO. (uma coisa que particularmente eu preciso). E vários outros artigos interessantes. Espero sinceramente que seja útil a todos. Have Fun ;)

Metaprogramação... firefox sux

E a palavra do dia é.... metaprogramação! Digite aqui uma rotina em jvascript Executar Função eval do Javascript... linda! mas... Embora o post anterior para salvar o IE6 fosse brincadeira... acho que vou reconsiderar porque esse já é o segundo script que finciona em todos os Browsers, até no fatídico IEca mas não funciona no ben(mal)dito firefox. O outro script para conversão de medidas também não funcionou. É interessante que os dois scripts funcionaram no firefox em uma página separada, mas dentro do blog não. Tudo bem, deve ter algum outro script dentro do blog que está atrapalhando. Scripts do google, do proprio blog, do Syntax Highlighter de Alex Gorbatchev , sei lá, mas é fato que funciona nos outros borwsers e no firefox não. Aliás, esta última safra de browsers está terrível, não vejo a hora que sai a próxima versão de cada um. O ópera foi o único que se salvou. O que melhorou no novo firefox 3.6 é que diminuiu um pouco o consumo de memória (os leaks horríveis...