{"id":16,"date":"2009-07-01T14:30:43","date_gmt":"2009-07-01T17:30:43","guid":{"rendered":"http:\/\/mbelo.wordpress.com\/?p=16"},"modified":"2009-07-01T14:30:43","modified_gmt":"2009-07-01T17:30:43","slug":"o-desafio-de-se-achar-algo-na-api-do-java","status":"publish","type":"post","link":"https:\/\/marcio.belo.nom.br\/wordpress\/2009\/07\/01\/o-desafio-de-se-achar-algo-na-api-do-java\/","title":{"rendered":"O desafio de se achar algo no JavaDocs"},"content":{"rendered":"<p>Quem desenvolve em Java sabe o quanto \u00e9 dif\u00edcil encontrar uma classe, dentro da biblioteca de classes nativas, que soluciona aquele problema espec\u00edficio que desejamos resolver. N\u00e3o \u00e9 \u00e0toa. A Java API tem mais de trinta mil e quinhentos m\u00e9todos, distribu\u00eddos por mais de quatro mil classes. Mesmo usando os buscadores da internet, que facilitam encontrar no Javadocs classes que realizam determinado tipo de tarefa, acabamos encontrando dezenas de op\u00e7\u00f5es, que nos desafiam com suas sutis diferen\u00e7as.<\/p>\n<p>Pensando nisso, pesquisadores da Carnegie Mellon desenvolveram duas ferramentas que adicionam, entre outras facilidades, a pesquisa classificada das classes baseada em relev\u00e2ncia, mecanismo semelhante ao que o Google utiliza. Por exemplo, ao fazer a pesquisa por uma classe de impress\u00e3o, o desenvolvedor poderia pesquisar no JavaDocs por &#8216;Printer&#8217;. Usando as classifica\u00e7\u00f5es por relev\u00e2ncia, o motor de pesquisa dar\u00e1 destaque \u00e0 classe PrintWriter, colocando-a em letras com corpo maior do que a PrintEvent, posto que a primeira \u00e9 usada e referenciada com maior frequ\u00eancia do que a segunda.<\/p>\n<p>Maiores informa\u00e7\u00f5es, consultar os sites dos projetos ou o artigo na Dr.Dobb&#8217;s que fala das ferramentas:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.cs.cmu.edu\/%7Ejadeite\">Jadeite<\/a><\/li>\n<li><a href=\"http:\/\/www.cs.cmu.edu\/%7Eapatite\">Apatite<\/a><\/li>\n<li><a href=\"http:\/\/www.ddj.com\/java\/218000160?cid=RSSfeed_DDJ_All\">Finding Java API Methods and Classes<\/a><\/li>\n<\/ul>\n<div id=\"_mcePaste\" style=\"overflow:hidden;position:absolute;left:-10000px;top:299px;width:1px;height:1px;\">\n<h5>Finding Java API Methods and Classes<\/h5>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Quem desenvolve em Java sabe o quanto \u00e9 dif\u00edcil encontrar uma classe, dentro da biblioteca de classes nativas, que soluciona aquele problema espec\u00edficio que desejamos resolver. N\u00e3o \u00e9 \u00e0toa. A Java API tem mais de trinta mil e quinhentos m\u00e9todos, distribu\u00eddos por mais de quatro mil classes. Mesmo usando os buscadores da internet, que facilitam [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/posts\/16","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=16"}],"version-history":[{"count":0,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marcio.belo.nom.br\/wordpress\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}