{"id":26049,"date":"2022-12-16T18:30:55","date_gmt":"2022-12-16T18:30:55","guid":{"rendered":"https:\/\/building.nubank.com\/what-is-functional-programming-and-how-do-we-use-that-technology-at-nubank\/"},"modified":"2024-03-21T16:33:24","modified_gmt":"2024-03-21T16:33:24","slug":"o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/","title":{"rendered":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Se voc\u00ea trabalha com tecnologia ou tem alguma curiosidade sobre a \u00e1rea, voc\u00ea provavelmente j\u00e1 ouviu falar de programa\u00e7\u00e3o funcional. N\u00e3o \u00e9 nenhuma novidade, mas est\u00e1 recebendo cada vez mais aten\u00e7\u00e3o devido \u00e0s mudan\u00e7as tecnol\u00f3gicas pelas quais estamos passando.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 programa\u00e7\u00e3o funcional?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A programa\u00e7\u00e3o funcional \u00e9 um paradigma de programa\u00e7\u00e3o, ou seja, \u00e9 o modo de se fazer algo. Em programa\u00e7\u00e3o, \u00e9 a metodologia usada para escrever c\u00f3digos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O paradigma funcional \u00e9 baseado em um modelo muito antigo de computa\u00e7\u00e3o chamado c\u00e1lculo lambda. O c\u00e1lculo lambda foi criado em 1930 por Alonzo Church (professor do famoso matem\u00e1tico Allan Turing) e ele se tornou a base para a cria\u00e7\u00e3o do LISP, uma fam\u00edlia de linguagens de programa\u00e7\u00e3o desenvolvida por John McCarthy em 1958.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para saber o que \u00e9 a programa\u00e7\u00e3o funcional, no entanto, \u00e9 importante entender outros famosos paradigmas de programa\u00e7\u00e3o: programa\u00e7\u00e3o imperativa e programa\u00e7\u00e3o orientada a objetos (POO).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programa\u00e7\u00e3o Imperativa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O paradigma mais famoso da programa\u00e7\u00e3o. Em linguagens imperativas, como C e PHP, os c\u00f3digos s\u00e3o escritos como uma lista de a\u00e7\u00f5es ou comandos que s\u00e3o executados por um computador. Eles s\u00e3o como ordens dadas \u00e0 m\u00e1quina, por isso \u00e9 chamado de programa\u00e7\u00e3o imperativa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programa\u00e7\u00e3o Orientada a Objetos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quanto \u00e0 programa\u00e7\u00e3o orientada a objetos, um programador cria dados na forma de campos, conhecidos como atributos, e c\u00f3digos na forma de procedimentos, conhecidos como m\u00e9todos. Uma das suas caracter\u00edsticas \u00e9 que o procedimento de um objeto pode acessar ou mesmo mudar os campos de dados do objeto com o qual ele \u00e9 associado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para dar um exemplo simples, imagine que um carro \u00e9 um objeto e seus atributos s\u00e3o suas portas, cor etc. Voc\u00ea poderia ter um m\u00e9todo no qual o procedimento \u00e9 abrir a porta do carro e o outro \u00e9 fechar a porta do carro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alguns exemplos de linguagem de programa\u00e7\u00e3o orientada a objetos s\u00e3o Java, Python e Ruby. Outras linguagens, como JavaScript e PHP, t\u00eam suporte para orienta\u00e7\u00e3o a objetos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programa\u00e7\u00e3o Funcional<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando entendemos outros tipos de paradigma, fica mais f\u00e1cil entender o paradigma funcional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Diferente da programa\u00e7\u00e3o imperativa e da orientada a objetos, a programa\u00e7\u00e3o funcional considera tudo uma fun\u00e7\u00e3o. N\u00e3o h\u00e1 uma lista de instru\u00e7\u00f5es ou objetos a serem executados pelo computador, mas sim uma sequ\u00eancia de fun\u00e7\u00f5es matem\u00e1ticas que juntas resolver\u00e3o um problema.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso significa que no paradigma funcional, as fun\u00e7\u00f5es s\u00e3o puras, n\u00e3o mudam o estado do objeto e d\u00e3o \u00eanfase \u00e0s express\u00f5es e declara\u00e7\u00f5es, em vez de seguir instru\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No exemplo com o carro, se criarmos uma fun\u00e7\u00e3o pura para abrir a porta do carro, essa fun\u00e7\u00e3o n\u00e3o mudar\u00e1 o carro, que \u00e9 a entrada inicial. Voc\u00ea deve usar explicitamente o resultado da fun\u00e7\u00e3o, que seria o carro com a porta aberta, em vez de acessar a entrada inicial, que \u00e9 o carro com a porta fechada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, n\u00e3o h\u00e1 vari\u00e1veis no paradigma funcional, apenas constantes. Isso se traduz em c\u00f3digos mais objetivos com constantes que, grosso modo, n\u00e3o mudam. Alguns exemplos de linguagens funcionais s\u00e3o Clojure, Haskell e Elixir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quais s\u00e3o os benef\u00edcios da programa\u00e7\u00e3o funcional?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como foi dito antes, o c\u00f3digo na programa\u00e7\u00e3o funcional tende a ser mais objetivo e mais curto do que em outros tipos de paradigma, porque voc\u00ea \u00e9 capaz de isolar as fun\u00e7\u00f5es puras que obter\u00e3o a l\u00f3gica de seus neg\u00f3cios das fun\u00e7\u00f5es que s\u00e3o chamados de mut\u00e1veis, que s\u00e3o opera\u00e7\u00f5es que realmente mudam o objeto, ou seja, podem modificar dados em um banco de dados, por exemplo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outro benef\u00edcio \u00e9 que, j\u00e1 que ele \u00e9 baseado em fun\u00e7\u00f5es matem\u00e1ticas, o paradigma funcional se vale do conceito de imutabilidade. Um exemplo disso seria uma fun\u00e7\u00e3o matem\u00e1tica simples, como f(x) = x + 2. Sempre que usarmos o mesmo valor para essa fun\u00e7\u00e3o, ele fornecer\u00e1 um resultado igual e imut\u00e1vel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por conta disso, \u00e9 mais f\u00e1cil aplicar a manuten\u00e7\u00e3o do c\u00f3digo e eventuais altera\u00e7\u00f5es. \u00c9 mais simples adicionar testes e isolar uma fun\u00e7\u00e3o para fazer an\u00e1lises e corrigir falhas.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Isso pode parecer apenas um pequeno detalhe, mas com um c\u00f3digo imut\u00e1vel temos certeza de que ao test\u00e1-lo o c\u00f3digo n\u00e3o agir\u00e1 de forma inesperada em um ambiente de produ\u00e7\u00e3o.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, linguagens funcionais s\u00e3o mais amig\u00e1veis \u00e0 implementa\u00e7\u00e3o de computa\u00e7\u00e3o paralela, o que significa que partes diferentes do sistema ser\u00e3o facilmente executadas por diferentes processadores. Isso pode ser explicado pelo fato de que os c\u00f3digos s\u00e3o previs\u00edveis e imut\u00e1veis, sem efeitos colaterais.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como usamos a programa\u00e7\u00e3o funcional no Nubank?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando o Nubank foi fundado em 2013, procuramos uma tecnologia que nos ajudasse a alcan\u00e7ar nossos objetivos de neg\u00f3cios, manter a efici\u00eancia e expandir de uma maneira segura e sustent\u00e1vel.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naquele momento, o paradigma funcional parecia ser a melhor op\u00e7\u00e3o para os desafios que ter\u00edamos que enfrentar. Por causa disso, acabamos adotando o Clojure como a linguagem principal para os nossos servi\u00e7os e o Datomic como nosso banco de dados.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>O princ\u00edpio da imutabilidade do paradigma funcional alinhado ao Datomic \u00e9 crucial para uma institui\u00e7\u00e3o financeira, pois sendo um banco de dados somente de acr\u00e9scimo, o Datomic mant\u00e9m um hist\u00f3rico de opera\u00e7\u00f5es. Com isso n\u00f3s podemos, por exemplo, reprocessar todos os dados do Nubank desde o primeiro dia, se necess\u00e1rio, ou recomputar as opera\u00e7\u00f5es de um dia espec\u00edfico.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">O paradigma funcional tamb\u00e9m ajuda com o processo de internacionalizar o Nubank. A l\u00f3gica do sistema financeiro de um pa\u00eds pode ser diferente da l\u00f3gica de outro pa\u00eds, mas n\u00e3o ser\u00e1 necess\u00e1rio constru\u00ed-la do zero. Reescrever a l\u00f3gica do sistema financeiro e reutilizar as outras partes do sistema j\u00e1 \u00e9 o suficiente.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 importante dizer que usar uma linguagem funcional facilita as coisas, mas ela n\u00e3o \u00e9 o \u00fanico elemento necess\u00e1rio para alcan\u00e7ar esse objetivo. O conceito de plataformiza\u00e7\u00e3o que usamos e o modelo C4 tamb\u00e9m t\u00eam influ\u00eancia nisso.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Mas no final das contas, \u00e9 como brincar com Lego: se uma pe\u00e7a n\u00e3o se encaixa, \u00e9 f\u00e1cil troc\u00e1-la por outra sem perder tudo que j\u00e1 foi constru\u00eddo. &#8211; Conceito de arquitetura de software modular<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Dessa forma, podemos usar todos os benef\u00edcios da programa\u00e7\u00e3o funcional para construir solu\u00e7\u00f5es que devolvam o controle das pessoas sobre o pr\u00f3prio dinheiro, n\u00e3o importa em que pa\u00eds estejam.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.<\/p>\n","protected":false},"author":178110163,"featured_media":24694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2497,2586],"tags":[2717,2634,2716],"ppma_author":[2388],"class_list":["post-26049","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-pt-br","category-software-engineering-pt-br","tag-functional-paradigm-pt-br","tag-functional-programming-pt-br","tag-technology-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank<\/title>\n<meta name=\"description\" content=\"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-16T18:30:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:33:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Bruno Rodrigues - Senior Engineering Manager at Nubank\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bruno Rodrigues - Senior Engineering Manager at Nubank\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/\"},\"author\":{\"name\":\"Bruno Rodrigues - Senior Engineering Manager at Nubank\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/38da41b5a2bfbf7cbb04d463306cbdee\"},\"headline\":\"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank?\",\"datePublished\":\"2022-12-16T18:30:55+00:00\",\"dateModified\":\"2024-03-21T16:33:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/\"},\"wordCount\":1152,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"keywords\":[\"functional paradigm\",\"functional programming\",\"Technology\"],\"articleSection\":[\"Engineering\",\"Software Engineering\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/\",\"name\":\"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2022-12-16T18:30:55+00:00\",\"dateModified\":\"2024-03-21T16:33:24+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/38da41b5a2bfbf7cbb04d463306cbdee\"},\"description\":\"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/38da41b5a2bfbf7cbb04d463306cbdee\",\"name\":\"Bruno Rodrigues - Senior Engineering Manager at Nubank\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/avatar_user_178110163_1666700769-96x96.jpgb59605a07d2fb82fa118a3bb89d728f3\",\"url\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/avatar_user_178110163_1666700769-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/avatar_user_178110163_1666700769-96x96.jpg\",\"caption\":\"Bruno Rodrigues - Senior Engineering Manager at Nubank\"},\"description\":\"Bruno Rodrigues is responsible for Data Governance helping Nubank to rock at data stewardship. He has a degree in Computer Engineering from Federal University of Pernambuco (UFPE). Bruno has extensive experience working on Data Infrastructure Platform. Before joining Nubank, in 2018, he worked in companies such as EduK and B2W. He also is a Pokemon fan.\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/author\\\/bruno-rodrigues\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank","description":"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/","og_locale":"pt_BR","og_type":"article","og_title":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank","og_description":"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.","og_url":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/","og_site_name":"Building Nubank","article_published_time":"2022-12-16T18:30:55+00:00","article_modified_time":"2024-03-21T16:33:24+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","type":"image\/jpeg"}],"author":"Bruno Rodrigues - Senior Engineering Manager at Nubank","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Bruno Rodrigues - Senior Engineering Manager at Nubank","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/"},"author":{"name":"Bruno Rodrigues - Senior Engineering Manager at Nubank","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/38da41b5a2bfbf7cbb04d463306cbdee"},"headline":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank?","datePublished":"2022-12-16T18:30:55+00:00","dateModified":"2024-03-21T16:33:24+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/"},"wordCount":1152,"commentCount":0,"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","keywords":["functional paradigm","functional programming","Technology"],"articleSection":["Engineering","Software Engineering"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/","url":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/","name":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank? - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","datePublished":"2022-12-16T18:30:55+00:00","dateModified":"2024-03-21T16:33:24+00:00","author":{"@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/38da41b5a2bfbf7cbb04d463306cbdee"},"description":"Descubra o que \u00e9 um paradigma funcional, como ele difere de outros paradigmas e como usamos essa tecnologia no Nubank.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/pt-br\/o-que-e-programacao-funcional-e-como-usamos-esta-tecnologia-no-nubank\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"O que \u00e9 programa\u00e7\u00e3o funcional e como usamos esta tecnologia no Nubank?"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/pt-br\/#website","url":"https:\/\/building.nubank.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/38da41b5a2bfbf7cbb04d463306cbdee","name":"Bruno Rodrigues - Senior Engineering Manager at Nubank","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2022\/10\/avatar_user_178110163_1666700769-96x96.jpgb59605a07d2fb82fa118a3bb89d728f3","url":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2022\/10\/avatar_user_178110163_1666700769-96x96.jpg","contentUrl":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2022\/10\/avatar_user_178110163_1666700769-96x96.jpg","caption":"Bruno Rodrigues - Senior Engineering Manager at Nubank"},"description":"Bruno Rodrigues is responsible for Data Governance helping Nubank to rock at data stewardship. He has a degree in Computer Engineering from Federal University of Pernambuco (UFPE). Bruno has extensive experience working on Data Infrastructure Platform. Before joining Nubank, in 2018, he worked in companies such as EduK and B2W. He also is a Pokemon fan.","url":"https:\/\/building.nubank.com\/pt-br\/author\/bruno-rodrigues\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/functional-programming-at-nubank-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6M9","jetpack_sharing_enabled":true,"authors":[{"term_id":2388,"user_id":178110163,"is_guest":0,"slug":"bruno-rodrigues","display_name":"Bruno Rodrigues - Senior Engineering Manager at Nubank","avatar_url":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2022\/10\/avatar_user_178110163_1666700769-96x96.jpg","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/26049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/users\/178110163"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/comments?post=26049"}],"version-history":[{"count":3,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/26049\/revisions"}],"predecessor-version":[{"id":28825,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/26049\/revisions\/28825"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media\/24694"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media?parent=26049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/categories?post=26049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/tags?post=26049"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/ppma_author?post=26049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}