{"id":2786,"date":"2018-07-15T22:31:28","date_gmt":"2018-07-16T01:31:28","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=2786"},"modified":"2018-07-15T22:31:28","modified_gmt":"2018-07-16T01:31:28","slug":"eu-e-o-angular","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=2786","title":{"rendered":"Eu e o Angular"},"content":{"rendered":"<p>Semana passada colocamos no ar a nova vers\u00e3o do \/dev\/All que mudou radicalmente sua arquitetura (detalhes n\u00e3o t\u00e9cnicos neste <a href=\"http:\/\/www.itexto.com.br\/site\/um-novo-dev-all-o-que-ha-de-novo\/\">link<\/a>): dentre as principais mudan\u00e7as est\u00e1 o fato de que agora a interface com o usu\u00e1rio \u00e9 um SPA. Este \u00e9 o primeiro post no qual compartilho com voc\u00eas algumas das coisas que aprendi no processo.<\/p>\n<p>Note que esta \u00e9 a vis\u00e3o de algu\u00e9m que tinha como ferramenta principal para o desenvolvimento de aplica\u00e7\u00f5es SPA o Vue.js. Sendo assim minhas impress\u00f5es em sua maior parte fazem uma compara\u00e7\u00e3o com ele. Leve em considera\u00e7\u00e3o que s\u00e3o &#8220;novas novas impress\u00f5es&#8221; a respeito do Angular. Muita coisa pode mudar conforme minha experi\u00eancia progride.<\/p>\n<h2>Por que n\u00e3o gostava<\/h2>\n<p>Uma das principais raz\u00f5es pelas quais aprendi <a href=\"https:\/\/devkico.itexto.com.br\/?p=2500\">Vue.js<\/a>, confesso, foi para n\u00e3o usar o Angular. Al\u00e9m do trauma da quebra de compatibilidade da vers\u00e3o 1 para a 2, naquele momento ele\u00a0<strong>me parecia muito mais complexo do que eu precisava.\u00a0<\/strong>E o fato da vers\u00e3o 2 ser essencialmente TypeScript e n\u00e3o mais JavaScript tamb\u00e9m me incomodava (que ironia, eu, que amo Grails, dizer isto&#8230;). Tamb\u00e9m me incomodava horrores a documenta\u00e7\u00e3o oficial que peguei na \u00e9poca: era horr\u00edvel.<\/p>\n<p>Eu j\u00e1 havia experimentado o Angular em projetos legados e, acredito, isto contribuiu tamb\u00e9m para minha p\u00e9ssima impress\u00e3o original do\u00a0<strong>framework<\/strong>. Vue.js era para mim como um copo d&#8217;\u00e1gua para quem estava no inferno. O tempo passou e acabei dominando o Vue, que se tornou at\u00e9 agora minha ferramenta favorita para o desenvolvimento de SPAs, aplica\u00e7\u00f5es h\u00edbridas e qualquer projeto que envolvesse interatividade mais rica. <strong>At\u00e9 agora<\/strong>.<\/p>\n<p>Mas o grande lance \u00e9 que minha vis\u00e3o a respeito do Angular estava errada. Enquanto o Vue \u00e9 essencialmente focado na camada de visualiza\u00e7\u00e3o (e essencialmente apenas nela), n\u00e3o havia ainda atinado o Angular como um <a href=\"https:\/\/devkico.itexto.com.br\/?p=2760\">framework, mas sim como uma biblioteca<\/a>.<\/p>\n<p>Resumindo, minha avers\u00e3o ao Angular era resultado destes fatores:<\/p>\n<ul>\n<li>A documenta\u00e7\u00e3o de anos atr\u00e1s que era bem ruim.<\/li>\n<li>O trauma da quebra de compatibilidade da vers\u00e3o 1 para a 2 do Angular (acaba que sempre penso nos projetos a m\u00e9dio e longo prazo).<\/li>\n<li>O fato de se mostrar mais complexo do que minha real necessidade na \u00e9poca.<\/li>\n<li>A ado\u00e7\u00e3o do TypeScript como linguagem e n\u00e3o JavaScript.<\/li>\n<li>Eu estar ignorando o aspecto essencial do Angular: o deste ser um framework (este doeu) para aplica\u00e7\u00f5es maiores.<\/li>\n<\/ul>\n<h2>Por que estou gostando<\/h2>\n<p>O que me fez realmente gostar do Angular foi criar vergonha na cara e perceber que j\u00e1 havia passado da hora de aprender o framework a fundo.<\/p>\n<p>Chegou um dia no qual quis finalmente transformar a interface do \/dev\/All em um SPA e me peguei adotando o Vue.js sem sequer me questionar a respeito. Por que apenas Vue.js estava no meu radar? Era hora de sair da zona de conforto, o que me fez passear pelo React e&#8230; Angular novamente.<\/p>\n<h3>Um bom livro e uma melhor documenta\u00e7\u00e3o<\/h3>\n<p>Dado que a documenta\u00e7\u00e3o oficial do Angular que conhecia at\u00e9 ent\u00e3o era um lixo, optei por desta vez escolher um bom livro ao inv\u00e9s da documenta\u00e7\u00e3o oficial, e acertei. Comprei o &#8220;<a href=\"https:\/\/www.manning.com\/books\/angular-in-action\">Angular in Action&#8221;<\/a>, de Jeremy Wilken, publicado pela editora Manning. Sem sombra de d\u00favidas foi uma das melhores leituras do ano: \u00e9 um excelente ponto de partida pra quem est\u00e1 come\u00e7ando, e como foi publicado em mar\u00e7o de 2018, eu podia ter certeza de que estava lidando com uma das \u00faltimas vers\u00f5es do framework (olha o trauma se manifestando!).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2787\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_in_action.png\" alt=\"\" width=\"271\" height=\"352\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_in_action.png 271w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_in_action-231x300.png 231w\" sizes=\"(max-width: 271px) 100vw, 271px\" \/><\/p>\n<p>Logo na sequ\u00eancia resolvi visitar novamente a documenta\u00e7\u00e3o e, que surpresa! Est\u00e1 MUITO melhor. Segui o tutorial de uma ponta a outra e, numa experi\u00eancia que come\u00e7ou em uma sexta-feira a noite e terminou no domingo, j\u00e1 havia devorado uns 90% da documenta\u00e7\u00e3o oficial. Esta foi a primeira mudan\u00e7a: <strong>um bom livro e uma documenta\u00e7\u00e3o muito melhor<\/strong>.<\/p>\n<h3>O ferramental<\/h3>\n<p>Mas mais do que a documenta\u00e7\u00e3o, me encantou o\u00a0<strong>ferramental<\/strong> do Angular. Quando comecei, muitos anos atr\u00e1s, ainda n\u00e3o havia a ferramenta de linha de comando (ao menos eu n\u00e3o a conhecia). E caramba, como ela ajuda! Foi gra\u00e7as a ela que o aspecto\u00a0<strong>framework<\/strong> do Angular ficou n\u00edtido pra mim (e at\u00e9 agora me pergunto: por que ignorei o essencial por tanto tempo???). N\u00e3o s\u00f3 isto: o VS Code tamb\u00e9m oferece um suporte\u00a0<strong>maravilhoso\u00a0<\/strong>ao Angular e TypeScript (claro, \u00e9 cria\u00e7\u00e3o da Microsoft). Este foi o segundo fator:\u00a0<strong>o ferramental do Angular \u00e9 incr\u00edvel e est\u00e1 muito \u00e0 frente do que eu tinha no Vue.js<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2788\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/vscode.png\" alt=\"\" width=\"204\" height=\"203\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/vscode.png 512w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/vscode-150x150.png 150w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/vscode-300x300.png 300w\" sizes=\"(max-width: 204px) 100vw, 204px\" \/><\/p>\n<p>Ali\u00e1s, diga-se de passagem, minha experi\u00eancia com o VS Code trabalhando no \/dev\/All foi t\u00e3o boa que este acabou substituindo meu editor favorito at\u00e9 ent\u00e3o, que era o Atom.<\/p>\n<h4>Ionic framework<\/h4>\n<p>\u00c9 importante mencionar aqui outra raz\u00e3o importante que me motivou a estudar o Angular: <a href=\"http:\/\/ionicframework.com\">Ionic<\/a>. Apesar de haverem planos de no futuro este suportar o Vue.js,\u00a0<strong>hoje<\/strong> ele suporta BEM mesmo \u00e9 o Angular. De todos os frameworks h\u00edbridos que analisei, de longe Ionic foi o que, de novo, apresentou o melhor ferramental (isto merece um post no futuro).<\/p>\n<p>(e olha que na itexto existe um framework que desenvolvemos para aplica\u00e7\u00f5es h\u00edbridas, baseado em Vue.js, que \u00e9 simplesmente incr\u00edvel)<\/p>\n<h3>TypeScript<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2789\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_typescript.png\" alt=\"\" width=\"357\" height=\"212\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_typescript.png 622w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/07\/angular_typescript-300x178.png 300w\" sizes=\"(max-width: 357px) 100vw, 357px\" \/><\/p>\n<p>Motivos irracionais me levaram a postergar o Angular por causa do TypeScript, confesso. Mas quando me atinei que uso Groovy no mundo Java esta irracionalidade foi <strong>aniquilada<\/strong>. Pouco a pouco fui aprendendo TypeScript e me encantando com a linguagem. Percebi que alguns dos erros comuns que cometemos com JavaScript n\u00e3o ocorrem no TypeScript: s\u00f3 isto j\u00e1 era raz\u00e3o para que a linguagem fosse adotada.<\/p>\n<p>Devo confessar que parte da minha crescente ado\u00e7\u00e3o da linguagem se deu por causa do VSCode. Como ele me oferece um excelente suporte \u00e0 linguagem (code complete, detec\u00e7\u00e3o de erros), ele me ajudou HORRORES a aprender os detalhes da linguagem e como ela funciona.<\/p>\n<p>Sinceramente, n\u00e3o sei se o TypeScript ter\u00e1 l\u00e1 uma grande longevidade dado que o JavaScript pouco a pouco vai se tornando um &#8220;TypeScript padr\u00e3o&#8221;. Entretanto,\u00a0<strong>hoje<\/strong>, e pelo menos pelos pr\u00f3ximos tr\u00eas ou quatro anos, a linguagem se manter\u00e1, o que em si j\u00e1 justifica sua ado\u00e7\u00e3o.<\/p>\n<p>(agora, sua documenta\u00e7\u00e3o oficial, achei bem ruinzinha viu)<\/p>\n<h3>O framework em si<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-2761\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/06\/framework.jpg\" alt=\"\" width=\"373\" height=\"280\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/06\/framework.jpg 800w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/06\/framework-300x225.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2018\/06\/framework-768x576.jpg 768w\" sizes=\"(max-width: 373px) 100vw, 373px\" \/><\/p>\n<p>Quando comecei a entender mais a fundo como o Angular organizava e orquestrava seus elementos me apaixonei por ele. O conceito de m\u00f3dulos, por exemplo, achei incr\u00edvel. De repente encontrei uma maneira muito mais interessante de modularizar c\u00f3digo reutiliz\u00e1vel entre projetos. \u00c9 como um OSGi, s\u00f3 que no mundo JavaScript.<\/p>\n<p>Os servi\u00e7os tamb\u00e9m s\u00e3o muito interessantes: enquanto no Vue.js temos o Vuex para estado compartilhado, o que pode virar facilmente uma zona conforme o projeto cresce de tamanho, no Angular tenho servi\u00e7os gerenciados por inje\u00e7\u00e3o de depend\u00eancias e que podem ser singletons. Pronto: \u00e9 como o Spring, s\u00f3 que no mundo JavaScript.<\/p>\n<p>(OSGi&#8230; Spring&#8230; duas coisas que gosto no Java&#8230; agora do lado JavaScript\/TypeScript da cerca&#8230;)<\/p>\n<p>O modo como os arquivos que definem um componente s\u00e3o organizados tamb\u00e9m gostei bastante. No caso do Vue.js, temos os arquivos .vue do <a href=\"https:\/\/vue-loader.vuejs.org\/\">Vue Loader<\/a>. \u00c9 uma solu\u00e7\u00e3o bacana, mas como tenho estilo, marca\u00e7\u00e3o e l\u00f3gica no mesmo arquivo, conforme estes aumentam em complexidade, dificulta-se a manuten\u00e7\u00e3o (eu sei que o ideal \u00e9 termos estes caras pequenos, mas eles crescem).\u00a0 Gostei de ter arquivos em separado.<\/p>\n<p>(Ali\u00e1s, conto um segredo aqui: muito tempo atr\u00e1s, quando comecei a aprender Vue.js, implementei o meu pr\u00f3prio &#8220;vue-kico-loader&#8221;, que era quase igual ao esquema adotado pelo Angular (sua manuten\u00e7\u00e3o ficou complexa, vi que o ideal era o Vue Loader, e a\u00ed abandonei o projeto))<\/p>\n<p><strong>Sabe do que n\u00e3o gostei?<\/strong> Da sintaxe dos templates: ter de usar coisas como [(ngModel)], *ngFor, coisas assim achei um saco. Neste aspecto o Vue.js \u00e9 bem mais interessante.<\/p>\n<p>Resumindo: para projetos maiores, a manuten\u00e7\u00e3o do c\u00f3digo Angular se torna algo muito mais simples em rela\u00e7\u00e3o ao Vue.js na minha experi\u00eancia at\u00e9 agora.<\/p>\n<h3>Curva de aprendizado e produtividade<\/h3>\n<p>Aprende-se Vue.js muito mais r\u00e1pido que Angular. J\u00e1 tive experi\u00eancias na itexto de pessoas sem nenhum conhecimento de desenvolvimento web que em quatro horas j\u00e1 se tornavam produtivas com o Vue.js. Ali\u00e1s,\u00a0<strong>este<\/strong> foi o fator que mais me encantou no Vue at\u00e9 hoje.<\/p>\n<p>No caso do AngularJS, em minha primeira experi\u00eancia, n\u00e3o observei isto. Levava um bom tempo at\u00e9 entender os controladores, o modo como eram as intera\u00e7\u00f5es entre os elementos do framework e at\u00e9 mesmo alcan\u00e7ar uma produtividade m\u00ednima com ele.<\/p>\n<p>No caso do Angular 6, que foi meu alvo, percebi que em um dia eu j\u00e1 estava conseguindo fazer alguma coisa com ele. Repare: &#8220;alguma coisa&#8221;. Ainda n\u00e3o me sentia confort\u00e1vel com a ferramenta. Mas passada uma semana de pr\u00e1tica constante, hoje digo que sou\u00a0<strong>bem mais produtivo<\/strong> com Angular que com o Vue.js. Em grande parte devido ao ferramental e do TypeScript.<\/p>\n<p>No caso do Vue.js, usando o Vue.cli posso usar templates prontos que me d\u00e3o um scaffolding similar ao do Angular, mas ele em si ainda n\u00e3o \u00e9 t\u00e3o evolu\u00eddo, o que \u00e9 natural, dado ser uma solu\u00e7\u00e3o mais nova. Entretanto prevejo que no futuro este jogo vire, pois Vue.js ainda \u00e9 mais f\u00e1cil de dominar em pouco tempo, na minha experi\u00eancia.<\/p>\n<h2>Como est\u00e1 sendo at\u00e9 agora<\/h2>\n<p>Est\u00e1 sendo \u00f3timo. O grande teste \u00e9 ter um sistema em produ\u00e7\u00e3o no qual seja necess\u00e1rio dar manuten\u00e7\u00e3o de forma \u00e1gil. O projeto \u00e9 o novo \/dev\/All, e sim, estou conseguindo realizar mudan\u00e7as em minutos com um framework que ainda n\u00e3o domino inteiramente e com qualidade. Passou no teste.<\/p>\n<p>Apesar de muita gente estar indo para o Vue.js e saindo do Angular, do ponto de vista corporativo, apostaria no Angular, pois a manuten\u00e7\u00e3o e o aspecto &#8220;framework&#8221; da ferramenta \u00e9 realmente muito interessante. \u00c9 f\u00e1cil dar manuten\u00e7\u00e3o em uma aplica\u00e7\u00e3o Angular.<\/p>\n<p>No final das contas o aspecto &#8220;ferramental&#8221; tamb\u00e9m conta bastante: \u00e9 boas IDEs que ofere\u00e7am suporte decente ao framework adotado, e no caso do Angular, devido \u00e0 sua pr\u00f3pria hist\u00f3ria, isto fica evidente.<\/p>\n<p>Esta tem sido minha experi\u00eancia com o framework at\u00e9 este momento: aprendi algumas outras coisas que pretendo compartilhar com voc\u00eas em um futuro pr\u00f3ximo conforme vou narrando aqui a jornada que entramos ao lan\u00e7armos o novo \/dev\/All, pois\u00a0<strong>muitas<\/strong> das minhas concep\u00e7\u00f5es mudaram e est\u00e3o mudando no processo.<\/p>\n<p>At\u00e9 l\u00e1. ;)<\/p>\n<p>PS:<\/p>\n<p>ainda me confundo um pouco com os termos Angular e AngularJS.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Minha nova impress\u00e3o a respeito do Angular alguns anos depois. Vale \u00e0 pena? Demais da conta!<\/p>\n","protected":false},"author":1,"featured_media":2470,"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":[79,61,71],"tags":[],"class_list":["post-2786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","category-javascript","category-vue-j-s"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Eu e o Angular - \/dev\/Kico<\/title>\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=2786\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eu e o Angular - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Minha nova impress\u00e3o a respeito do Angular alguns anos depois. Vale \u00e0 pena? Demais da conta!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=2786\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-16T01:31:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"277\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\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=\"9 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=2786\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=2786\",\"name\":\"Eu e o Angular - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png\",\"datePublished\":\"2018-07-16T01:31:28+00:00\",\"dateModified\":\"2018-07-16T01:31:28+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2786#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=2786\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png\",\"width\":400,\"height\":277},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2786#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eu e o Angular\"}]},{\"@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":"Eu e o Angular - \/dev\/Kico","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=2786","og_locale":"pt_BR","og_type":"article","og_title":"Eu e o Angular - \/dev\/Kico","og_description":"Minha nova impress\u00e3o a respeito do Angular alguns anos depois. Vale \u00e0 pena? Demais da conta!","og_url":"https:\/\/devkico.itexto.com.br\/?p=2786","og_site_name":"\/dev\/Kico","article_published_time":"2018-07-16T01:31:28+00:00","og_image":[{"width":400,"height":277,"url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png","type":"image\/png"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=2786","url":"https:\/\/devkico.itexto.com.br\/?p=2786","name":"Eu e o Angular - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png","datePublished":"2018-07-16T01:31:28+00:00","dateModified":"2018-07-16T01:31:28+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2786#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=2786"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=2786#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2016\/04\/angular-js_600x400.png","width":400,"height":277},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=2786#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Eu e o Angular"}]},{"@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\/2016\/04\/angular-js_600x400.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\/2786"}],"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=2786"}],"version-history":[{"count":1,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2786\/revisions"}],"predecessor-version":[{"id":2790,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2786\/revisions\/2790"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/2470"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}