{"id":230720,"date":"2022-12-03T14:24:00","date_gmt":"2022-12-03T11:24:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230720"},"modified":"2022-11-09T23:41:35","modified_gmt":"2022-11-09T20:41:35","slug":"meditando-sobre-gerenciadores-de-pacotes-modernos","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/meditando-sobre-gerenciadores-de-pacotes-modernos\/","title":{"rendered":"Meditando sobre gerenciadores de pacotes modernos"},"content":{"rendered":"\n<p>Eu estava conversando recentemente com um amigo sobre todas as ferramentas dispon\u00edveis que est\u00e3o no mercado para n\u00f3s hoje (algumas gratuitas, algumas de c\u00f3digo aberto) que nos ajudam com nossas necessidades de desenvolvimento.<\/p>\n<p>Estes incluem coisas como:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/gruntjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Grunhido<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gole<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/yarnpkg.com\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Fio<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/codekitapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CodeKit<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Compositor<\/a><\/strong><\/li>\n<li>e assim por diante.<\/li>\n<\/ul>\n<p>\u00c9 claro que cada uma das op\u00e7\u00f5es acima n\u00e3o \u00e9 necessariamente compar\u00e1vel porque algumas s\u00e3o ferramentas de front-end, outras s\u00e3o ferramentas de back-end e h\u00e1 algumas que oferecem um tipo h\u00edbrido.<\/p>\n<p>Al\u00e9m disso, alguns s\u00e3o premium, alguns s\u00e3o de c\u00f3digo aberto, alguns parecem ser abandonados e alguns at\u00e9 levaram a processos de compila\u00e7\u00e3o quebrados.<\/p>\n<p>Isso leva a uma s\u00e9rie de perguntas, v\u00e1rias das quais eu gostaria de abordar. Ent\u00e3o aqui, se nada mais do que reflex\u00f5es sobre gerenciadores de pacotes modernos, est\u00e3o as coisas sobre as quais estive pensando.<\/p>\n<h2>Gerenciadores de Pacotes Modernos<\/h2>\n<p>As perguntas que me vieram \u00e0 mente (e que eu estava discutindo com o referido amigo) s\u00e3o as seguintes:<\/p>\n<ul>\n<li>como devemos saber qual usar,<\/li>\n<li>quando us\u00e1-los,<\/li>\n<li>e se vale a pena ficar com eles?<\/li>\n<\/ul>\n<p>E ent\u00e3o pensei em compartilhar meus pensamentos atuais sobre essas ferramentas e sua aplicabilidade aqui.<\/p>\n<h3>Quais Usamos?<\/h3>\n<p>\u00c9 f\u00e1cil fugir dessa resposta e dizer &#8220;qual voc\u00ea quiser&quot;, mas acho que a resposta \u00e9 um pouco mais sutil do que isso.<\/p>\n<p>Por exemplo, existem curvas de aprendizado, pacotes, manuten\u00e7\u00e3o e assim por diante que v\u00eam com cada um deles. Isso n\u00e3o \u00e9 uma coisa boa ou ruim \u2013 \u00e9 natural do que eles s\u00e3o.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b8c11842.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b8c11842.png\" alt=\"Meditando sobre gerenciadores de pacotes modernos\" ><\/a><\/p>\n<p>A pergunta que estou mais interessado em fazer \u00e9 &#8220;qual deles atende melhor minha equipe, meu projeto e meus clientes?&#8221; E aqui est\u00e1 o porqu\u00ea:<\/p>\n<ol>\n<li>Se a equipe puder adotar facilmente o utilit\u00e1rio, haver\u00e1 quase zero atrito para come\u00e7ar a trabalhar com ele.<\/li>\n<li>Se funcionar bem com o projeto desde o in\u00edcio, deve facilitar a manuten\u00e7\u00e3o \u00e0 medida que o projeto cresce e amadurece. Isso \u00e9 importante porque, caso contr\u00e1rio, corremos o risco de desperdi\u00e7ar tempo e esfor\u00e7o valiosos para acelerar as coisas quando a utilidade mudar (se mudar) e isso pode ser prejudicial para o cronograma de um projeto.<\/li>\n<li>O que serve melhor ao cliente, acredito, \u00e9 uma daquelas situa\u00e7\u00f5es de &#8220;o diabo est\u00e1 nos detalhes&#8221;. Isso \u00e9 para que, se os dois primeiros estiverem satisfeitos, o cliente n\u00e3o ser\u00e1 mais s\u00e1bio. Em segundo lugar, custaria menos tempo, forneceria mais valor e os manteria investidos em us\u00e1-lo como fornecedor para o servi\u00e7o deles.<\/li>\n<\/ol>\n<p>Dito isso, n\u00e3o acredito que exista um \u00fanico caso &#8220;Este \u00e9 o utilit\u00e1rio que voc\u00ea deve usar&#8221; porque, novamente, n\u00e3o conhe\u00e7o os detalhes de um determinado projeto. Assim, n\u00e3o quero prescrever uma solu\u00e7\u00e3o quando outra pode se encaixar no caso.<\/p>\n<p>E aqui est\u00e1 um exemplo:<\/p>\n<p>Eu usei Gulp, CodeKit e Yarn em projetos diferentes. Seria bom ter uma \u00fanica ferramenta para usar? Claro! E cada um pode fazer relativamente as mesmas coisas que os outros.<\/p>\n<p>Mas a velocidade necess\u00e1ria para fazer algo acontecer, a portabilidade e os pacotes dispon\u00edveis diferem um pouco, e se estou trabalhando em algo para mim, para um cliente, com uma equipe ou sozinho s\u00e3o fatores que entram na equa\u00e7\u00e3o .<\/p>\n<p>Com o tempo, acredito que desenvolvemos uma intui\u00e7\u00e3o sobre qual deles pode ser o melhor dado os requisitos de um projeto e dada a experi\u00eancia com cada uma das ferramentas acima.<\/p>\n<p>Ent\u00e3o, com certeza, h\u00e1 algum investimento inicial que \u00e9 necess\u00e1rio para se familiarizar com quantos voc\u00ea achar adequado para ser ben\u00e9fico para sua equipe e esfor\u00e7os, mas pode ser \u00fatil para voc\u00ea \u00e0 medida que voc\u00ea continua avan\u00e7ando como desenvolvedor.<\/p>\n<h3>Quando os usamos?<\/h3>\n<p>Eu n\u00e3o acho que esta seja uma pergunta t\u00e3o dif\u00edcil de responder se voc\u00ea fez a devida dilig\u00eancia em test\u00e1-los. Novamente com a intui\u00e7\u00e3o, certo?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b90da956.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b90da956.png\" alt=\"Meditando sobre gerenciadores de pacotes modernos\" ><\/a><\/p>\n<p>Mas aqui est\u00e1 minha abordagem geral:<\/p>\n<ul>\n<li>Se estou trabalhando sozinho ou preciso me concentrar em algo rapidamente, o CodeKit \u00e9 uma boa solu\u00e7\u00e3o.<\/li>\n<li>Se estou trabalhando em equipe e preciso ter algo r\u00e1pido, escal\u00e1vel e bem definido, o Yarn \u00e9 uma boa escolha.<\/li>\n<\/ul>\n<p>Eu ainda acho que vale a pena dar uma olhada no Gulp, mas o desenvolvimento e os pacotes para ele parecem ter desacelerado. O Grunt n\u00e3o parece estar em desenvolvimento no momento, mas se funcionar para voc\u00ea e para os pacotes que voc\u00ea precisa, pode n\u00e3o valer a pena mudar agora.<\/p>\n<p>Na verdade, eu diria que a menos que voc\u00ea possa fornecer uma raz\u00e3o s\u00f3lida para mudar, ent\u00e3o por que se preocupar? A praticidade importa.<\/p>\n<h3>Vale a pena ficar com eles?<\/h3>\n<p>N\u00e3o sei. Quer dizer, a tecnologia se move t\u00e3o r\u00e1pido, e novas ferramentas chegam (que eu n\u00e3o necessariamente acho que devemos sempre adotar), e ent\u00e3o elas permanecem por um tempo.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b9636bfe.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163159-61e74b9636bfe.png\" alt=\"Meditando sobre gerenciadores de pacotes modernos\" ><\/a><\/p>\n<p>Talvez eles estagnam. Talvez eles n\u00e3o alcancem ampla ado\u00e7\u00e3o. Talvez estejam aposentados.<\/p>\n<p>Talvez a resposta mais ideal para essa pergunta seja descobrir o que o ajudar\u00e1 a resolver o problema da maneira mais eficiente poss\u00edvel, que tamb\u00e9m esteja sendo suportado por uma comunidade ativa de desenvolvedores e que voc\u00ea e sua equipe possam adotar com mais facilidade?<\/p>\n<h2>A linha inferior?<\/h2>\n<p>Se alguma coisa, este post nada mais \u00e9 do que reflex\u00f5es pessoais sobre como abordar o cen\u00e1rio em constante mudan\u00e7a de ferramentas de constru\u00e7\u00e3o e gerenciadores de pacotes. E \u00e9 como raciocinar sobre quando para qual deles determinado tipo de problema.<\/p>\n<p>N\u00e3o quero necessariamente uma solu\u00e7\u00e3o \u00fanica porque acho que as op\u00e7\u00f5es que temos promovem mais inova\u00e7\u00e3o. Ao mesmo tempo, pode introduzir um n\u00edvel de fadiga quando voc\u00ea precisa acompanhar.<\/p>\n<p>Ent\u00e3o, se nada mais, examine um subconjunto das ferramentas mais populares (talvez com estrela no GitHub como uma m\u00e9trica \u00fatil) e depois v\u00e1 a partir da\u00ed.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Isso leva a uma s\u00e9rie de perguntas, v\u00e1rias das quais eu gostaria de abordar. Ent\u00e3o aqui, se nada mais do que reflex\u00f5es sobre gerenciadores de pacotes modernos, est\u00e3o as coisas sobre as quais estive pensando.<\/p>\n","protected":false},"author":1,"featured_media":223872,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,806,846],"tags":[1170],"class_list":["post-230720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-php-8","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230720"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230720\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/223872"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}