{"id":1607,"date":"2022-07-11T19:10:44","date_gmt":"2022-07-11T22:10:44","guid":{"rendered":"https:\/\/gladiston.net.br\/?page_id=1607"},"modified":"2022-07-13T16:05:35","modified_gmt":"2022-07-13T19:05:35","slug":"refatoracao-de-codigo","status":"publish","type":"page","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/","title":{"rendered":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do pascal, um subprocedimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine um bot\u00e3o cujo c\u00f3digo seja:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var\n  ACaption:String;\n  ATitle:String;\n  AText:String;\n  AButtonText1:String;\n  AButtonText2:String;\n  AResult:TModalResult;\nbegin\n  AResult:=mrNone;\n  ACaption:='Ser ou n\u00e3o ser';\n  ATitle:='Eis a quest\u00e3o:';\n  AButtonText1:='Sim';\n  AButtonText2:='N\u00e3o';\n  AText:='Escolha sim ou n\u00e3o';\n  with TTaskDialog.Create(self) do\n  try\n    Caption := ACaption;\n    Title := ATitle;\n    Text := AText;\n    CommonButtons := &#91;];\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText1;\n      ModalResult := mrYes;\n    end;\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText2;\n      ModalResult := mrNo;\n    end;\n    MainIcon := tdiQuestion;\n    if Execute then\n    begin\n      AResult:=ModalResult;\n    end;\n  finally\n    Free;\n  end; <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O Objetivo do c\u00f3digo \u00e9 simplesmente mostrar uma mensagem ao usu\u00e1rio:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"255\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar1.png\" alt=\"\" class=\"wp-image-1608\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar1.png 751w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar1-300x102.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar1-18x6.png 18w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Refatorando para um m\u00e9todo ou fun\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Da\u00ed voc\u00ea decide criar um segundo bot\u00e3o com uma funcionalidade diferente, por\u00e9m reutilizar\u00e1 uma mensagem de confirma\u00e7\u00e3o similar ao utilizado no primeiro bot\u00e3o, e decide dar um Ctrl+C\/Ctrl+V e apenas modifica as vari\u00e1veis que representam o texto a ser exibido:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var\n  ACaption:String;\n  ATitle:String;\n  AText:String;\n  AButtonText1:String;\n  AButtonText2:String;\n  AResult:TModalResult;\nbegin\n  AResult:=mrNone;\n  ACaption:='Tem certeza?';\n  ATitle:='Vai apagar tudo?';\n  AButtonText1:='Sim';\n  AButtonText2:='N\u00e3o';\n  AText:='Isso eliminar\u00e1 todos os dados!';  \n  with TTaskDialog.Create(self) do\n  try\n    Caption := ACaption;\n    Title := ATitle;\n    Text := AText;\n    CommonButtons := &#91;];\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText1;\n      ModalResult := mrYes;\n    end;\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText2;\n      ModalResult := mrNo;\n    end;\n    MainIcon := tdiQuestion;\n    if Execute then\n    begin\n      AResult:=ModalResult;\n    end;\n  finally\n    Free;\n  end;\n(...) <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Provavelmente voc\u1ebd fez isso porque est\u00e1 com pressa, e verdadeiramente \u00e9 isso que acontece com prazos apertados. Mas depois de um exaustivo trabalho, voc\u00ea concluiu as funcionalidades do programa e agora vem a parte chamada de &#8220;melhorias&#8221;, onde removeremos coment\u00e1rios desnecess\u00e1rios e &#8230;. refatora\u00e7\u00e3o. Para refatorar observamos em nosso c\u00f3digo, as repeti\u00e7\u00f5es e da\u00ed percebemos que isso aqui:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  with TTaskDialog.Create(self) do\n  try\n    Caption := ACaption;\n    Title := ATitle;\n    Text := AText;\n    CommonButtons := &#91;];\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText1;\n      ModalResult := mrYes;\n    end;\n    with TTaskDialogButtonItem(Buttons.Add) do\n    begin\n      Caption := AButtonText2;\n      ModalResult := mrNo;\n    end;\n    MainIcon := tdiQuestion;\n    if Execute then\n    begin\n      AResult:=ModalResult;\n    end;\n  finally\n    Free;\n  end;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta sendo repetido nos dois bot\u00f5es. Da\u00ed voc\u00ea sabe e tem no\u00e7\u00e3o que \u00e9 possivel criar uma fun\u00e7\u00e3o com ela e trocar o trecho acima por uma fun\u00e7\u00e3o. Claro que dependendo de sua experi\u00eancia isso ser\u00e1 f\u00e1cil fazer, mas porque n\u00e3o usar a IDE do Lazarus para isso. Fa\u00e7a assim:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. Marque o trecho repetido:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"723\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar2.png\" alt=\"\" class=\"wp-image-1609\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar2.png 721w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar2-300x300.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar2-150x150.png 150w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar2-12x12.png 12w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><figcaption>Marcando o trecho que se repete em v\u00e1rias partes de nosso c\u00f3digo<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2. V\u00e1 em Source|Refactoring|Extract Procedure&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. Selecione o que a extra\u00e7\u00e3o dever\u00e1 fazer, geralmente transformando-a m\u00e9todo privado quando o trecho ser\u00e1 reutilizado no pr\u00f3prio form ou publico quando o mesmo ser\u00e1 reutilizado em unidades\/formul\u00e1rios diferentes. H\u00e1 um checkbox quando a IDE detecta que pode ser transformando em uma fun\u00e7\u00e3o, neste caso voc\u00ea pode determinar o tipo de retorno e o nome do m\u00e9todo(name of new procedure):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"430\" height=\"382\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar3b.png\" alt=\"\" class=\"wp-image-1612\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar3b.png 430w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar3b-300x267.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar3b-14x12.png 14w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">E ao clicar extract&#8230;.O sistema ent\u00e3o criar\u00e1 um c\u00f3digo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"870\" height=\"440\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar4b.png\" alt=\"\" class=\"wp-image-1613\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar4b.png 870w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar4b-300x152.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar4b-768x388.png 768w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar4b-18x9.png 18w\" sizes=\"auto, (max-width: 870px) 100vw, 870px\" \/><figcaption>O trecho selecionado tornar-se-\u00e1 um m\u00e9todo.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4. A ordem importa?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em nosso exemplo foi criado o m\u00e9todo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PerguntarDlg( AButtonText2, AButtonText1, AText, ATitle, ACaption);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mas note que a ordem dos par\u00e2metros n\u00e3o foi decidida por mim, assim, caso n\u00e3o goste v\u00e1 at\u00e9 o m\u00e9todo gerado e acerte a ordem do jeito que planeja us\u00e1-los, eu inclusive coloco minhas personaliza\u00e7\u00f5es:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"687\" height=\"833\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar5.png\" alt=\"\" class=\"wp-image-1614\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar5.png 687w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar5-247x300.png 247w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar5-10x12.png 10w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><figcaption>Personalizando o refactoring autom\u00e1tico<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quando voc\u00ea modifica a assinatura do m\u00e9todo, use Ctrl+Shift+C para que a IDE fa\u00e7a o ajuste tamb\u00e9m na declara\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora voc\u00ea tem um m\u00e9todo que pode ser usado em dois OnClicks de bot\u00f5es sem duplica\u00e7\u00f5es de linhas, apenas modificando os par\u00e2metros usado no m\u00e9todo PerguntarDlg.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Refatorar para subprocedimento(sub procedure)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Veja o que h\u00e1 de errado neste c\u00f3digo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"919\" height=\"828\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar6.png\" alt=\"\" class=\"wp-image-1615\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar6.png 919w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar6-300x270.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar6-768x692.png 768w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar6-13x12.png 13w\" sizes=\"auto, (max-width: 919px) 100vw, 919px\" \/><figcaption>Trechos repetidos no mesmo trecho de c\u00f3digo<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 trecho de c\u00f3digo repetido, nele o programador se preocupou em destruir um objeto chamado &#8220;q1&#8221; quando o usu\u00e1rio desistisse de executar uma query, mas a\u00ed houve repeti\u00e7\u00e3o do mesmo c\u00f3digo, ser\u00e1 que h\u00e1 como refatorar j\u00e1 que se trata de objetos locais? <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Sim, novamente vamos marcar apenas as linhas repetidas:<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"857\" height=\"655\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar7.png\" alt=\"\" class=\"wp-image-1616\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar7.png 857w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar7-300x229.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar7-768x587.png 768w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar7-16x12.png 16w\" sizes=\"auto, (max-width: 857px) 100vw, 857px\" \/><figcaption>Marcamos as linhas a serem refatoradas<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2. Selecionamos Source|Refactoring|Extract Procedure&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. Selecione o que a extra\u00e7\u00e3o dever\u00e1 fazer, mas dessa vez marcaremos a op\u00e7\u00e3o Sub Procedure e daremos um nome adequado de LiberarMemoria j\u00e1 que o objetivo do trecho de c\u00f3digo \u00e9 destruir objetos:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"419\" height=\"383\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar8.png\" alt=\"\" class=\"wp-image-1617\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar8.png 419w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar8-300x274.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar8-13x12.png 13w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><figcaption>Usamos sub Procedure quando desejamos refatorar um trecho de um c\u00f3digo local<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4. Note agora como ficou o c\u00f3digo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"679\" src=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar9.png\" alt=\"\" class=\"wp-image-1618\" srcset=\"https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar9.png 889w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar9-300x229.png 300w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar9-768x587.png 768w, https:\/\/gladiston.net.br\/wp-content\/uploads\/2022\/07\/refatorar9-16x12.png 16w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><figcaption>A fun\u00e7\u00e3o LiberarMemoria \u00e9 um subprocedimento para nosso usufruto<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Um procedimento LiberarMemoria tornou-se um subprocedimento para que possamos reutiliz\u00e1-lo em todos os trechos que antes tinham:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>q1.close;\nq1.free;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Assim nosso c\u00f3digo tornou-se menor, mais eficiente e muito melhor de entender.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 sempre prefer\u00edvel come\u00e7ar um projeto tomando a iniciativa em refator\u00e1-lo desde o inicio, mas sabemos como \u00e0s vezes \u00e9 necess\u00e1rio correr contra o tempo para entregar as coisas dentro do prazo e deixamos de tomar essa iniciativa desde o principio. No final do projeto \u00e9 bom saber que podemos usar a IDE do Lazarus para nos ajudar a refatorar nossas repeti\u00e7\u00f5es de c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":159,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-full-width.php","meta":{"footnotes":""},"class_list":["post-1607","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gladiston Santana - Um site para chamar de meu\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana\" \/>\n\t\t<meta property=\"og:description\" content=\"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-07-11T22:10:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-07-13T19:05:35+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en#listItem\",\"position\":1,\"name\":\"In\\u00edcio\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"position\":2,\"name\":\"Programa\\u00e7\\u00e3o\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en#listItem\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"position\":3,\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/#listItem\",\"name\":\"Refatora\\u00e7\\u00e3o de c\\u00f3digo usando a IDE\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/#listItem\",\"position\":4,\"name\":\"Refatora\\u00e7\\u00e3o de c\\u00f3digo usando a IDE\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#organization\",\"name\":\"Gladiston Santana\",\"description\":\"Um site para chamar de meu\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/#webpage\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/\",\"name\":\"Refatora\\u00e7\\u00e3o de c\\u00f3digo usando a IDE - Gladiston Santana\",\"description\":\"Um dos aspectos mais valorizados num c\\u00f3digo \\u00e9 ele n\\u00e3o ter trechos repetidos sem necessidade, se h\\u00e1 c\\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\\u00f3digo em peda\\u00e7os menores, onde os peda\\u00e7os menores poder\\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\\u00e7\\u00f5es e no caso do\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/refatoracao-de-codigo\\\/#breadcrumblist\"},\"datePublished\":\"2022-07-11T19:10:44-03:00\",\"dateModified\":\"2022-07-13T16:05:35-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/\",\"name\":\"Gladiston Santana\",\"description\":\"Um site para chamar de meu\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana","description":"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do","canonical_url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en#listItem","position":1,"name":"In\u00edcio","item":"https:\/\/gladiston.net.br\/en","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","position":2,"name":"Programa\u00e7\u00e3o","item":"https:\/\/gladiston.net.br\/en\/programacao\/","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia"},"previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en#listItem","name":"In\u00edcio"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","position":3,"name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia","item":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/#listItem","name":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE"},"previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/#listItem","position":4,"name":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE","previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia"}}]},{"@type":"Organization","@id":"https:\/\/gladiston.net.br\/en\/#organization","name":"Gladiston Santana","description":"Um site para chamar de meu","url":"https:\/\/gladiston.net.br\/en\/"},{"@type":"WebPage","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/#webpage","url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/","name":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana","description":"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/gladiston.net.br\/en\/#website"},"breadcrumb":{"@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/#breadcrumblist"},"datePublished":"2022-07-11T19:10:44-03:00","dateModified":"2022-07-13T16:05:35-03:00"},{"@type":"WebSite","@id":"https:\/\/gladiston.net.br\/en\/#website","url":"https:\/\/gladiston.net.br\/en\/","name":"Gladiston Santana","description":"Um site para chamar de meu","inLanguage":"en-US","publisher":{"@id":"https:\/\/gladiston.net.br\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gladiston Santana - Um site para chamar de meu","og:type":"article","og:title":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana","og:description":"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do","og:url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/","article:published_time":"2022-07-11T22:10:44+00:00","article:modified_time":"2022-07-13T19:05:35+00:00","twitter:card":"summary","twitter:title":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE - Gladiston Santana","twitter:description":"Um dos aspectos mais valorizados num c\u00f3digo \u00e9 ele n\u00e3o ter trechos repetidos sem necessidade, se h\u00e1 c\u00f3digo repetido, provavelmente pode ser refatorado. Refatorar significa manter a funcionalidade quebrando um trecho grande de c\u00f3digo em peda\u00e7os menores, onde os peda\u00e7os menores poder\u00e3o ser reutilizados por serem transformados em procedimentos ou fun\u00e7\u00f5es e no caso do"},"aioseo_meta_data":{"post_id":"1607","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2022-07-11 22:10:44","updated":"2025-06-04 10:39:53","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\" title=\"In\u00edcio\">In\u00edcio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\/programacao\/\" title=\"Programa\u00e7\u00e3o\">Programa\u00e7\u00e3o<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/\" title=\"Lazarus IDE \u2013 Guia de Sobreviv\u00eancia\">Lazarus IDE \u2013 Guia de Sobreviv\u00eancia<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRefatora\u00e7\u00e3o de c\u00f3digo usando a IDE\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"In\u00edcio","link":"https:\/\/gladiston.net.br\/en"},{"label":"Programa\u00e7\u00e3o","link":"https:\/\/gladiston.net.br\/en\/programacao\/"},{"label":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/"},{"label":"Refatora\u00e7\u00e3o de c\u00f3digo usando a IDE","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/refatoracao-de-codigo\/"}],"_links":{"self":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/1607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/comments?post=1607"}],"version-history":[{"count":6,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/1607\/revisions"}],"predecessor-version":[{"id":1626,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/1607\/revisions\/1626"}],"up":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/159"}],"wp:attachment":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/media?parent=1607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}