<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1991283051070364619</id><updated>2011-11-14T15:23:44.499-02:00</updated><category term='treinamento'/><category term='ruby'/><category term='boas práticas'/><category term='memória'/><category term='Programação'/><category term='JPA'/><category term='Refatoração'/><category term='Desenvolvimento'/><category term='design patterns'/><category term='orientação a objetos'/><category term='workshop'/><category term='java'/><category term='REST'/><category term='Código limpo'/><category term='polêmica'/><category term='arquitetura'/><category term='ActionScript'/><category term='SCJP'/><category term='Gerencial'/><category term='SOA'/><category term='Refactorings'/><category term='c#'/><category term='minicurso'/><category term='Anti-patterns'/><category term='ejb'/><category term='ORM'/><category term='tuning'/><category term='asp.net'/><category term='linguagens'/><category term='.net'/><category term='Patterns'/><category term='Humor'/><category term='fundamentos'/><category term='Programação Funcional'/><category term='açúcar sintático'/><category term='palestra'/><category term='Paradigma de Programação'/><title type='text'>Red Pill</title><subtitle type='html'>Dia-a-dia, técnicas e devaneios acerca da tecnologia da informação e desenvolvimento de software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-4905785888589958757</id><published>2011-10-20T20:08:00.000-02:00</published><updated>2011-10-20T20:08:39.582-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Paradigma de Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><category scheme='http://www.blogger.com/atom/ns#' term='açúcar sintático'/><category scheme='http://www.blogger.com/atom/ns#' term='orientação a objetos'/><title type='text'>Todo mundo quer uma API extensível</title><summary type='text'>Como programador Java mas entusiasta de novas linguagens, acabo por sentir falta de alguns recursos que facilitam muito o trabalho, ou que pelo menos para mim fazem mais sentido usar.


Posso começar com um estudo de caso simples: dada uma String retornar o número de palavras.


É assim mesmo, simples assim, inclusive muito fácil de implementar em qualquer linguagem, mas a questão não é essa, </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/4905785888589958757/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=4905785888589958757' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4905785888589958757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4905785888589958757'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/10/todo-mundo-quer-uma-api-extensivel.html' title='Todo mundo quer uma API extensível'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-6259990222580417835</id><published>2011-10-18T22:18:00.000-02:00</published><updated>2011-10-18T22:18:07.887-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><category scheme='http://www.blogger.com/atom/ns#' term='açúcar sintático'/><title type='text'>O operador 'Elvis'</title><summary type='text'>O açúcar não deve ser consumido em excesso e nem deixar de ser consumido, assim como o sal, a gordura, etc.

Não, não virei nutricionista. É que este post é para falar de açúcar sintático, syntactic sugar em inglês, que é, em poucas palavras, o uso de operadores e construções da linguagem reduzem a escrita de um código maior e, assim como tudo, não pode deixar de existir na linguagens modernas e </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/6259990222580417835/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=6259990222580417835' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6259990222580417835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6259990222580417835'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/10/o-operador-elvis.html' title='O operador &apos;Elvis&apos;'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-5840302446123303178</id><published>2011-08-27T22:31:00.000-03:00</published><updated>2011-08-27T22:31:25.624-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palestra'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><title type='text'>Tchê Linux: Princípios de projeto e boas práticas de programação em Java</title><summary type='text'>O evento do Tchê Linux Rio Grande - Furg estava muito legal. Tive a oportunidade de encontrar amigos, colegas, alunos e o prazer de ter contato com uma comunidade proativa e inovadora.

A minha palestra foi sobre Princípio de Projeto e Programação Java. No link abaixo é possível baixar o arquivo com os slides e o projeto:

http://mtiads.net/tchelinux/palestra-furg-2011.zip

Obs.: o projeto deve </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/5840302446123303178/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=5840302446123303178' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5840302446123303178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5840302446123303178'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/08/tche-linux-principios-de-projeto-e-boas.html' title='Tchê Linux: Princípios de projeto e boas práticas de programação em Java'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-9218816590163395400</id><published>2011-07-14T20:30:00.000-03:00</published><updated>2011-07-14T20:30:32.617-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Código limpo'/><category scheme='http://www.blogger.com/atom/ns#' term='Refatoração'/><title type='text'>Enumerados em Java</title><summary type='text'>Intro

Muitas pessoas não utilizam os tipos enumerados em Java, seja por não conhecerem por estar começando a programar em Java ou, no caso dos experientes, serem relutantes a mudanças (enums foram introduzidos no Java 5).

O fato é que enums quebram um galhão e, diferente como alguns pensam, não são apenas constantes (como é no C# por exemplo), eles podem ter atributos e métodos.

Para entender </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/9218816590163395400/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=9218816590163395400' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/9218816590163395400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/9218816590163395400'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/07/enumerados-em-java.html' title='Enumerados em Java'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-7630846167265107406</id><published>2011-05-01T23:05:00.000-03:00</published><updated>2011-05-01T23:05:20.524-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Anti-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Refatoração'/><category scheme='http://www.blogger.com/atom/ns#' term='Refactorings'/><title type='text'>Primitive Obsession, Value object, Uniform Access Principle, Factory Method e Open/Close Principle</title><summary type='text'>Salve,

Este tópico é para abordar um Code Smell (mau cheiro no código) chamado Primitive Obsession (obsessão primitiva). Este Code Smell é encontrado regularmente nas propriedades de classes e não é difícil identificá-lo. A refatoração comum é extrair uma classe, normalmente um Value Object (objeto de valor) imutável, criando um modelo mais rico, fazendo uso de princípios adequados de projeto </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/7630846167265107406/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=7630846167265107406' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7630846167265107406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7630846167265107406'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/05/primitive-obsession-value-object.html' title='Primitive Obsession, Value object, Uniform Access Principle, Factory Method e Open/Close Principle'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-4227423910601933050</id><published>2011-04-19T11:24:00.000-03:00</published><updated>2011-04-19T11:24:23.445-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Anti-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><title type='text'>Lei de Demeter, Train Wrecks e Tell, Don't Ask</title><summary type='text'>Salve,

O objetivo deste tópico é abordar um princípio de OOD (Object-Oriented Design - Projeto Orientado a Objetos) chamado Lei de Demeter e junto aproveitar para falar do anti-padrão Train Wreck e sua possível cura, o princípio "Tell,Don't Ask" (Diga, não Peça).

Lei de Demeter

A Lei de Demeter é fácil de implementar e de entender, talvez  o difícil de compreender seja o porquê, em outras </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/4227423910601933050/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=4227423910601933050' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4227423910601933050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4227423910601933050'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/04/lei-de-demeter-train-wrecks-e-tell-dont.html' title='Lei de Demeter, Train Wrecks e Tell, Don&apos;t Ask'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-3664835119672144885</id><published>2011-02-09T13:33:00.000-02:00</published><updated>2011-02-09T13:33:45.156-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Paradigma de Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação Funcional'/><category scheme='http://www.blogger.com/atom/ns#' term='orientação a objetos'/><title type='text'>Paradigmas, Coleções, Java, Programação Funcional, C# e Ruby</title><summary type='text'>São vários os paradigmas de programação, entretanto os mais conhecidos e abordados são imperativo, estruturado, procedural e orientado a objetos (OOP). Os quais são suportados por muitas linguagens conhecidas como PHP, Java, Visual Basic, etc. Outros que tem destaque no desenvolvimento de aplicações são o funcional e orientado a aspectos (AOP).

Vou usar um estudo de caso simples nesse post para </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/3664835119672144885/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=3664835119672144885' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3664835119672144885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3664835119672144885'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/02/paradigmas-colecoes-java-programacao.html' title='Paradigmas, Coleções, Java, Programação Funcional, C# e Ruby'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2694968922811915504</id><published>2011-02-01T18:14:00.000-02:00</published><updated>2011-02-01T18:14:47.841-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='orientação a objetos'/><title type='text'>Strings no Java</title><summary type='text'>
Aproveitando a conversa com o Bruno sobre equals e == queria expor uma situação interessante. O modo como o Java lida com Strings tem sua particularidades que estão diretamente ligadas ao gerenciamento de memória. Por exemplo, no caso abaixo, a primeira assertiva é verdadeira, já que "aaa" é igual a "aaa", e a segunda assertiva é falsa, mesmo digitando "aaa" em "Outro texto". Se o operador == </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2694968922811915504/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2694968922811915504' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2694968922811915504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2694968922811915504'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/02/strings-no-java.html' title='Strings no Java'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2670746422409514999</id><published>2011-01-20T10:23:00.005-02:00</published><updated>2011-01-20T11:03:58.809-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='orientação a objetos'/><title type='text'>C# Extension Methods (e outros temas tranversais)</title><summary type='text'>O problema

Quem aqui né amigo, não precisou de uma funcionalidade em um tipo básico e como não tinha acabou por criar classes com nome -tipo-Util.

Não entendeu? Bem, vou dar um exemplo. Imagine que no Java eu queira saber se uma String é um número (algo que seria útil no recebimento de parâmetros em requisições Web -que são todos string).

Não existe o método isNumber, isInteger, etc, em String</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2670746422409514999/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2670746422409514999' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2670746422409514999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2670746422409514999'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2011/01/c-extension-methods-e-outros-temas.html' title='C# Extension Methods (e outros temas tranversais)'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-1044987163890515084</id><published>2010-12-24T12:04:00.001-02:00</published><updated>2010-12-24T12:07:01.371-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='polêmica'/><category scheme='http://www.blogger.com/atom/ns#' term='Desenvolvimento'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Programador e Desenvolvedor: enfim, qual a diferença?</title><summary type='text'>Este assunto é bem polêmico, para uns, programar e desenvolver significam a mesma coisa, para outros (como eu), são atividades distintas.

Então, um conceito de programador:

Um programador é um profissional preocupado com a qualidade do código - por isto também é chamado de coder. Normalmente, conhece muito uma determinada linguagem e tem sólidos conhecimentos de lógica e matemática. A sua </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/1044987163890515084/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=1044987163890515084' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1044987163890515084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1044987163890515084'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/12/programador-e-desenvolvedor-enfim-qual.html' title='Programador e Desenvolvedor: enfim, qual a diferença?'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-1561951970191198982</id><published>2010-11-27T11:36:00.000-02:00</published><updated>2010-11-27T11:36:14.230-02:00</updated><title type='text'>Palestra sobre TDD no Tchê Linux Rio Grande</title><summary type='text'>Hoje, 27 de novembro, é dia de Tchê Linux em Rio Grande. Eu estarei por lá com a apresentação sobre Metodologia Ágil: TDD com Java. Fico feliz de participar deste evento, já participei no de Pelotas, que tem muito valor para os profissionais e "aspiras" de TI Infraestrutura e Desenvolvimento. Agradeço a todos os organizadores do evento e patrocinadores.

Ainda lançarei mais posts sobre TDD. Os </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/1561951970191198982/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=1561951970191198982' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1561951970191198982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1561951970191198982'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/11/palestra-sobre-tdd-no-tche-linux-rio.html' title='Palestra sobre TDD no Tchê Linux Rio Grande'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-952776665637571475</id><published>2010-09-26T15:26:00.000-03:00</published><updated>2010-09-26T15:26:46.098-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='fundamentos'/><title type='text'>Documentar faz bem</title><summary type='text'>Um recurso que às vezes não é aproveitado pelos desenvolvedores é a documentação.

Bem, já disse em outros posts que o código "fala", em outras palavras, um código bem escrito faz os outros programadores entenderem a intenção. 

Também sou adepto do ditado que diz: "Sempre que for adicionar um comentário, pense: 'Como eu posso escrever este código para que este comentário não seja necessário?'".
</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/952776665637571475/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=952776665637571475' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/952776665637571475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/952776665637571475'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/09/documentar-faz-bem.html' title='Documentar faz bem'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_TWYmd327JM0/TJ-PcvLRWDI/AAAAAAAAAHI/AVS0DN3gf_s/s72-c/auto-complete.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2042273495751452712</id><published>2010-08-31T20:22:00.001-03:00</published><updated>2010-09-05T14:35:13.305-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palestra'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Código limpo'/><category scheme='http://www.blogger.com/atom/ns#' term='Refatoração'/><category scheme='http://www.blogger.com/atom/ns#' term='treinamento'/><category scheme='http://www.blogger.com/atom/ns#' term='Refactorings'/><title type='text'>Tchê Linux: Boas práticas e Refatorações</title><summary type='text'>Olá,

A apresentação no último sábado (28/ago) foi muito legal. Encontrei vários amigos, conversei com pessoas do ramo, etc. Esses encontros sempre são bons.

Na apresentação falei sobre Boas práticas e refatorações com Java, e fiz mais slides e código do que tinha de tempo disponível, para variar. Bem, o fato é que deixei disponível tanto a apresentação quanto o código que podem ser baixados </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2042273495751452712/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2042273495751452712' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2042273495751452712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2042273495751452712'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/08/tche-linux-boas-praticas-e-refatoracoes.html' title='Tchê Linux: Boas práticas e Refatorações'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-3697649344048449955</id><published>2010-06-28T10:35:00.001-03:00</published><updated>2010-06-28T10:41:22.004-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><title type='text'>Strings no Java</title><summary type='text'>
Intro
Salve,
Após conversar com colegas e tal, resolvi compartilhar o conhecimento sobre Strings e sua implementação e características na linguagem Java. Alguns detalhes inclusive fazem parte do exame para Programador Java Certificado (SCJP) e a utilização em outras linguagens é semelhante, como no C#, ActionScript, etc.
Espero que seja de bom proveito.

Strings
As Strings diferentemente dos </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/3697649344048449955/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=3697649344048449955' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3697649344048449955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3697649344048449955'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/06/strings-no-java.html' title='Strings no Java'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-5504133129276893486</id><published>2010-04-29T17:15:00.000-03:00</published><updated>2010-04-29T17:15:37.014-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Código limpo'/><title type='text'>Instanciar ou não instanciar coleções</title><summary type='text'>Intro

Em um papo de almoço, conversávamos sobre instanciar ou não instanciar uma coleção membro de alguma classe do domínio, exemplo:

public class Cliente {    List enderecos; //null por default}
ou
public class Cliente {    List enderecos = new ArrayList();}
E a questão fica entre performance e complexidade.

Performance
Performance por que quando um Cliente é instanciado, o seu atributo, </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/5504133129276893486/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=5504133129276893486' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5504133129276893486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5504133129276893486'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/instanciar-ou-nao-instanciar-colecoes.html' title='Instanciar ou não instanciar coleções'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-5040580321585588706</id><published>2010-04-29T17:09:00.000-03:00</published><updated>2010-04-29T17:09:23.101-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Plataforma .NET, ASP.NET e C#</title><summary type='text'>
Um dia disse que escrever ajuda a aprender, a decorar, é como se eu estivesse falando comigo mesmo (não disse que eu era esquizofrênico?).
Pensando nisto, vou focar alguns artigos nos meus objetos de estudos atuais, entre eles, boas práticas de design e implementação, detalhes importantes necessários para a certificação Java e a plataforma .NET para Web (ASP.NET) com a linguagem C# (lê-se C </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/5040580321585588706/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=5040580321585588706' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5040580321585588706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5040580321585588706'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/plataforma-net-aspnet-e-c.html' title='Plataforma .NET, ASP.NET e C#'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-4028536501254874637</id><published>2010-04-29T09:16:00.002-03:00</published><updated>2010-04-29T09:16:28.831-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><title type='text'>Primitivos vs Wrappers, profiling ...</title><summary type='text'>
Intro
A linguagem Java, na verdade, não é totalmente orientada a objetos, como pode ser visto pela existência de tipos primitivos. São eles:
boolean, char, byte, short, int, long, float, double

Sempre que um variável primitiva é declarada, é inserida uma posição na pilha com o valor atribuído, ex:
int numero = 5;

E existem as classes que representam estes tipos primitivos, os Wrappers. Existe </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/4028536501254874637/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=4028536501254874637' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4028536501254874637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4028536501254874637'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/primitivos-vs-wrappers-profiling.html' title='Primitivos vs Wrappers, profiling ...'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-6519720518290134908</id><published>2010-04-28T13:58:00.004-03:00</published><updated>2010-04-28T14:01:22.458-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><title type='text'>Design Pattern: Façade</title><summary type='text'>Salve todos

Resolvi escrever este artigo depois de perceber alguns misconceptions, neste caso, sobre o design pattern Façade (é em francês com cedilha mesmo, significando fachada).

Definições da literatura
GOF Design Patterns by ... (ah, todo mundo sabe, o quarteto aquele):
Fornecer uma interface unificada para um conjunto de interfaces em um subsistema. Façade define uma interface de nível </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/6519720518290134908/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=6519720518290134908' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6519720518290134908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6519720518290134908'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/design-pattern-facade.html' title='Design Pattern: Façade'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-1224800689062683920</id><published>2010-04-26T19:27:00.000-03:00</published><updated>2010-04-26T19:27:24.495-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Código limpo'/><title type='text'>three-valued logic (3VL)</title><summary type='text'>Salve,
Já que tenho um tempinho livre, resolvi falar sobre o a lógica ternária. Provavelmente todos que estão lendo este tópico, entendem lógica boleana, e o tipo boleano (boolean), e é sobre ele que a discussão paira.
O tratamento da lógica ternária é um desafio para solução de implementação e abaixo mostrarei algumas idéias mais simples.

Tipo boleano
O tipo boleano, cuja premissa foi cunhada </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/1224800689062683920/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=1224800689062683920' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1224800689062683920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1224800689062683920'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/three-valued-logic-3vl.html' title='three-valued logic (3VL)'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-1769820449506980652</id><published>2010-04-26T16:19:00.000-03:00</published><updated>2010-04-26T16:19:13.748-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='fundamentos'/><title type='text'>Java passa por valor</title><summary type='text'>Salve
No melhor estilo Nerd, neste fim de semana, em um BoF*, rolou o assunto de como as linguagens passam as variáveis para os métodos (functions, procedures, ). Estavam presentes programadores PHP, C e Java (eu).
* http://en.wikipedia.org/wiki/Birds_of_a_Feather_(computing)
Tudo ia bem, até por que entendo pouco de PHP e C, foi então que chegamos nas linguagens orientadas a objeto (eu sei que </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/1769820449506980652/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=1769820449506980652' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1769820449506980652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/1769820449506980652'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/java-passa-por-valor.html' title='Java passa por valor'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-6868835827592113032</id><published>2010-04-23T15:38:00.003-03:00</published><updated>2010-04-23T15:41:18.100-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memória'/><category scheme='http://www.blogger.com/atom/ns#' term='tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='arquitetura'/><title type='text'>Java Memory Architecture</title><summary type='text'>Salve
Falando um pouco sobre detalhes de baixo nível em Java, é bastante curioso o modo como a memória é gerenciada no Java, e neste pequeno texto vou expor um pouco do que sei a respeito.

Coleção de Lixo
Java é uma linguagem orientada a objetos (não totalmente, existem tipos primitivos em Java) que utiliza gerenciamento automático de memória, um recurso conhecido como Coleção de Lixo (Garbage </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/6868835827592113032/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=6868835827592113032' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6868835827592113032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6868835827592113032'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/java-memory-architecture.html' title='Java Memory Architecture'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-4495875998082585726</id><published>2010-04-20T16:41:00.003-03:00</published><updated>2010-04-20T16:41:56.610-03:00</updated><title type='text'>Programação por intenção</title><summary type='text'>A pouco criei um artiguinho sobre programação por intenção, na íntegra aqui:

Artigo: programação por intenção</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/4495875998082585726/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=4495875998082585726' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4495875998082585726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/4495875998082585726'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/programacao-por-intencao.html' title='Programação por intenção'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-6381897436034180067</id><published>2010-04-20T16:30:00.002-03:00</published><updated>2010-04-20T16:39:06.286-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='polêmica'/><title type='text'>What a Hell is SOA?</title><summary type='text'>Arquitetura do ponto de vista de um desenvolvedor ...
IntroduçãoÉ realmente complicado tentar definir o que é SOA, mas comecemos pelo significado do acrônimo: Service Oriented Architecture ou em português Arquitetura Orientada a Serviços.
Com exceção da palavra "Orientada" as outras são muito difíceis de definir, ambas são termos sobrecarregados. 
Como definimos arquitetura? O que é serviço?
</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/6381897436034180067/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=6381897436034180067' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6381897436034180067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/6381897436034180067'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/04/what-hell-is-soa.html' title='What a Hell is SOA?'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-3538076402375969765</id><published>2010-03-10T10:44:00.001-03:00</published><updated>2010-04-20T16:38:50.100-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='Refatoração'/><category scheme='http://www.blogger.com/atom/ns#' term='Refactorings'/><title type='text'>Refactorings: Extrair método e substituir variável temporária por consulta</title><summary type='text'>Salve todos,

Como desenvolvedor, penso que uma das competências necessárias é saber refatorar o código. Isto se aprende com o tempo, e ler ajuda bastante, li o livroRefatoração: Aperfeiçoando o projeto de código existente, do Martin, e ele é muito bom, claro e coeso, demonstrando algumas refatorações consolidadas.
link livro: http://www.submarino.com.br/produto/1/242126/refatoracao:+</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/3538076402375969765/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=3538076402375969765' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3538076402375969765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3538076402375969765'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/03/refactorings-extrair-metodo-e.html' title='Refactorings: Extrair método e substituir variável temporária por consulta'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-3011884544512643993</id><published>2010-03-10T10:41:00.002-03:00</published><updated>2011-07-17T00:09:13.997-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refatoração'/><category scheme='http://www.blogger.com/atom/ns#' term='Refactorings'/><title type='text'>Refactorings: Introduzir objeto parâmetro.</title><summary type='text'>Salve

Direto ao ponto, imagine uma classe método que utilizem muitos parâmetros, por exemplo:

public class AluguelService {


    public List findAluguel(Date dataInicialContrato, Date dataFinalContrato,
                            Date dataInicialOcupacao, Date dataFinalOcupacao) {
        // pesquisa e regras de negócio aqui
    }

    public List findAluguelByStatus(Boolean status, 
</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/3011884544512643993/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=3011884544512643993' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3011884544512643993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/3011884544512643993'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/03/refactorings-introduzir-objeto.html' title='Refactorings: Introduzir objeto parâmetro.'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-952213382844315726</id><published>2010-01-21T15:56:00.001-02:00</published><updated>2010-04-20T16:38:18.362-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gerencial'/><title type='text'>Os quatro estágios da competência</title><summary type='text'>É uma teoria em que acredito, cunhada por Abraham Maslow, que fala como o aprendizado acontece e evolui até uma pessoa desenvolver o conhecimento e habilidade necessários relacionado a uma determinada competência.
A teoria é bem simples, determinando 4 estágios da competência:
1º estágio) Incompetência inconsciente:A pessoa não tem a habilidade e nem sabe que ela existe, não sente necessidade ou </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/952213382844315726/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=952213382844315726' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/952213382844315726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/952213382844315726'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/01/os-quatro-estagios-da-competencia.html' title='Os quatro estágios da competência'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2063732140693027004</id><published>2010-01-21T15:18:00.001-02:00</published><updated>2010-04-20T16:37:47.165-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><title type='text'>ActionScript por um programador Java: parte 2</title><summary type='text'>
Mais uma semana de desenvolvimento com Flex e ActionScript, mais algumas diferenças para o Java.
- Em ActionScript não é possível sobrecarregar um construtor ou um método, por exemplo, em Java posso fazer isso:
public void pagamento(Date dataPagamento, Double valor) { ... }public void setPagamento(Double valor) { ... }
*Caso se o vencimento for omitido eu possa usar a data atual como data do </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2063732140693027004/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2063732140693027004' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2063732140693027004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2063732140693027004'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/01/actionscript-por-um-programador-java_21.html' title='ActionScript por um programador Java: parte 2'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2653445624266205897</id><published>2010-01-21T15:07:00.005-02:00</published><updated>2010-04-20T16:37:26.772-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><title type='text'>ActionScript por um programador Java</title><summary type='text'>

Já tive um pouco, pouco mesmo, de contato com ActionScript quando fazia testes 'domésticos' com Adobe Flex, mas nesta semana, graças a oportunidade de participar do Projeto da Vonpar, que é baseado em Back-end Java e Front-end Flex, comecei a observar as primeiras nuances, prós, contras, entre outros, claro, na minha perspectiva de desenvolvedor Java.

Todos que já leem esta lista e acompanham </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2653445624266205897/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2653445624266205897' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2653445624266205897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2653445624266205897'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/01/actionscript-por-um-programador-java.html' title='ActionScript por um programador Java'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-7701354178406677732</id><published>2010-01-15T09:32:00.005-02:00</published><updated>2010-04-20T16:37:06.834-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Anti-patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Patterns'/><title type='text'>REST Anti-Patterns</title><summary type='text'>Comecei a estudar REST (REpresentational State Transfer) a algum tempo atrás, quando fazia testes com Adobe Flex usando HTTP-Service e backend Java com Servlets, solução caseira, antes de ser padronizado como uma JSR: JSR 311: JAX-RS: The Java API for RESTful Web Services (http://jcp.org/en/jsr/detail?id=311)

Com meu ingresso na Voiza e popularização do REST comecei a estudar melhor os conceitos</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/7701354178406677732/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=7701354178406677732' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7701354178406677732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7701354178406677732'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/01/rest-anti-patterns-comecei-estudar-rest.html' title='REST Anti-Patterns'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-7062710324280375373</id><published>2010-01-04T08:28:00.001-02:00</published><updated>2010-04-20T16:36:43.612-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boas práticas'/><category scheme='http://www.blogger.com/atom/ns#' term='polêmica'/><category scheme='http://www.blogger.com/atom/ns#' term='Código limpo'/><title type='text'>You Can Write FORTRAN in any Language</title><summary type='text'>Aproveitando o tempo ocioso na espera do build no hml, resolvi publicar um assunto guardado. Costumo ler alguns blog's, um deles o Coding Horror [http://www.codinghorror.com] de onde li um artigo que achei muito interessante. Fala de uma idéia que compartilho e os que me lêem podem formar sua opinião.

O título já diz um pouco: "Você pode escrever Fortran em qualquer linguagem" e trata de </summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/7062710324280375373/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=7062710324280375373' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7062710324280375373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/7062710324280375373'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2010/01/you-can-write-fortran-in-any-language.html' title='You Can Write FORTRAN in any Language'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-2771539300540202835</id><published>2009-11-24T09:45:00.002-02:00</published><updated>2009-11-25T15:00:42.491-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palestra'/><category scheme='http://www.blogger.com/atom/ns#' term='minicurso'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>Slides apresentação minicurso semana acadêmica da Católica</title><summary type='text'>Slides do mini curso:


How to do mini curso:
http://docs.google.com/View?id=dfwq272d_108ph4dv4dt</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/2771539300540202835/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=2771539300540202835' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2771539300540202835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/2771539300540202835'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2009/11/slides-apresentacao-minicurso-semana.html' title='Slides apresentação minicurso semana acadêmica da Católica'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1991283051070364619.post-5772432557913028294</id><published>2009-11-04T11:37:00.002-02:00</published><updated>2009-11-25T15:10:57.138-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palestra'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><title type='text'>Workshop Aplicações Corporativas com EJB</title><summary type='text'>Slides da apresentação:


Código fonte da aplicação de exemplo:
http://www.4shared.com/file/146210175/6a450f57/workshop-aplicacao.html</summary><link rel='replies' type='application/atom+xml' href='http://marciojrtorres.blogspot.com/feeds/5772432557913028294/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1991283051070364619&amp;postID=5772432557913028294' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5772432557913028294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1991283051070364619/posts/default/5772432557913028294'/><link rel='alternate' type='text/html' href='http://marciojrtorres.blogspot.com/2009/11/workshop-aplicacoes-corporativas-com.html' title='Workshop Aplicações Corporativas com EJB'/><author><name>Marcio Torres</name><uri>http://www.blogger.com/profile/02698644336757724459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-vkDIwirMxcc/TiJWcciUXlI/AAAAAAAAAHw/z8ZzFMmYAf4/s1600/82e0c8be17a996dc2de11bf39b2ace43.png'/></author><thr:total>0</thr:total></entry></feed>
