{"id":1529,"date":"2020-09-10T12:55:55","date_gmt":"2020-09-10T15:55:55","guid":{"rendered":"https:\/\/kondado.com.br\/blog\/wiki\/?p=1529"},"modified":"2025-08-05T13:28:47","modified_gmt":"2025-08-05T16:28:47","slug":"conceito-de-funcoes","status":"publish","type":"post","link":"https:\/\/kondado.com.br\/blog\/wiki\/2020\/09\/10\/conceito-de-funcoes\/","title":{"rendered":"01. Conceito"},"content":{"rendered":"\n<p>Com a entrada em vigor da Lei Geral de Prote\u00e7\u00e3o de Dados Pessoais (LGPD) no Brasil, percebemos a necessidade de auxiliar nossos clientes a aumentar a prote\u00e7\u00e3o da privacidade dos dados que a Kondado insere em seus destinos de dados. Para tal finalidade, foram criadas as fun\u00e7\u00f5es.<\/p>\n\n\n\n<h3>O que s\u00e3o fun\u00e7\u00f5es?<\/h3>\n\n\n\n<p>As fun\u00e7\u00f5es s\u00e3o processos aplicados aos dados antes mesmo de serem escritos no destino. Voc\u00ea pode, por exemplo, escolher por aplicar uma fun\u00e7\u00e3o que transforme a condi\u00e7\u00e3o de um texto para caixa alta. Desta forma, voc\u00ea ter\u00e1 um texto como &#8220;ol\u00e1, mundo!&#8221; transmutado para &#8220;OL\u00c1, MUNDO!&#8221;.<\/p>\n\n\n\n<h3 id=\"chaining\">Encadeamento de fun\u00e7\u00f5es<\/h3>\n\n\n\n<p>As fun\u00e7\u00f5es da Kondado s\u00e3o granulares. Isso quer dizer que elas realizam uma opera\u00e7\u00e3o por vez. Em decorrr\u00eancia disso, voc\u00ea pode encade\u00e1-las, fazendo com que elas sejam aplicadas sequencialmente.<\/p>\n\n\n\n<p>Voltando ao exemplo do campo &#8220;ol\u00e1, mundo!&#8221;, voc\u00ea pode utilizar a fun\u00e7\u00e3o de transformar a condi\u00e7\u00e3o do texto para caixa alta e depois aplciar uma fun\u00e7\u00e3o de remover espa\u00e7os. Assim sendo, ter\u00edamos o seguinte fluxo:<\/p>\n\n\n\n<ol><li><strong>No conector:<\/strong> &#8220;ol\u00e1, mundo!&#8221;<\/li><li><strong>Primeira fun\u00e7\u00e3o (caixa alta)<\/strong>: &#8220;OL\u00c1, MUNDO!&#8221;<\/li><li><strong>Segunda fun\u00e7\u00e3o (remover espa\u00e7os):<\/strong> &#8220;OL\u00c1,MUNDO!&#8221;<\/li><li><strong>Escrito no destino<\/strong>: &#8220;OL\u00c1,MUNDO!&#8221;<\/li><\/ol>\n\n\n\n<h3>Categorias de fun\u00e7\u00f5es<\/h3>\n\n\n\n<p>Na Kondado, as fun\u00e7\u00f5es s\u00e3o classificadas em 3 (tr\u00eas) categorias:<br><br><strong>Transforma\u00e7\u00e3o:<\/strong> Aplica um processo ao campo que ainda permite sua identifica\u00e7\u00e3o de forma simples. Como exemplo, t\u00eam-se as fun\u00e7\u00f5es de remover espa\u00e7os e condicionar as letras para caixa alta.<br><br><strong>Anonimiza\u00e7\u00e3o:<\/strong> Aplica um processo ao campo que n\u00e3o guarda qualquer rela\u00e7\u00e3o com seu valor original. Como exemplo, tem-se uma fun\u00e7\u00e3o que substitui um valor por um UUID aleat\u00f3rio.<br><br><strong>Pseudonimiza\u00e7\u00e3o:<\/strong> Aplica um processo ao campo que guarda certa rela\u00e7\u00e3o com o valor original. Contudo, a revers\u00e3o do campo ao valor original ser\u00e1 computacionalmente custosa ou s\u00f3 poder\u00e1 ser feita com outros valores. Para fins de exemplifica\u00e7\u00e3o, pense que voc\u00ea precisaria saber o ID do registro que foi pseudonimizado para buscar em outro lugar o seu valor original ou mesmo deduzir, com v\u00e1rias associa\u00e7\u00f5es, qual \u00e9 o valor original.<\/p>\n\n\n\n<h3>Tipagem<\/h3>\n\n\n\n<p>Algumas fun\u00e7\u00f5es alterar\u00e3o o tipo de dado original. Exemplo: utilizar uma fun\u00e7\u00e3o que substitui um campo por um UUID  aleat\u00f3rio ir\u00e1 alterar qualquer tipo de dado para texto.<\/p>\n\n\n\n<p>Al\u00e9m disso, algumas fun\u00e7\u00f5es s\u00e3o limitadas para alguns tipos de dado. Exemplo: uma fun\u00e7\u00e3o que escreve o ano de uma data s\u00f3 pode ser aplicada em campos do tipo &#8220;timestamps&#8221; e &#8220;datas&#8221;.<\/p>\n\n\n\n<p>Com o encadeamento de fun\u00e7\u00f5es, o tipo de dado que as pr\u00f3ximas fun\u00e7\u00f5es ir\u00e3o utilizar \u00e9 sempre relativo ao tipo gerado pela \u00faltima fun\u00e7\u00e3o aplicada (ou ao tipo do campo original, caso seja a primeira fun\u00e7\u00e3o da cadeia.) Exemplo: um campo do tipo &#8220;data&#8221; est\u00e1 no conector como &#8220;2020-09-10&#8221;. Voc\u00ea pode aplicar uma fun\u00e7\u00e3o de transforma\u00e7\u00e3o que altere o tipo desse campo para &#8220;texto&#8221; e depois aplicar uma fun\u00e7\u00e3o que remova caracteres especiais (utilizada apenas em campos do tipo &#8220;texto&#8221;). Tal processo ocorrer\u00e1 da seguinte forma:<\/p>\n\n\n\n<ol><li>&#8211;<strong>No conector<\/strong>: date (2020-09-10)<\/li><li><strong>Primeira fun\u00e7\u00e3o (transformar em texto)<\/strong>: &#8220;2020-09-10&#8221;<\/li><li><strong>Segunda fun\u00e7\u00e3o (remover caracteres)<\/strong>: &#8220;20200910&#8221;<\/li><li><strong>Escrita no destino:<\/strong> &#8220;20200910&#8221;<\/li><\/ol>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Conceitos b\u00e1sicos sobre fun\u00e7\u00f5es, suas categorias, tipagem e encadeamento<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,318],"tags":[304,303,7,6,326,322,320],"_links":{"self":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/1529"}],"collection":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/comments?post=1529"}],"version-history":[{"count":5,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/1529\/revisions"}],"predecessor-version":[{"id":10083,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/1529\/revisions\/10083"}],"wp:attachment":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/media?parent=1529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/categories?post=1529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/tags?post=1529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}