4 minutos para lerPor Igor Matsuzaki – Desenvolvedor na Wavy Esse ano tive a oportunidade de participar da segunda edição da Elixir Brasil, onde conheci muito da comunidade de desenvolvedores e entusiastas da linguagem de programação funcional brasileira, realizada pela Codamos, Elug e Nubank. A linguagem de programação funcional Elixir foi criada pelo brasileiro José Valim, engenheiro de Software pela USP. Para os que nunca ouviram falar vou listar algumas características interessante nesse texto. Confira!
Criar aplicações que são utilizadas por milhões de pessoas, é essencial ter a capacidade de manter muitos processos ao mesmo tempo. É necessário lidar com múltiplos usuários realizando requisições simultâneas sem afetar nossos clientes com serviço lento ou fora do ar. Baseado nesse tipo de cenário o Elixir foi construído e pensado para atender essa problemática.
Elixir roda em cima da Máquina Virtual do Erlang (BEAM), tornando possível rodar a aplicação em múltiplos nós. Ao combinar esses fatores com o sistema distribuído torna-se um efeito colateral uma boa performance da App.
Uma das características mais amada no Elixir é sua tolerância a falhas. Fornecendo mecanismos de segurança que permitem que a aplicação continue funcionando mesmo quando algo dá errado. Os processos alertam sobre uma falha nos processos dependentes, mesmo em outros servidores, para que possam corrigir o problema imediatamente.
Apesar de ser uma linguagem relativamente nova, possui uma grande biblioteca de projetos open-source mantida pela própria comunidade e empresas que usam a linguagem no seu cotidiano. Destaca-se também por desenvolvedores com maior experiência sempre estão ajudando e compartilhando os seus conhecimentos, em redes sociais, meetups e video tutoriais. Como processo natural desse engajamento surgem as conferências, como por exemplo: ElixirConf US, ElixirConf EU, ElixirConfLA. Demonstrando que em todos os cantos o funcional chamou atenção dos desenvolvedores de todo mundo. Nesse movimento o Brasil conta com um evento próprio e será sobre ele que vamos falar um pouco mais aqui.
A segunda edição do evento, contou com 400 participantes, 33 palestrantes, 2 trilhas simultâneas em 2 dias de evento. Nesta edição tivemos como Keynotes: Hugo Baraúna – co-fundador da Plataformatec, Edward Wible -cofundador e CTO do Nubank, Amanda Sposito da Plataformatec e Andrea Leopardi do Elixir-Core-Team. Hugo Baraúna, contou para nós um pouco da histórica da Plataformatec em 2012, ter tomado uma decisão ousada: desenvolver uma nova linguagem de programação, o Elixir. Ressaltando como, 7 anos depois, foi importante o modelo open-source para construção do ecossistema abrangente.
Amanda, Edward, Luciano e Hugo Edward Wible, abriu-se para perguntas da galera presente para contar um pouco dos desafios dos 6 anos de Nubank e qual visão tinha nas decisões para resolver esses desafios, muito embora não fazer parte da stack de tecnologia interna da Nubank o Elixir. Amanda Sposito, representou muito bem a presença da mulher no ambiente tech, apresentou um pouco sobre seus desafios no desenvolvimento e aprendizado da linguagem vindo de outra linguagem. Pontuando muito bem sobre dúvidas do uso de Tabela ETS em relação ao Redis, Doctest em relação de testes, cada ferramenta auxiliando em um proposito particular. Andrea Leopardi, fechou o evento contando sobre como podemos utilizar das melhores características do Elixir, em vias de arquitetura e padrão de projeto, para resolver problemas que farão realmente o funcional brilhar na solução do desafio computacional. Gostaria de ressaltar uma palestra que me chamou atenção “Conjuntos em 3 atos”, por Luciano Ramalho, um grande renomado nome brasileiro na comunidade Python, explorando a mecânica da linguagem. Ao assistir esta palestra se torna nítido e claro o poder do Elixir em resolver os problemas de maneira simples, descomplicada e bem mais enxuta.
Um turbilhão de informações bacana foi passada no Elixir Brasil desse ano, bacana de ver como a comunidade tem resolvido diversos problemas com as abordagens do funcional do Elixir. Dessas abordagens destaco:
Quando você visita um site, ele pode armazenar ou recuperar informações em seu navegador, principalmente na forma de cookies. Essas informações podem ser sobre você, suas preferências ou seu dispositivo e são usadas principalmente para que o site funcione como você espera. Em geral, as informações não o identificam diretamente, mas podem proporcionar uma experiência mais personalizada na internet. Como respeitamos seu direito à privacidade, você pode optar por não permitir alguns tipos de cookies. Clique nos títulos das diferentes categorias para saber mais e alterar nossas configurações padrão. Entretanto, o bloqueio de alguns tipos de cookies pode afetar sua experiência no site e os serviços que podemos oferecer.
Declaração de cookies
Esses cookies são necessários para o funcionamento do site e não podem ser desativados em nossos sistemas. Em geral, eles são definidos apenas em resposta a ações feitas por você que equivalem a uma solicitação de serviços, como a configuração de suas preferências de privacidade, seu acesso ou o preenchimento de formulários. Você pode configurar seu navegador para bloquear ou alertá-lo sobre esses cookies, mas algumas partes do site não funcionarão.
Esses cookies não armazenam nenhuma informação de identificação pessoal.
Detalhes do cookie
Subgrupo de cookies | Cookies | Cookies usados |
---|---|---|
eu5.mm.sdi.sinch.com | ASP.NET_SessionId | Primeira Parte |
community.sinch.com | AWSALB , LiSESSIONID | Primeira Parte |
appengage.sinch.com | dd_cookie_test_ | Primeira Parte |
tickets.sinch.com | atlassian.xsrf.token , JSESSIONID | Primeira Parte |
cockpit2.sinch.com | SESSION | Primeira Parte |
engage.sinch.com | instapage-variant-xxxxxxxx | Primeira Parte |
dashboard.sinch.com | cookietest | Primeira Parte |
brand.sinch.com | PHPSESSID , AWSALBCORS | Primeira Parte |
sinch.com | __cf_bm , OptanonConsent , TEST_AMCV_COOKIE_WRITE , OptanonAlertBoxClosed , onesaasCookieSettings, QueryString, functional-cookies, performance-cookies, targeting-cookies, social-cookies lastExternalReferrer, lastExternalReferrertime, cookies, receive-cookie-deprecation _gdvisitor, _gd_session, _gcl_au, _fbp, _an_uid, _utm_zzses, lpv | Primeira Parte |
mediabrief.com | __cf_bm | Terceiros |
recaptcha.net | _GRECAPTCHA | Terceiros |
cision.com | __cf_bm | Terceiros |
techtarget.com | __cf_bm | Terceiros |
Esses cookies nos permitem contar as visitas e as fontes de tráfego para que possamos medir e melhorar o desempenho do nosso site. Eles nos ajudam a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo site. Todas as informações coletadas por esses cookies são agregadas e, portanto, anônimas.
Se você não permitir esses cookies, não saberemos quando você visitou nosso site e não poderemos monitorar seu desempenho.
Detalhes do cookie
Subgrupo de cookies | Cookies | Cookies usados |
---|---|---|
community.sinch.com | ValueSurveyVisitorCount | Primeira Parte |
buzz.sinch.com | instap-spid.8069 , instap-spses.8069 | Primeira Parte |
appengage.sinch.com | _dd_s | Primeira Parte |
sinch.com | AMP_TLDTEST , rl_page_init_referrer , rl_trait , _vis_opt_s , __q_state_dp56h9oqwhna9CoL , cb_user_id , __hstc , rl_anonymous_id , rl_user_id , initialTrafficSource , _vwo_uuid , _vwo_uuid_v2 , rl_page_init_referring_domain , _hjIncludedInSessionSample_xxx , apt.uid , __hssrc , test_rudder_cookie , cb%3Atest , __hssc , rl_group_trait , _hjAbsoluteSessionInProgress , _vwo_referrer , _vwo_sn , _vis_opt_test_cookie , _hjFirstSeen , _hjTLDTest , _hjSession_xxxxxx , s_sq , _vwo_ds , rl_group_id , _vis_opt_exp_n_combi , s_cc , _gclxxxx , cb_anonymous_id , cb_group_id , apt.sid , rl_session , _uetvid , AMP_899c7e29a9 , _hjSessionUser_xxxxxx | Primeira Parte |
brand.sinch.com | AMP_TEST | Primeira Parte |
engage.sinch.com | no-cache , instap-spses.85bb , instap-spid.85bb | Primeira Parte |
www.sinch.com | d-a8e6 , s-9da4 | Primeira Parte |
nr-data.net | JSESSIONID | Terceiros |
sinch-en.newsroom.cision.com | _ga, _gid | Terceiros |
sinch.in | _ga_xxxxxxxxxx, _gat_UA-XXXXXX-X, _gid, _ga | Terceiros |
g.fastcdn.co | instap-spses.85bb | Terceiros |
hello.learn.mailjet.com | pardot, visitor_id, visitor_id##### | Terceiros |
www.googletagmanager.com | userId | Terceiros |
hello.learn.mailgun.com | visitor_id#####, visitor_id | Terceiros |
dev.visualwebsiteoptimizer.com | _vwo_ssm | Terceiros |
box.com | box_visitor_id | Terceiros |
app.box.com | z, cn | Terceiros |
sinch-tfn.paperform.co | laravel_session | Terceiros |
go.sinch.in | visitor_id#####, visitor_id | Terceiros |
Qualified | __q_local_form_debug | Third party |
Rudderstack | rudder.inProgress, rudder.3156dd1f-7029-4600-ae54-baf147d9af20.queue, rudder.3156dd1f-7029-4600-ae54-baf147d9af20.ack, rudder.3156dd1f-7029-4600-ae54-baf147d9af20.reclaimStart, rudder.3156dd1f-7029-4600-ae54-baf147d9af20.reclaimEnd, | Third party |
6sense | _6senseCompanyDetauls, _6signalTTL | Third party |
Appcues | apc_local_id, apc_user | Third party |
Esses cookies podem ser definidos em nosso site por nossos parceiros de publicidade. Eles podem ser usados por essas empresas para criar um perfil de seus interesses e mostrar anúncios relevantes em outros sites. Eles não armazenam diretamente informações pessoais, mas se baseiam na identificação exclusiva de seu navegador e dispositivo de internet.
Se você não permitir esses cookies, receberá anúncios menos direcionados.
Detalhes do cookie
Subgrupo de cookies | Cookies | Cookies usados |
---|---|---|
investors.sinch.com | visitor_id | Primeira Parte |
community.sinch.com | VISITOR_BEACON , LithiumVisitor | Primeira Parte |
sinch.com | _uetsid , ajs_user_id , _gcl_aw , ajs_group_id , AMCV_ , __utmzzses , _fbp , _gcl_au , AMCVS_ | Primeira Parte |
go.latam.sinch.com | visitor_id##### , pardot | Primeira Parte |
linkedin.com | li_gc, bcookie, lidc, AnalyticsSyncHistory, UserMatchHistory, li_sugr | Terceiros |
pi.pardot.com | lpv151751, pardot | Terceiros |
hsforms.com | _cfuvid | Terceiros |
google.com | CONSENT | Terceiros |
sinch.in | _gclxxxx, _gcl_au | Terceiros |
www.linkedin.com | bscookie | Terceiros |
bing.com | MUID, MSPTC | Terceiros |
www.facebook.com | Terceiros | |
hello.learn.mailgun.com | pardot | Terceiros |
www.youtube.com | TESTCOOKIESENABLED | Terceiros |
dev.visualwebsiteoptimizer.com | uuid | Terceiros |
g2crowd.com | __cf_bm | Terceiros |
pardot.com | visitor_id#####, visitor_id | Terceiros |
tracking.g2crowd.com | _session_id | Terceiros |
hubspot.com | __cf_bm, _cfuvid | Terceiros |
doubleclick.net | test_cookie, IDE | Terceiros |
youtube.com | CONSENT, VISITOR_PRIVACY_METADATA, VISITOR_INFO1_LIVE | Terceiros |
go.sinch.in | pardot | Terceiros |
liadm.com | lidid | Terceiros |
www.google.com | _GRECAPTCHA | Terceiros |
Esses cookies permitem que o site ofereça funcionalidade e personalização aprimoradas. Elas podem ser definidas por nós ou por provedores terceirizados cujos serviços adicionamos às nossas páginas. Se você não permitir esses cookies, alguns ou todos esses serviços poderão não funcionar corretamente.
Detalhes do cookie
Subgrupo de cookies | Cookies | Cookies usados |
---|---|---|
portal.sinch.com | pnctest | Primeira Parte |
partner.appengage.sinch.com | _dd_s | Primeira Parte |
investors.sinch.com | Primeira Parte | |
community.sinch.com | LithiumUserInfo , LithiumUserSecure | Primeira Parte |
tickets.sinch.com | selectedidp | Primeira Parte |
engage.sinch.com | ln_or | Primeira Parte |
cockpit2.sinch.com | CSRF-TOKEN , NG_TRANSLATE_LANG_KEY | Primeira Parte |
sinch.com | apt.temp-xxxxxxxxxxxxxxxxxx , hubspotutk , ajs%3Acookies , cf_clearance , ajs%3Atest , __tld__ , __q_domainTest , pfjs%3Acookies , ajs_anonymous_id | Primeira Parte |
auth.appengage.sinch.com | AUTH_SESSION_ID , KEYCLOAK_3P_COOKIE , KEYCLOAK_3P_COOKIE_SAMESITE , KC_RESTART , AUTH_SESSION_ID_LEGACY | Primeira Parte |
www.recaptcha.net | _GRECAPTCHA | Terceiros |
boxcdn.net | __cf_bm | Terceiros |
d2oeshgsx64tgz.cloudfront.net | cookietest | Terceiros |
sinch-np.paperform.co | XSRF-TOKEN, laravel_session | Terceiros |
vimeo.com | __cf_bm, vuid | Terceiros |
sinch-ca-sc.paperform.co | XSRF-TOKEN, laravel_session | Terceiros |
box.com | site_preference | Terceiros |
app.box.com | bv | Terceiros |
sinch-tfn.paperform.co | XSRF-TOKEN | Terceiros |
cision.com | cf_clearance | Terceiros |
Esses cookies são definidos por uma série de serviços de mídia social que adicionamos ao site para permitir que você compartilhe nosso conteúdo com seus amigos e redes. Eles são capazes de rastrear seu navegador em outros sites e criar um perfil de seus interesses. Isso pode afetar o conteúdo e as mensagens que você vê em outros sites que visita. Se você não permitir esses cookies, talvez não consiga usar ou ver essas ferramentas de compartilhamento.
Detalhes do cookie
Subgrupo de cookies | Cookies | Cookies usados |
---|---|---|
community.sinch.com | ln_or | Primeira Parte |
sinch.in | _fbp | Terceiros |
youtube-nocookie.com | CONSENT | Terceiros |
youtube.com | YSC | Terceiros |