{"id":183,"date":"2011-06-08T10:23:20","date_gmt":"2011-06-08T13:23:20","guid":{"rendered":"http:\/\/mbelo.wordpress.com\/?p=183"},"modified":"2011-06-08T10:23:20","modified_gmt":"2011-06-08T13:23:20","slug":"tamanho-importa","status":"publish","type":"post","link":"https:\/\/marcio.belo.nom.br\/wordpress\/2011\/06\/08\/tamanho-importa\/","title":{"rendered":"Tamanho importa?"},"content":{"rendered":"<p>Muito diferente do que a pergunta do t\u00edtulo possa sugerir, o tema que abordo trata de Engenharia de Software. Muito se l\u00ea em livros que tratam de refatora\u00e7\u00e3o (como o do Fowler et al) e de boas pr\u00e1ticas de c\u00f3digo (como o do Robert Martin) sobre como identificar c\u00f3digos OO mal redigidos. Fala-se sobre v\u00e1rios princ\u00edpios, como o Aberto\/Fechado, o de substitui\u00e7\u00e3o de Liskov, o de Responsabilidade \u00danica, etc; o livro do Fowler d\u00e1 at\u00e9 dicas sobre como identificar tais problemas no c\u00f3digo OO: os maus cheiros de c\u00f3digo.<\/p>\n<p>N\u00e3o obstante, tais percep\u00e7\u00f5es n\u00e3o s\u00e3o t\u00e3o \u00f3bvias para o desenvolvedor ne\u00f3fito. Descobrir que uma classe viola o princ\u00edpio de substitui\u00e7\u00e3o de Liskov, por exemplo, n\u00e3o \u00e9 uma tarefa f\u00e1cil; exige muito conhecimento e reflex\u00e3o sobre o c\u00f3digo.<\/p>\n<p>Andrew Binstock, editor da Dr.Dobbs, cita uma excelente dica em seu artigo publicado na edi\u00e7\u00e3o desse m\u00eas (In Praise of Small Classes). Ele fala de uma par\u00e2metro bastante tang\u00edvel para identificarmos um c\u00f3digo mal projetado: o tamanho de uma classe. Segundo Binstock, tal par\u00e2metro \u00e9 colocado por Jeff Bay no livro &#8220;The ThoughtWorks anthology&#8221;, e estabelece o valor de at\u00e9 60 linhas de c\u00f3digo. Acima disso ter\u00edamos um ind\u00edcio de que a classe precisa perder responsabilidades atrav\u00e9s de refatora\u00e7\u00e3o.<\/p>\n<p>O pequeno artigo transcorre sobre os conhecidos efeitos colaterais de c\u00f3digo OO mal projetado sobre os testes. Vale a pena a leitura!<\/p>\n<p>Clique <a title=\"In Praise of Small Classes\" href=\"http:\/\/drdobbs.com\/architecture-and-design\/230300002\">aqui<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muito diferente do que a pergunta do t\u00edtulo possa sugerir, o tema que abordo trata de Engenharia de Software. Muito se l\u00ea em livros que tratam de refatora\u00e7\u00e3o (como o do Fowler et al) e de boas pr\u00e1ticas de c\u00f3digo (como o do Robert Martin) sobre como identificar c\u00f3digos OO mal redigidos. Fala-se sobre v\u00e1rios [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-183","post","type-post","status-publish","format-standard","hentry","category-engenharia-de-software"],"_links":{"self":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/posts\/183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/comments?post=183"}],"version-history":[{"count":0,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/posts\/183\/revisions"}],"wp:attachment":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/media?parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/categories?post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/tags?post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}