{"id":3326,"date":"2021-06-13T20:13:22","date_gmt":"2021-06-13T23:13:22","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=3326"},"modified":"2021-06-14T07:11:09","modified_gmt":"2021-06-14T10:11:09","slug":"rust-e-eu-como-tem-sido-a-experiencia-e-minha-bibliografia-comentada","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=3326","title":{"rendered":"Rust e eu &#8211; como tem sido a experi\u00eancia e minha bibliografia comentada!"},"content":{"rendered":"\n<p>Recentemente comecei a aprender Rust: tenho apanhando bastante e est\u00e1 sendo um aprendizado imenso para todos n\u00f3s. Neste post conto o que iniciou esta jornada, minhas impress\u00f5es iniciais, oportunidades e tamb\u00e9m uma bibliografia comentada que pode ajudar quem queria come\u00e7ar o aprendizado.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Como tudo come\u00e7ou<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"917\" height=\"497\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/road_ahead_rust.jpg\" alt=\"\" class=\"wp-image-3331\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/road_ahead_rust.jpg 917w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/road_ahead_rust-300x163.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/road_ahead_rust-768x416.jpg 768w\" sizes=\"(max-width: 917px) 100vw, 917px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Rust entrou em nossa vida atrav\u00e9s do estudo arquitetural de um projeto que desenvolvemos para um cliente. Tudo surgiu dos requisitos.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A aplica\u00e7\u00e3o seria executada em computadores desktop.<\/li><li>Estes computadores poderiam ser m\u00e1quinas bem antigas, baseadas em Windows 7 com no m\u00e1ximo 2 Gb de RAM.<\/li><li>A solu\u00e7\u00e3o iria substituir um sistema antigo, baseado em Delphi, cujo custo de licenciamento estava se tornando um problema para o cliente.<\/li><li>Deveria ser uma plataforma de desenvolvimento que fosse suficientemente popular para que pud\u00e9ssemos encontrar m\u00e3o de obra para o projeto no futuro.<\/li><\/ul>\n\n\n\n<p>O primeiro candidato foi o <a href=\"https:\/\/www.lazarus-ide.org\/\">Lazarus<\/a>. Caso n\u00e3o conhe\u00e7a, pense nele como um &#8220;Delphi open source&#8221;. \u00c9 essencialmente uma IDE (bem &#8220;Delphi like&#8221;) que usa o Free Pascal como linguagem de desenvolvimento. D\u00e1 inclusive a possibilidade de importar projetos feitos em Delphi.<\/p>\n\n\n\n<p>O problema \u00e9 que tinha aqui a <a href=\"https:\/\/www.embarcadero.com\/br\/products\/delphi\">\u00faltima vers\u00e3o do Delphi<\/a> no projeto original usando uma s\u00e9rie de componentes propriet\u00e1rios que n\u00e3o tornavam trivial a migra\u00e7\u00e3o para o Lazarus. Al\u00e9m disto infelizmente Lazarus n\u00e3o \u00e9 ainda t\u00e3o popular quanto merecia, raz\u00e3o pela qual o descartamos no projeto. Foi uma pena, pois se tudo desse certo, ter\u00edamos aproveitamento total do c\u00f3digo existente.<\/p>\n\n\n\n<p>Partimos ent\u00e3o para os pr\u00f3ximos candidatos. O .net entrou na fila portanto. Um dos objetivos secund\u00e1rios do projeto era que seria interessante termos uma aplica\u00e7\u00e3o que pudesse ser executada no Windows tamb\u00e9m. Infelizmente no momento atual os toolkits gr\u00e1ficos para desktop no .net quando o assunto \u00e9 multi plataforma ainda est\u00e3o bem limitados. As solu\u00e7\u00f5es <a href=\"https:\/\/dotnet.microsoft.com\/apps\/desktop\">oficiais<\/a>: WinForms, UWP e WPF ainda s\u00e3o &#8220;Windows only&#8221;. Uma solu\u00e7\u00e3o poderia ser usar o <a href=\"https:\/\/www.mono-project.com\/docs\/gui\/gtksharp\/\">GtkSharp<\/a>, mas neste momento ainda n\u00e3o nos sent\u00edamos seguros com ele. Por nossa falta de conhecimento. Al\u00e9m disto, lembra que mencionei Windows 7 l\u00e1 no in\u00edcio? Pois \u00e9: poderia ser um problema.<\/p>\n\n\n\n<p>Pr\u00f3ximo candidato: Java. Yeap: \u00e9 poss\u00edvel criar aplica\u00e7\u00f5es Java desktop que consomem muito pouca mem\u00f3ria. Ent\u00e3o fizemos algumas provas de conceito, mas ainda n\u00e3o era suficiente. <\/p>\n\n\n\n<p>Foi quando fiz a prova de conceito com Rust e, bem: funcionou!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Nossa POC consumia algo em torno de 300 a 400 kb de RAM (foi o que nos ganhou).<\/li><li>O mesmo c\u00f3digo era compilado pra Windows, Linux e macOS.<\/li><li>Encontramos na plataforma Rust tudo o que precis\u00e1vamos para prosseguir.<\/li><li>H\u00e1 uma comunidade crescente que nos facilita encontrar novos membros pra equipe no futuro.<\/li><li>Abre possibilidades de implementa\u00e7\u00e3o que valem \u00e0 pena ser exploradas (mais sobre isto adiante).<\/li><li>Desempenho INSANO para o que precis\u00e1vamos fazer.<\/li><\/ul>\n\n\n\n<p>Tamb\u00e9m chegamos a olhar Go rapidamente, mas confesso que Rust nos ganhou com nossa primeira prova de conceito.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Impress\u00f5es e dificuldades iniciais<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"354\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/primeira_impressao_rust-1024x354.jpg\" alt=\"\" class=\"wp-image-3332\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/primeira_impressao_rust-1024x354.jpg 1024w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/primeira_impressao_rust-300x104.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/primeira_impressao_rust-768x266.jpg 768w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/primeira_impressao_rust.jpg 1191w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Nossa prova de conceito em Rust se mostrou vi\u00e1vel no meu primeiro contato com o &#8220;livro oficial do Rust&#8221; (<a href=\"https:\/\/doc.rust-lang.org\/book\/\">The Book<\/a>). Aos poucos fui fazendo pequenos progressos na linguagem. Saindo do &#8220;Hello World&#8221; cl\u00e1ssico fui caminhando at\u00e9 o ponto em que conseguia executar duas a\u00e7\u00f5es essenciais para nosso projeto:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Manipula\u00e7\u00e3o de uma pequena base relacional (<a href=\"https:\/\/sqlite.org\/\">Sqlite<\/a>) .<\/li><li>Realizar intera\u00e7\u00f5es com dispositivos de rede (integra\u00e7\u00e3o com hardware que fornece comunica\u00e7\u00e3o por TCP\/IP pra ser mais exato).<\/li><\/ul>\n\n\n\n<p>Este foi o momento no qual caiu a ficha pra mim: &#8220;<strong>\u00e9 isto&#8221;<\/strong>, pensei.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prepare-se para alguns conceitos<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pensando em mem\u00f3ria<\/h3>\n\n\n\n<p>Minha maior dificuldade, confesso, foi pensar &#8220;fora da JVM&#8221;: brincando, brincando, estou nela desde 1996 com Java 1.1. Minha dificuldade aqui foi <strong>enorme<\/strong>. Fora isto, a influ\u00eancia que JavaScript, Groovy, Java (\u00e9 claro), C# acabou me atrapalhando um pouco. O que me ajudou, devo confessar, foi a pouqu\u00edssima experi\u00eancia que tive com C\/C++. Fazia tempo que n\u00e3o vivia em um ambiente que n\u00e3o tivesse um garbage collector! <\/p>\n\n\n\n<p>No caso do Rust temos uma gest\u00e3o de mem\u00f3ria bem mais f\u00e1cil que a do C\/C++\/Delphi, \u00e9 baseada no conceito de &#8220;<a href=\"https:\/\/doc.rust-lang.org\/book\/ch04-00-understanding-ownership.html\">ownership<\/a>&#8220;. Este meu &#8220;mais f\u00e1cil&#8221; \u00e9 mentiroso: levei um bom tempo at\u00e9 entender direito este conceito e outros como o de movimenta\u00e7\u00e3o (<a href=\"https:\/\/doc.rust-lang.org\/beta\/rust-by-example\/scope\/move.html\">move<\/a>) em mem\u00f3ria. E conceitos que nem pensava tanto mais, como mem\u00f3ria heap e stack voltaram ao meu dia a dia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Organizando o c\u00f3digo e ferramental b\u00e1sico<\/h3>\n\n\n\n<p>O  modo como m\u00f3dulos s\u00e3o criados em Rust tamb\u00e9m me deu v\u00e1rios n\u00f3s na cabe\u00e7a. O contato inicial foi \u00e1rduo: na realidade, talvez tenha sido minha maior dificuldade at\u00e9 agora, pois h\u00e1 ali uma solu\u00e7\u00e3o <strong>muito rica<\/strong> e <strong>nada intuitiva em sua riqueza.<\/strong> Mas n\u00e3o fique triste: com alguma pr\u00e1tica a coisa se torna mais clara e tudo flui.<\/p>\n\n\n\n<p>Como lidamos com o processo de constru\u00e7\u00e3o e obten\u00e7\u00e3o de depend\u00eancias \u00e9 maravilhoso pra dizer o m\u00ednimo. Quando peguei pela primeira vez lembrava dos meus traumas com o make (nunca fui bom de C\/C++). No Rust h\u00e1 uma ferramenta maravilhosa chamada <a href=\"https:\/\/doc.rust-lang.org\/cargo\/\">Cargo<\/a>. Pense nele como o Maven\/Gradle do Java, o NuGet do .net, o Composer do PHP ou o NPM\/Webpack do JavaScript, mas voltado para uma linguagem de mais baixo n\u00edvel. Como minha experi\u00eancia com C\/C++ l\u00e1 atr\u00e1s teria sido melhor se conhecesse algo assim!<\/p>\n\n\n\n<p>O Cargo tamb\u00e9m padroniza como voc\u00ea organiza seu c\u00f3digo fonte, e \u00e9 assustadoramente simples. Em pouqu\u00edssimo tempo voc\u00ea j\u00e1 saber\u00e1 tudo o que precisa pra poder trabalhar. Ali\u00e1s, a pr\u00f3pria <a href=\"https:\/\/www.rust-lang.org\/learn\/get-started\">instala\u00e7\u00e3o do Rust<\/a> \u00e9 ridiculamente simples.<\/p>\n\n\n\n<p>E como IDE, tenho usado o VSCode mesmo, que atende 100% do que preciso. Ali\u00e1s, me choca como esta criatura evolu\u00ed r\u00e1pido. Em pouco tempo t\u00e1 substituindo meu Eclipse e Visual Studio!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">N\u00e3o \u00e9 a orienta\u00e7\u00e3o a objetos que voc\u00ea est\u00e1 acostumado<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/oo_rust.jpg\" alt=\"\" class=\"wp-image-3333\" width=\"402\" height=\"288\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/oo_rust.jpg 601w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/oo_rust-300x215.jpg 300w\" sizes=\"(max-width: 402px) 100vw, 402px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Se voc\u00ea, como eu, v\u00eam de um background como Java, .net ou PHP talvez sinta dificuldades aqui. Isto por que Rust pelo que pude entender n\u00e3o \u00e9 uma linguagem orientada a objetos em si, mas sim uma linguagem que possui aspectos de orienta\u00e7\u00e3o a objetos. (achou confuso? D\u00e1 uma lida nisto <a href=\"https:\/\/doc.rust-lang.org\/book\/ch17-00-oop.html\">aqui<\/a>.)<\/p>\n\n\n\n<p>Em Rust a estrutura mais pr\u00f3xima que temos de uma classe s\u00e3o as structs (algo que sempre quis ver no Java, e que existe no .net). Estas cont\u00e9m essencialmente apenas os dados que ser\u00e3o trafegados, e o comportamento associado, o fazemos a partir da implementa\u00e7\u00e3o de traits. Se voc\u00ea v\u00eam do Java, fa\u00e7a uma analogia com o conceito de interfaces. Uma struct pode ter inclusive in\u00fameras traits (conjunto de m\u00e9todos) implementados, o que d\u00e1 at\u00e9 um gostinho de heran\u00e7a m\u00faltipla.<\/p>\n\n\n\n<p>Tamb\u00e9m n\u00e3o h\u00e1 heran\u00e7a em Rust: voc\u00ea ir\u00e1 trabalhar essencialmente com composi\u00e7\u00e3o aqui.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9 uma linguagem de mais baixo n\u00edvel, e voc\u00ea deve saber disto<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"359\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_baremetal.jpg\" alt=\"\" class=\"wp-image-3334\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_baremetal.jpg 707w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_baremetal-300x152.jpg 300w\" sizes=\"(max-width: 707px) 100vw, 707px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Este aspecto \u00e9 essencial e voc\u00ea deve ter isto em mente sempre: n\u00e3o estamos falando de uma linguagem de alto n\u00edvel como Java ou C# aqui. Voc\u00ea est\u00e1 muito mais pr\u00f3ximo do hardware, tanto que \u00e9 uma linguagem que talvez substitua C++ na Microsoft como linguagem para <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/dev-environment\/rust\/\">desenvolvimento Windows<\/a>.<\/p>\n\n\n\n<p>Isto quer dizer que voc\u00ea precisa se preocupar com gerenciamento de mem\u00f3ria, que muita coisa precisa ser feita &#8220;manualmente&#8221;. Por exemplo: ainda n\u00e3o h\u00e1 uma forma de se definir facilmente valores default para campos de structs (eu sei da trait Default, mas ainda n\u00e3o \u00e9 t\u00e3o simples assim). Se voc\u00ea j\u00e1 programou em C++, pense em Rust como um &#8220;C++ muito mais amig\u00e1vel, com ferramental de linguagens de alto n\u00edvel&#8221;.<\/p>\n\n\n\n<p>Voc\u00ea v\u00ea o compilador muito mais presente: h\u00e1 macros em Rust que lembram muito o pr\u00e9-processador que temos no C\/C++ e Delphi, por exemplo. O pr\u00f3prio processo de compila\u00e7\u00e3o, que \u00e9 por liga\u00e7\u00e3o est\u00e1tica (padr\u00e3o), facilitando a implanta\u00e7\u00e3o, salta aos olhos nesta primeira impress\u00e3o. <\/p>\n\n\n\n<p>( E por falar em compilador&#8230; \u00e9 incr\u00edvel o tanto que voc\u00ea aprende com ele! As mensagens de erro s\u00e3o muito instrutivas. Ele tamb\u00e9m \u00e9 minha maior reclama\u00e7\u00e3o: ainda o acho bem lento se comparado com o que tenho em Java )<\/p>\n\n\n\n<p>Mas vai al\u00e9m disto, voc\u00ea pode, por exemplo, realizar o desenvolvimento de s<a href=\"https:\/\/www.rust-lang.org\/what\/embedded\">olu\u00e7\u00f5es embarcadas com Rust<\/a>, algo que n\u00e3o \u00e9 t\u00e3o natural assim em Java ou C++, por exemplo. E isto abre uma possibilidade IMENSA para todos n\u00f3s que estamos acostumados a desenvolver na maior parte das vezes aplica\u00e7\u00f5es web.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Bibliografia comentada<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"569\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg\" alt=\"\" class=\"wp-image-3336\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg 958w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia-300x178.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia-768x456.jpg 768w\" sizes=\"(max-width: 958px) 100vw, 958px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>L\u00e1 atr\u00e1s neste post mencionei o livro oficial do Rust, &#8220;The Book&#8221;, certo? Em teoria este seria O caminho pra se aprender Rust, seria a fonte prim\u00e1ria do aprendizado, mas na minha experi\u00eancia, n\u00e3o foi.<\/p>\n\n\n\n<p>H\u00e1 um problema com este livro: ele menciona conceitos que s\u00f3 ser\u00e3o descritos muitas vezes muitos cap\u00edtulos a frente. E isto dificulta horrores o aprendizado de quem est\u00e1 come\u00e7ando. Sendo assim nesta se\u00e7\u00e3o te ajudo a aprender mais r\u00e1pido Rust com minhas sugest\u00f5es de leitura.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por onde come\u00e7ar: o livro do Castellani!<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"450\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/livro_rust_casa_do_codigo.jpg\" alt=\"\" class=\"wp-image-3337\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/livro_rust_casa_do_codigo.jpg 527w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/livro_rust_casa_do_codigo-300x256.jpg 300w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/figure><\/div>\n\n\n\n<p>Sem sombra de d\u00favidas este livro t\u00e1 no top 5 dos livros t\u00e9cnicos que li este ano. \u00c9 publicado pela editora Casa do C\u00f3idgo e pode ser comprado neste <a href=\"https:\/\/www.casadocodigo.com.br\/products\/livro-rust\">link<\/a>. Este livro tem o que o livro oficial do Rust n\u00e3o: os cap\u00edtulos s\u00e3o quase todos auto contidos.<\/p>\n\n\n\n<p>Isto quer dizer que na esmagadora maioria das vezes, quando voc\u00ea termina a leitura de um cap\u00edtulo, viu nele tudo o que precisa. Claro, h\u00e1 men\u00e7\u00f5es a recursos que n\u00e3o s\u00e3o tratados no pr\u00f3prio livro do Catellani (como as diretrizes ([#algo]), mas s\u00e3o exce\u00e7\u00e3o \u00e0 regra. <\/p>\n\n\n\n<p>E a linguagem tamb\u00e9m \u00e9 muito boa: fiquei um final de semana inteiro debru\u00e7ado sobre este material e foi a\u00ed que comecei a ficar REALMENTE produtivo na linguagem. Entenda: este livro n\u00e3o \u00e9 uma descri\u00e7\u00e3o completa da linguagem, mas um kickstart.<\/p>\n\n\n\n<p>O livro vai at\u00e9 tratar de alguns conceitos mais avan\u00e7ados, como as macros, mas n\u00e3o \u00e9 ali que ele brilha: \u00e9 ao nos dar a base pra que a\u00ed sim, possamos entender melhor o restante do material que vou citar aqui.<\/p>\n\n\n\n<p>N\u00e3o \u00e9 exagero: este foi o livro que viabilizou Rust pra mim. \u00c9 muito bom ver algo t\u00e3o bom escrito em l\u00edngua portuguesa. Obrigado Castellani!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ap\u00f3s o livro do Catellani<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The book<\/h3>\n\n\n\n<p>Ap\u00f3s o livro do Catellani voltei para o &#8220;The Book&#8221;. \u00c9 um material que voc\u00ea obrigatoriamente precisar\u00e1 ler de cabo a rabo, e com <strong>muita paci\u00eancia<\/strong>. \u00c9 tamb\u00e9m important\u00edssimo que voc\u00ea contenha sua ansiedade na leitura pois realmente: o tempo inteiro nos cap\u00edtulos s\u00e3o feitas men\u00e7\u00f5es a conceitos que s\u00f3 ser\u00e3o descritos muito, muito, muito adiante.<\/p>\n\n\n\n<p>Apesar destes problemas, \u00e9 um excelente livro. Vai al\u00e9m da linguagem inclusive. E \u00e9 de gra\u00e7a! Voc\u00ea pode ler <a href=\"https:\/\/doc.rust-lang.org\/book\/\">aqui<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Rustlings Course<\/h3>\n\n\n\n<p>Existe um <a href=\"https:\/\/github.com\/rust-lang\/rustlings\/\">projeto no Github chamado &#8220;rustlings&#8221; <\/a>que \u00e9 essencialmente um tutorial interativo de Rust. Seu funcionamento \u00e9 muito simples:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Instale o Rustlings ou clone o reposit\u00f3rio.<\/li><li>Execute o Rustlings, que ir\u00e1 te mostrar uma s\u00e9rie de exerc\u00edcios.<\/li><\/ul>\n\n\n\n<p>Em sua maioria os exerc\u00edcios consistem em corrigir c\u00f3digo que esteja quebrado. E isto \u00e9 lindo, pois voc\u00ea vai estar treinando manuten\u00e7\u00e3o de c\u00f3digo Rust enquanto aprende a linguagem.<\/p>\n\n\n\n<p>Executei o The Rustlings Course junto com o &#8220;The Book&#8221;. Me ajudou horrores!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Material auxiliar<\/h3>\n\n\n\n<p><a href=\"https:\/\/doc.rust-lang.org\/stable\/rust-by-example\/\">Rust by Example<\/a> &#8211; dispon\u00edvel tamb\u00e9m no site oficial da linguagem, cont\u00e9m um monte de exemplos que ajudam a entender tudo sobre a linguagem. Usei muito como fonte de refer\u00eancia quando queria ver como era aplicada alguma feature da linguagem.<\/p>\n\n\n\n<p><a href=\"https:\/\/crates.io\">crates.io<\/a> &#8211; \u00c9 o &#8220;Maven Central&#8221;\/&#8221;NPM&#8221;\/&#8221;Nuget&#8221; do Rust aonde voc\u00ea encontrar\u00e1 todas as bibliotecas escritas pela comunidade. O bacana \u00e9 que a linguagem incentiva muito a produ\u00e7\u00e3o de documenta\u00e7\u00e3o, e pra diversas bibliotecas a documenta\u00e7\u00e3o \u00e9 muito, muito, muito boa.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lpalmieri.com\/posts\/2020-05-24-zero-to-production-0-foreword\/\">Zero to Production<\/a> &#8211; \u00e9 um livro maravilhoso sobre como desenvolver aplica\u00e7\u00f5es web com Rust usando o framework Actix Web e que cobre todo o ciclo de desenvolvimento, desde a defini\u00e7\u00e3o dos requisitos at\u00e9 a configura\u00e7\u00e3o da integra\u00e7\u00e3o cont\u00ednua, testes, implanta\u00e7\u00e3o, seguran\u00e7a, performance, etc. <strong>Muito bom<\/strong>.<\/p>\n\n\n\n<p><a href=\"https:\/\/rocket.rs\/v0.4\/guide\/\">Guia do Rocket<\/a> &#8211; Rocket \u00e9 um framework pra desenvolvimento web muito popular no Rust. N\u00e3o o adotamos por que ainda requer o uso de vers\u00f5es inst\u00e1veis do Rust pra ser executado, mas seguindo o seu guia foi a primeira vez que escrevi uma aplica\u00e7\u00e3o web com a linguagem. Por isto acredito que seja uma refer\u00eancia interessante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajuda da comunidade no \/dev\/All<\/h3>\n\n\n\n<p>Criamos um grupo de estudos de Rust no Discord do \/dev\/All. O pessoal tem ajudado bastante ali: j\u00e1 realizamos alguns encontros virtuais e tenho aprendido HORRORES l\u00e1. <a href=\"https:\/\/pothix.com\/\">Pothix<\/a> e o <a href=\"https:\/\/github.com\/jcbritobr\">J\u00falio Brito<\/a> tem me ensinado MUITO MUITO ali. Convido todos voc\u00eas a participar clicando <a href=\"https:\/\/discord.gg\/JyXzTcP\">neste link<\/a>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Oportunidades<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"847\" height=\"386\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_oportunidades.jpg\" alt=\"\" class=\"wp-image-3338\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_oportunidades.jpg 847w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_oportunidades-300x137.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_oportunidades-768x350.jpg 768w\" sizes=\"(max-width: 847px) 100vw, 847px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Rust viabiliza alguns mercados que considero muito interessantes: o primeiro deles diz respeito ao desenvolvimento de aplica\u00e7\u00f5es web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Desenvolvimento web de baix\u00edssimo custo computacional<\/h2>\n\n\n\n<p>Lembra que mencionei que nossa aplica\u00e7\u00e3o era pra ser executada no desktop? Ent\u00e3o: ela \u00e9 executada no desktop, mas como um servidor web. H\u00e1 frameworks muito interessantes para o desenvolvimento de aplica\u00e7\u00f5es web com Rust. Validamos tr\u00eas op\u00e7\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/rocket.rs\/\">Rocket<\/a><\/li><li><a href=\"https:\/\/actix.rs\/\">Actix Web<\/a><\/li><li><a href=\"https:\/\/github.com\/gotham-rs\/gotham\">Gotham<\/a><\/li><\/ul>\n\n\n\n<p>No que diz respeito \u00e0 documenta\u00e7\u00e3o, Rocket e Actix Web empatam: ambos possuem <strong>excelente<\/strong> documenta\u00e7\u00e3o. O que me afasta do Rocket ainda \u00e9 o fato deste precisar de vers\u00f5es inst\u00e1veis do Rust para executar, o que n\u00e3o nos deixa seguros neste momento.<\/p>\n\n\n\n<p>J\u00e1 o Gotham, que tamb\u00e9m \u00e9 bem interessante, perde pela documenta\u00e7\u00e3o, que t\u00e1 bem a par das demais, mas \u00e9 relativamente f\u00e1cil de usar, por isto o levamos em considera\u00e7\u00e3o. <\/p>\n\n\n\n<p>Como mencionei, optamos pelo Actix: boa documenta\u00e7\u00e3o, usa a vers\u00e3o est\u00e1vel do Rust e mostrou excelente desempenho. E este \u00e9 o ponto: quando nossa prova de conceito estava pronta, realizando 60 consultas por segundo ao nosso equipamento, persistindo os dados em uma base Sqlite e publicando os resultados na web, sabe qual foi nosso consumo final de mem\u00f3ria? <strong>Senta a\u00ed: 1.5 MEGABYTES.<\/strong><\/p>\n\n\n\n<p>E quando aplicamos testes de carga em nossa prova de conceito, com mil requisi\u00e7\u00f5es por segundo aos endpoints que esta disponibilizava, o consumo de mem\u00f3ria ficava em torno de 40 a 50 mb. INCR\u00cdVEL.<\/p>\n\n\n\n<p>Ent\u00e3o abre-se a\u00ed uma possibilidade riqu\u00edssima para o desenvolvimento desktop: como podemos servir al\u00e9m dos endpoints tamb\u00e9m conte\u00fado est\u00e1tico, embarcamos uma interface feita em React em nossa prova de conceito e voil\u00e1! Um servidor web simples, bem funcional, consumindo o m\u00ednimo de recursos computacionais e, de quebra, ainda com uma interface moderna. O Chrome consome ordens de magnitude mais mem\u00f3ria que nossa solu\u00e7\u00e3o.<\/p>\n\n\n\n<p>E quando levamos em considera\u00e7\u00e3o a condi\u00e7\u00e3o atual do pa\u00eds, com D\u00f3lar que chega perto de seis reais, a possibilidade de usarmos servidores bem menores na cloud entra como uma oportunidade real.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Embarcados<\/h2>\n\n\n\n<p>Rust permite desenvolver aplica\u00e7\u00f5es embarcadas usando a mesma linguagem. Ent\u00e3o com basicamente o mesmo conjunto de conhecimentos voc\u00ea pode entrar neste mercado que pode ser <strong>muito<\/strong> lucrativo e at\u00e9 mesmo mais interessante que o desenvolvimento web convencional.<\/p>\n\n\n\n<p>Se voc\u00ea n\u00e3o tem conhecimento algum sobre desenvolvimento de software embarcado, \u00e9 disponibilizado inclusive um <strong>excelente material<\/strong> no site oficial da linguagem que pode ser acessado <a href=\"https:\/\/docs.rust-embedded.org\/discovery\/\">neste link<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Desenvolvimento Windows nativo<\/h2>\n\n\n\n<p>O Windows tem uma API poderos\u00edssima que \u00e9 muito pouco usada pela esmagadora maioria dos desenvolvedores pois \u00e9 mais amig\u00e1vel pra quem programa em C++ que, infelizmente, n\u00e3o \u00e9 t\u00e3o difundida entre n\u00f3s (ao menos n\u00e3o na minha bolha). Com o investimento que a Microsoft est\u00e1 fazendo em Rust, hoje \u00e9 poss\u00edvel acessar <strong>toda a API nativa do Windows<\/strong> com a linguagem. <\/p>\n\n\n\n<p>Isto \u00e9 poss\u00edvel com o projeto Rust for Windows que voc\u00ea pode acessar <a href=\"https:\/\/github.com\/microsoft\/windows-rs\">neste link<\/a>. At\u00e9 ent\u00e3o estava achando a plataforma Windows irrelevante gra\u00e7as \u00e0 web, mas h\u00e1 uma oportunidade aqui. A partir do momento em que estas APIs se tornam mais acess\u00edveis, h\u00e1 a possibilidade de se fazer um dinheiro interessante com o desenvolvimento de aplica\u00e7\u00f5es nativas pra Windows. Vamos ver como ser\u00e1 o Windows 11.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Nem tudo \u00e9 lindo<\/h1>\n\n\n\n<p>Rust seria uma linguagem perfeita se tivesse a acessibilidade do Groovy. Infelizmente n\u00e3o \u00e9 o caso: justamente por ser uma linguagem de mais baixo n\u00edvel e ter um modelo de desenvolvimento mais procedural (com muita coisa funcional tamb\u00e9m), quem est\u00e1 acostumado com o &#8220;OO padr\u00e3o Java\/.net\/php&#8221; vai apanhar bastante: \u00e9 o meu caso.<\/p>\n\n\n\n<p>O principal problema \u00e9 a curva de aprendizado, mas acredito que a sua ser\u00e1 melhor que a minha se seguir a bibliografia que mencionei, pois o livro do Catellani realmente ajuda muito.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Indo em frente<\/h1>\n\n\n\n<p>Estamos em nossos primeiros projetos com Rust: h\u00e1 a limita\u00e7\u00e3o da curva de aprendizado (\u00e9 f\u00e1cil pra quem j\u00e1 aprendeu), mas as oportunidades e os resultados que estamos obtendo tem justificado o esfor\u00e7o. Temos criado projetos absurdamente eficientes com Rust, e isto \u00e9 muito animador.<\/p>\n\n\n\n<p>Pessoalmente, fico satisfeito tamb\u00e9m em estar temporariamente (por quanto tempo?) um pouco mais distante do Java este ano: Rust, JavaScript, Python e Ruby tem sido minhas principais ferramentas neste per\u00edodo.<\/p>\n\n\n\n<p>Estou pensando em escrever mais a respeito de Rust aqui no blog no futuro, vamos ver o que sa\u00ed. Enquanto isto, tenho aprendido horrores no Discord da Taverna. Aparece l\u00e1 depois pra gente conversar, ok? <a href=\"https:\/\/discord.gg\/JyXzTcP\">De novo o link.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!<\/p>\n","protected":false},"author":1,"featured_media":3327,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[122],"tags":[124,125,123],"class_list":["post-3326","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rust","tag-bibliografia","tag-desenvolvimento-web","tag-rust"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rust e eu - como tem sido a experi\u00eancia e minha bibliografia comentada! - \/dev\/Kico<\/title>\n<meta name=\"description\" content=\"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=3326\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rust: como tem sido a experi\u00eancia com bibliografia comentada!\" \/>\n<meta property=\"og:description\" content=\"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=3326\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-13T23:13:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-14T10:11:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"958\" \/>\n\t<meta property=\"og:image:height\" content=\"569\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Rust e eu: como tem sido a experi\u00eancia com bibliografia comentada!\" \/>\n<meta name=\"twitter:description\" content=\"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=3326\",\"name\":\"Rust e eu - como tem sido a experi\u00eancia e minha bibliografia comentada! - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png\",\"datePublished\":\"2021-06-13T23:13:22+00:00\",\"dateModified\":\"2021-06-14T10:11:09+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"description\":\"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!\",\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=3326\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3326#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rust e eu &#8211; como tem sido a experi\u00eancia e minha bibliografia comentada!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rust e eu - como tem sido a experi\u00eancia e minha bibliografia comentada! - \/dev\/Kico","description":"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!","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:\/\/devkico.itexto.com.br\/?p=3326","og_locale":"pt_BR","og_type":"article","og_title":"Rust: como tem sido a experi\u00eancia com bibliografia comentada!","og_description":"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!","og_url":"https:\/\/devkico.itexto.com.br\/?p=3326","og_site_name":"\/dev\/Kico","article_published_time":"2021-06-13T23:13:22+00:00","article_modified_time":"2021-06-14T10:11:09+00:00","og_image":[{"width":958,"height":569,"url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg","type":"image\/jpeg"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_title":"Rust e eu: como tem sido a experi\u00eancia com bibliografia comentada!","twitter_description":"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!","twitter_image":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust_bibliografia.jpg","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=3326","url":"https:\/\/devkico.itexto.com.br\/?p=3326","name":"Rust e eu - como tem sido a experi\u00eancia e minha bibliografia comentada! - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png","datePublished":"2021-06-13T23:13:22+00:00","dateModified":"2021-06-14T10:11:09+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"description":"Como tem sido nossa experi\u00eancia com Rust e uma bibliografia comentada para ajudar quem est\u00e1 dando os primeiros passos na linguagem!","breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3326#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=3326"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=3326#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=3326#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Rust e eu &#8211; como tem sido a experi\u00eancia e minha bibliografia comentada!"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2021\/06\/rust.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3326"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3326"}],"version-history":[{"count":6,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3326\/revisions"}],"predecessor-version":[{"id":3356,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3326\/revisions\/3356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/3327"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}