Tipos pequenos e fortes: legibilidade++;

Isso que eu chamo de código legível!

Objetos = estado + comportamentos

OO de verdade!

Portfólio Intelectual

Mais um ótimo texto do GC. Como anda o seu portfólio intelectual?

Funcionalismo Público no Brasil & Comunicação

O Leandro Vieira, escreveu um texto interessante sobre o ônus da cultura do funcionalismo público.

A Marizete Furbino redigiu outro falando sobre a importância da comunicação.

Controle de Versão com Múltiplos Times Ágeis

Objetivos da metodologia utilizada:

“Falhe o quanto antes”

“É melhor resolver problemas pequenos frequentemente do que grandes esporadicamente”

“Mesmo após uma má release, algo deve ser entregue (por menor que seja)”

“As rotinas devem ser claras e simples”

Interessante a divisão de times e trabalhos em branches. Fica simples, organizado e diminui os transtornos causados pelos merges.

http://www.infoq.com/articles/agile-version-control

JSF+Ajax Eficientemente

Geralmente quando estamos desenvolvendo para web, temos o costume de sempre pensar em navegação entre páginas. O Rafael Ponte apresentou uma alternativa no mínimo interessante para JSF utilizando RichFaces + Facelets.

Single-Entry, Single-Exit em Java ?!

Rolou uma “discussão” muito interessante na lista PBJUG sobre o uso ou não do SESE em Java. Prestem atenção nos posts do Flávio Santos e do Maurício Linhares (a thread, na verdade, é sobre outro assunto). Vejam aqui!

Leiam mais sobre o assunto aqui e aqui.

Eu acho que o código do método deve ser pequeno o suficiente para ter poucas condições de retorno (caso contrário é um indício de necessidade de refatoração). E acho que, nesse caso, é mais legível ter múltiplos pontos de saída mesmo. Além da legibilidade, vejo ganho de desempenho (conforme exemplo do Flávio na thread) e os objetos utilizados pelo método estarão disponíveis para o GC mais rapidamente. E vocês ?! Quais são as suas opiniões ?!

Afirmações provenientes do Manifesto Ágil

“Um time auto-organizável sobre um time controlado/comandado”

“Concluir de forma ágil sobre apenas concluir”

“Design suficiente sobre um grande pré-design”

“Reuso de código sobre copiar e colar”

“Programação em par sobre revisão de código”

“Rápidas reuniões em pé sobre reuniões de status do projeto”

Cada uma dessas afirmações é explicada aqui! Já tinha citado o Manifesto aqui.

if (testadores = leitores de docs && apertadores de botão) assert false;

  Post interessante do Shoes sobre os testadores. Ele faz um comparativo, baseado em sua experiência, entre testadores ágeis e não ágeis.  Veja aqui!

O que você faz fora do horário de trabalho ?

“O que você faz fora do horário de trabalho irá determinar o profissional que você será”.

“Não leia os livros, estude-os.”

“Não programe apenas por dinheiro, programe também por prazer.”

Essas duas três e outras afirmações estão neste texto do Dr. Heinz Kabutz. Rolou um bate-papo interessante sobre isso na lista PBJUG recentemente. Caso ainda não tenha feito, recomendo que assine-a!

Testes são apenas validadores ?!

O Maurício Linhares, moderador do GUJ e nosso vizinho paraibano, escreveu um post muito interessante sobre os significados dos testes. Eles podem ser bem mais que simples validadores. O Shoes já tinha falado sobre modelagem em código em seu post sobre Analista de Sistemas. Vejam aqui!

[Editado em 02/03/2008 às 13:11]

Coincidentemente surgiu um tópico no GUJ exatamente sobre isso. Vejam!

[Editado em 02/03/2008 às 13:11]

Métricas de Software

O grande Prof. Martin Fowler, em seu Bliki, faz uma análise de alguns métodos existentes que objetivam medir a produtividade de programadores: LOC (Linhas de código) e FP (Pontos por Função). Ele dá contra-exemplos.

Também afirma que muitos não sabem o que é exatamente uma falha em um projeto de software.

Vejam mais aqui!

Validações e Exceções em DDD

Esta mensagem em um grupo de DDD trata disso.

Eles citam os padrões Notification e Specification. Os que foram usados por David para tratar validações no exemplo de DDD que ele deu na disciplina WEB III.

Há posts do Sérgio Bossa (um dos participantes do grupo) no blog dele sobre isso, vejam aqui, aqui e aqui.

O uso indiscriminado de getters e setters!

Estávamos discutindo um dia desses sobre criar uma classe com seus atributos e colocar automaticamente todos os getters/setters possíveis. Este post da Caelum trata justante do uso indiscriminado de getters e setters.

Ele cita algumas outras más práticas e que TDD contribui para evitá-las.

obrigado !

só queria deixar registrado aqui que foi um prazer trabalhar ao lado de vocês. quem sabe no futuro nós não voltamos a trabalhar juntos (em Manaus de preferência hehehe).  =D desejo boa sorte a todos e muita evolução profissional.

e nunca esqueçam: TRY AGAIN !!! =D

você lembra?

web.archive.org – esse site contém um cache de milhares de site desde de 1996 até hoje. dá pra ver a evolução do design e de como a estética mudou através dos anos…

dica: vejam o site da Apple, UOL, Google, etc…

Quem faz a universidade é o aluno… Ou melhor, o aluno quem faz a sua universidade!

Hoje no almoço estávamos discutindo o quanto o aprendizado da universidade nos é (ou não) proveitoso em nosso dia-a-dia.

Principalmente em nossa área, cada dia que passa, tomamos conhecimento de pessoas que não tem nível superior e são profissionais bem sucedidos.

O Agostinho já tinha postado aqui sobre a Universidade Direta.

Estava lendo uns blogs e encontrei esse post do Marcelo Martins, um dos moderadores do GUJ que me parece ser um caso desse. Ele postou no blog dele um pouco da sua experiência com Universidade.

Não que os cursos de nível superior não sejam importantes, mas eles, por si só, não formam profissionais que irão realmente fazer a diferença.

Leiam, leiam e leiam. Estudem, estudem e estudem. Façam a universidade de vocês!

Tiers x Layers

Já discutimos uma vez a diferença entre tiers e layers. Ambos são muitas vezes traduzidos apenas como camadas e, na verdade, são coisas distintas.

 Postaram no fórum do GUJ algumas boas explicações e links sobre isso. Não deixem de ler as referências dos links!

entrevista

brasileiro que trabalha na Red Hat – fala sobre open source, comunidade, emprego, home office…

Windows Vista pela Apple

Não sei se já viram. Muito engraçado!

code monkeys

Texto sobre a palhaçada que são as “ferramentas mágicas” – que produzem o sistema pra você automaticamente.

na minha opinião, JCompany – e similiares – é a maior furada que existe, pois parte do princípio “qualquer macaco sabe digitar código”.

http://emerleite.wordpress.com/2007/12/12/programadores-escrevem-codigo-ferramentas-apenas-ajudam/

Hibernate – Diferença entre session.get() e session.load()

Durante a aula de de WEB III surgiu a dúvida de qual a diferença entre os métodos session.get() e session.load(). Eles são utilizados para recuperar um objeto a partir de seu identificador.

Este post do Ganesh Blog explica justamente isso.

o Ruby vai pras cabeças…

http://trixfree.blogspot.com/2007/08/o-ruby-vai-pras-cabeas.html

criando um ambiente para XP e Modelagem Ágil

arquivo para download da apresentação sobre Ambiente Ágil.

CRUD – até quando ?

Eu tava falando com o Samuel sobre o lance da maioria dos desenvolvedores passarem a vida fazendo software para os outros, geralmente CRUDS iguais aos do projeto passado e receber uma quantia X por mês pra viver.

acho isso frustante pois todos os desenvolvedores estão nessa área porque gostam de criar, inovar, pesquisar e tentar sempre fazer algo de realmente novo (ou quase).

programar porque a pessoa gosta e programar o que você tem vontade é fantástico. esse é um dos motivos de existir milhões de projetos open-source, é uma expécie de fuga do dia-a-dia. do lugar comun. projetos open-source são produdizos por vontade, por busca de um desafio. acho que é uma das razões para eles serem tão bons.

leiam os artigos abaixo do Paul Graham (quem não conhece) e vocês teram uma visão muito maior disso que falei.

http://lullis.infogami.com/pg/

java 6 + classloader + jboss

pra ficar ligado na compatibilidade !

barcamp

barcamp é um evento que ainda está começando aqui no Brasil e pelo ando lendo parece ser muito melhor do que a metodologia convencional, que parece ser a mesma desde do século 17. a idéia principal é colaboração num ambiente horizontal.

barcamp são paulo
barcamp brasil

joel on Software

sugestão de leitura muito, muito boa! comecem por esse e esse.

exceptions em java

cansados de escrever try…catch…finally só porque a API obriga ?!!

vejam a história de como as exceptions do Java foram incluídas na linguagem e como limpar seu código das checked exceptions.

parte 1
parte 2
parte 3

Does Java need Checked Exceptions? – Bruce Eckel
Entrevista com Anders Hejlsberg (criador do C# e do Delphi) – sobre exceptions.

problemas da herança

no livro do Gof diz: “prefira usar interfaces no lugar de herança”.

o post desse blog aborda sobre isso.

excelente capítulo do livro do Rod Johnson.