{"id":946,"date":"2019-11-08T10:15:06","date_gmt":"2019-11-08T09:15:06","guid":{"rendered":"https:\/\/agileinstitute.pl\/?p=946"},"modified":"2019-11-22T11:08:31","modified_gmt":"2019-11-22T10:08:31","slug":"moja-przygoda-z-angularem","status":"publish","type":"post","link":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/","title":{"rendered":"Moja przygoda z Angularem"},"content":{"rendered":"\n<p> Moja przygoda z frameworkiem Angular rozpocz&#281;&#322;a si&#281; 5 lat temu (w roku 2014), kiedy w&oacute;wczas na rynku webowym dost&#281;pna by&#322;a wersja AngularJS (nie pami&#281;tam, w jakiej dok&#322;adnie wersji tworzy&#322;em swoj&#261; pierwsz&#261; aplikacj&#281;, ale na pewno by&#322;o to w przedziale 1.2 &ndash; 1.4). AngularJS to framework oparty o j&#281;zyk JavaScript oraz HTML, a raczej <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/dom\/\" target=\"_self\" title=\"DOM (Document Object Model), czyli spos&oacute;b reprezentacji struktury dokumentu oraz okre&#347;lenia w jaki spos&oacute;b odnosi&#263; si&#281; do struktury z poziomu skryptu.\" class=\"encyclopedia\">DOM<\/a> (Document Object Model, czyli spos&oacute;b reprezentacji struktury dokumentu oraz okre&#347;lenia w jaki spos&oacute;b odnosi&#263; si&#281; do struktury z poziomu skryptu). Pami&#281;tam, &#380;e zastosowa&#322;em AngularJS i zacz&#261;&#322;em si&#281; mu bli&#380;ej przygl&#261;da&#263;, poniewa&#380; potrzebowa&#322;em, aby po stronie <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/klient\/\" target=\"_self\" title=\"Klient&nbsp;&ndash; ka&#380;da osoba oczekuj&#261;ca na&nbsp;efekt naszej pracy. Klient zewn&#281;trzny &ndash; klient poza naszym przedsi&#281;biorstwem. Klient wewn&#281;trzny &ndash; klient w&nbsp;ramach firmy (np.&nbsp;kolejny proces, prze&#322;o&#380;ony, pracownik)\" class=\"encyclopedia\">klient<\/a>a obs&#322;u&#380;y&#263; routing i zastosowa&#263; standard MVC (Model, View, Controller). Takie rozwi&#261;zania pozwala&#322;y mi kontrolowa&#263; du&#380;o bardziej to, co u&#380;ytkownik robi i ogranicza&#263; go ju&#380; na poziomie przegl&#261;darki bez zaanga&#380;owania logiki serwerowej. Oczywi&#347;cie by&#322;y to ograniczenia dla standardowych u&#380;ytkownik&oacute;w, reszta logiki by&#322;a blokowana serwerowo. To na co <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/dod\/\" target=\"_self\" title=\"DoD (Definition of Done):&nbsp;wsp&oacute;lne zrozumienie oczekiwa&#324;, jakie musi spe&#322;ni&#263; oprogramowanie, aby mo&#380;na je by&#322;o udost&#281;pni&#263; na produkcji. DoD jest zarz&#261;dzana przez zesp&oacute;&#322; deweloperski.\" class=\"encyclopedia\">dod<\/a>atkowo pozwoli&#322; mi AngularJS to przede wszystkim wygodne zarz&#261;dzanie danymi i modelami a tak&#380;e tworzenie serwis&oacute;w do komunikacji z backendem. <\/p>\n\n\n\n<p>Za pomoc&#261; AngularaJS zbudowa&#322;em dwie du&#380;e aplikacje komercyjne, kt&oacute;re obs&#322;ugiwa&#322;y u&#380;ytkownik&oacute;w z ca&#322;ej Polski. G&#322;&oacute;wnymi problemami jakie napotyka&#322;em przy pracy z AngularJS to przestawienie si&#281; na u&#380;ywanie metod i odpowiednich atrybut&oacute;w logicznych bezpo&#347;rednio w szablonie HTML. Tworz&#261;c wcze&#347;niej skrypty, ca&#322;o&#347;&#263; logiki by&#322;a jednak w plikach skryptowych, a tutaj du&#380;o element&oacute;w nale&#380;a&#322;o <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/dod\/\" target=\"_self\" title=\"DoD (Definition of Done):&nbsp;wsp&oacute;lne zrozumienie oczekiwa&#324;, jakie musi spe&#322;ni&#263; oprogramowanie, aby mo&#380;na je by&#322;o udost&#281;pni&#263; na produkcji. DoD jest zarz&#261;dzana przez zesp&oacute;&#322; deweloperski.\" class=\"encyclopedia\">dod<\/a>awa&#263; bezpo&#347;rednio w templatce &ndash; dzisiaj jest to norma w wi&#281;kszo&#347;ci framework&oacute;w webowych.<\/p>\n\n\n\n<p>W 2016 roku pojawi&#322;a si&#281; oficjalna wersja Angular 2, kt&oacute;ra nie posiada&#322;a kompatybilno&#347;ci wstecznej i by&#322;a ju&#380; oparta o j&#281;zyk stworzony przez Microsoft &ndash; TypeScript. Tw&oacute;rcy frameworka (Google) sporo namieszali na rynku, poniewa&#380; wi&#281;kszo&#347;&#263; programist&oacute;w nie mog&#322;a przenie&#347;&#263; swoich aplikacji do nowszej wersji frameworka. Google oczywi&#347;cie nie przesta&#322;o ca&#322;kowicie wspiera&#263; AngularJS, ale jednak skupi&#322;o si&#281; na rozwoju jego m&#322;odszego brata opartego o TypeScript.<\/p>\n\n\n\n<p>W tamtym czasie zaczynali&#347;my nowy projekt, kt&oacute;ry idealnie wpisywa&#322; si&#281; w standard MVC, routing i aplikacj&#281; webow&#261;. Mia&#322;em jednak kilka w&#261;tpliwo&#347;ci czy u&#380;ywa&#263; AngularJS, kt&oacute;ry nied&#322;ugo mo&#380;e przesta&#263; by&#263; wspierany, czy zastosowa&#263; Angular 2, kt&oacute;rego specyfika jest ca&#322;kowicie inna i zupe&#322;nie mi nieznana. Z perspektywy czasu podj&#261;&#322;em wtedy jedyn&#261; s&#322;uszn&#261; decyzj&#281;&nbsp;&ndash; wybra&#322;em Angular 2 i po&#347;wi&#281;ci&#322;em ca&#322;y wolny czas na przewertowanie dokumentacji, dobrych praktyk i zanim rozpocz&#261;&#322;em prace nad w&#322;a&#347;ciwym projektem, zbudowa&#322;em kilka mniejszych przyk&#322;adowych aplikacji.<\/p>\n\n\n\n<p>Skupiaj&#261;c si&#281; od samego pocz&#261;tku na dobrych praktykach oraz implementacji standard&oacute;w obowi&#261;zuj&#261;cych w j&#281;zykach obiektowych, bardzo szybko wypracowa&#322;em sobie &bdquo;idealne&rdquo; dla mnie architektury aplikacji, kt&oacute;re pozwalaj&#261; na szybki i swobodny rozw&oacute;j aplikacji, a jednocze&#347;nie pozwalaj&#261; na sprawne wdro&#380;enia kolejnych developer&oacute;w. Projekt powsta&#322;, zosta&#322; przyj&#281;ty przez <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/klient\/\" target=\"_self\" title=\"Klient&nbsp;&ndash; ka&#380;da osoba oczekuj&#261;ca na&nbsp;efekt naszej pracy. Klient zewn&#281;trzny &ndash; klient poza naszym przedsi&#281;biorstwem. Klient wewn&#281;trzny &ndash; klient w&nbsp;ramach firmy (np.&nbsp;kolejny proces, prze&#322;o&#380;ony, pracownik)\" class=\"encyclopedia\">klient<\/a>a z wielk&#261; aprobat&#261;, a co najwa&#380;niejsze &ndash; wraz z ca&#322;&#261; logik&#261; biznesow&#261; zosta&#322; napisany przeze mnie w ci&#261;gu 2 miesi&#281;cy (dla por&oacute;wnania, estymacja czasowa tego samego projektu przy za&#322;o&#380;eniu u&#380;ycia czystego JS, albo po&#322;&#261;czenia PHP + JS, .NET wynosi&#322;a ok. 4 miesi&#281;cy).<\/p>\n\n\n\n<p>Wdra&#380;aj&#261;c developer&oacute;w w naszej firmie&nbsp;GBX Soft&nbsp;w framework Angular, zauwa&#380;y&#322;em, &#380;e przy kolejnych projektach i wi&#281;kszych zespo&#322;ach mog&#261; zacz&#261;&#263; pojawia&#263; si&#281; problemy organizacyjne aplikacji ze wzgl&#281;du na r&oacute;&#380;ne podej&#347;cia architektoniczne developer&oacute;w. Z tego wzgl&#281;du wprowadzi&#322;em jeden standard i stara&#322;em si&#281; go mocno pilnowa&#263;.<\/p>\n\n\n\n<p>Przy jednym z kolejnych projekt&oacute;w pojawi&#322; si&#281; problem optymalizacyjny dotycz&#261;cy list, dynamicznego do&#322;adowywania element&oacute;w i wykrywania event&oacute;w z myszki, czy klawiatury. Ze wzgl&#281;du na spos&oacute;b renderowania <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/dom\/\" target=\"_self\" title=\"DOM (Document Object Model), czyli spos&oacute;b reprezentacji struktury dokumentu oraz okre&#347;lenia w jaki spos&oacute;b odnosi&#263; si&#281; do struktury z poziomu skryptu.\" class=\"encyclopedia\">DOM<\/a>&rsquo;u, Angular renderowa&#322; go nam zbyt cz&#281;sto, co mia&#322;o wp&#322;yw na du&#380;o spadek wydajno&#347;ci aplikacji. Pomimo tego, &#380;e na tamten moment mia&#322;em styczno&#347;&#263; z du&#380;o wi&#281;kszymi aplikacjami i ilo&#347;ciami danych, specyfika tego projektu pokaza&#322;a, &#380;e ci&#261;gle trzeba poszukiwa&#263; nowych rozwi&#261;za&#324;. To co nam wtedy pomog&#322;o to tzw. throttling, r&#281;czne wywo&#322;ywanie rerenderowania <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/dom\/\" target=\"_self\" title=\"DOM (Document Object Model), czyli spos&oacute;b reprezentacji struktury dokumentu oraz okre&#347;lenia w jaki spos&oacute;b odnosi&#263; si&#281; do struktury z poziomu skryptu.\" class=\"encyclopedia\">DOM<\/a> oraz wykonywanie pewnych metod poza ngZone.<\/p>\n\n\n\n<p>Na ten moment w wiod&#261;cych projektach wykorzystujemy wersj&#281; Angulara 7, a w najbli&#380;szym projekcie chcemy zastosowa&#263; Angulara 8. Tworzymy spo&#322;eczno&#347;&#263; Angulara w Rzeszowie i jako pierwsi zorganizowali&#347;my warsztaty szkoleniowe z tego frameworka w po&#322;udniowej Polsce. Osobi&#347;cie o wiele wygodniej pracuje mi si&#281; z Angularem, ni&#380; np. Reactem czy Vue.JS, poniewa&#380; sama struktura plik&oacute;w, dost&#281;p do obiekt&oacute;wki, bardzo dobra dokumentacja i wsparcie spo&#322;eczno&#347;ci developerskiej, a tak&#380;e wiele <a href=\"https:\/\/agileinstitute.pl\/index.php\/encyclopedia\/gotowy\/\" target=\"_self\" title=\"Gotowy (ang. Ready):&nbsp;wsp&oacute;lna, jednakowo rozumiana przez W&#322;a&#347;ciciela Produktu i Zesp&oacute;&#322; Deweloperski, definicja preferowanego poziomu szczeg&oacute;&#322;owo&#347;ci opisu element&oacute;w Backlogu Produktu wprowadzonych w Sprint Planning.\" class=\"encyclopedia\">gotowy<\/a>ch bibliotek pozwala mi na du&#380;o szybsze tworzenie oprogramowania, a p&oacute;&#378;niej na jego dalszy rozw&oacute;j.<\/p>\n\n\n\n<p>Jakie macie zdanie na temat framework&oacute;w webowych? Z czego najcz&#281;&#347;ciej korzystacie? Co s&#261;dzicie o Angularze? \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moja przygoda z frameworkiem Angular rozpocz\u0119\u0142a si\u0119 5 lat temu (w roku 2014), kiedy w\u00f3wczas na rynku webowym dost\u0119pna by\u0142a [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":945,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":""},"categories":[5],"tags":[280,282,281,239,278],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Moja przygoda z Angularem - Agile Institute<\/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:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Moja przygoda z Angularem - Agile Institute\" \/>\n<meta property=\"og:description\" content=\"Moja przygoda z frameworkiem Angular rozpocz\u0119\u0142a si\u0119 5 lat temu (w roku 2014), kiedy w\u00f3wczas na rynku webowym dost\u0119pna by\u0142a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\" \/>\n<meta property=\"og:site_name\" content=\"Agile Institute\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/agileinstitutepl\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/robert.juszczyk.1\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-08T09:15:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-22T10:08:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-1024x551.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"551\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Robert Juszczyk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robert Juszczyk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\"},\"author\":{\"name\":\"Robert Juszczyk\",\"@id\":\"https:\/\/agileinstitute.pl\/#\/schema\/person\/0f823613ea89ffa85bfb7d58f3616f44\"},\"headline\":\"Moja przygoda z Angularem\",\"datePublished\":\"2019-11-08T09:15:06+00:00\",\"dateModified\":\"2019-11-22T10:08:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\"},\"wordCount\":839,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/agileinstitute.pl\/#organization\"},\"keywords\":[\"Angular\",\"developer\",\"Framework\",\"MVP\",\"programming\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\",\"url\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\",\"name\":\"Moja przygoda z Angularem - Agile Institute\",\"isPartOf\":{\"@id\":\"https:\/\/agileinstitute.pl\/#website\"},\"datePublished\":\"2019-11-08T09:15:06+00:00\",\"dateModified\":\"2019-11-22T10:08:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/agileinstitute.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Moja przygoda z Angularem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/agileinstitute.pl\/#website\",\"url\":\"https:\/\/agileinstitute.pl\/\",\"name\":\"Agile Institute\",\"description\":\"\u017br\u00f3d\u0142o wiedzy o Agile\",\"publisher\":{\"@id\":\"https:\/\/agileinstitute.pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/agileinstitute.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/agileinstitute.pl\/#organization\",\"name\":\"Agile Institute\",\"url\":\"https:\/\/agileinstitute.pl\/\",\"sameAs\":[\"https:\/\/www.instagram.com\/agileinstitutepl\/?hl=pl\",\"https:\/\/www.linkedin.com\/company\/28517752\/admin\/\",\"https:\/\/www.facebook.com\/agileinstitutepl\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/agileinstitute.pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/09\/logo_Agile_Institute.png\",\"contentUrl\":\"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/09\/logo_Agile_Institute.png\",\"width\":962,\"height\":968,\"caption\":\"Agile Institute\"},\"image\":{\"@id\":\"https:\/\/agileinstitute.pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/agileinstitute.pl\/#\/schema\/person\/0f823613ea89ffa85bfb7d58f3616f44\",\"name\":\"Robert Juszczyk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/agileinstitute.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/011a3460276d079f5a471fef70bc7f04?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/011a3460276d079f5a471fef70bc7f04?s=96&d=mm&r=g\",\"caption\":\"Robert Juszczyk\"},\"description\":\"Moim celem jest kreowanie i tworzenie nowych rozwi\u0105za\u0144 dla produkt\u00f3w cyfrowych. Jednocze\u015bnie staram otacza\u0107 si\u0119 ambitnymi i kreatywnymi lud\u017ami, z kt\u00f3rymi chcia\u0142bym podnosi\u0107 poprzeczk\u0119 dla kolejnych projekt\u00f3w aplikacji mobilnych i webowych.\",\"sameAs\":[\"https:\/\/www.facebook.com\/robert.juszczyk.1\",\"https:\/\/www.instagram.com\/robert.juszczyk\",\"https:\/\/www.linkedin.com\/in\/robert-juszczyk-465a3514a\/\"],\"url\":\"https:\/\/agileinstitute.pl\/index.php\/author\/robert-juszczyk\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Moja przygoda z Angularem - Agile Institute","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:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/","og_locale":"pl_PL","og_type":"article","og_title":"Moja przygoda z Angularem - Agile Institute","og_description":"Moja przygoda z frameworkiem Angular rozpocz\u0119\u0142a si\u0119 5 lat temu (w roku 2014), kiedy w\u00f3wczas na rynku webowym dost\u0119pna by\u0142a [&hellip;]","og_url":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/","og_site_name":"Agile Institute","article_publisher":"https:\/\/www.facebook.com\/agileinstitutepl","article_author":"https:\/\/www.facebook.com\/robert.juszczyk.1","article_published_time":"2019-11-08T09:15:06+00:00","article_modified_time":"2019-11-22T10:08:31+00:00","og_image":[{"width":1024,"height":551,"url":"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-1024x551.png","type":"image\/png"}],"author":"Robert Juszczyk","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Robert Juszczyk","Szacowany czas czytania":"4 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#article","isPartOf":{"@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/"},"author":{"name":"Robert Juszczyk","@id":"https:\/\/agileinstitute.pl\/#\/schema\/person\/0f823613ea89ffa85bfb7d58f3616f44"},"headline":"Moja przygoda z Angularem","datePublished":"2019-11-08T09:15:06+00:00","dateModified":"2019-11-22T10:08:31+00:00","mainEntityOfPage":{"@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/"},"wordCount":839,"commentCount":0,"publisher":{"@id":"https:\/\/agileinstitute.pl\/#organization"},"keywords":["Angular","developer","Framework","MVP","programming"],"articleSection":["Blog"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/","url":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/","name":"Moja przygoda z Angularem - Agile Institute","isPartOf":{"@id":"https:\/\/agileinstitute.pl\/#website"},"datePublished":"2019-11-08T09:15:06+00:00","dateModified":"2019-11-22T10:08:31+00:00","breadcrumb":{"@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/agileinstitute.pl\/index.php\/2019\/11\/08\/moja-przygoda-z-angularem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/agileinstitute.pl\/"},{"@type":"ListItem","position":2,"name":"Moja przygoda z Angularem"}]},{"@type":"WebSite","@id":"https:\/\/agileinstitute.pl\/#website","url":"https:\/\/agileinstitute.pl\/","name":"Agile Institute","description":"\u017br\u00f3d\u0142o wiedzy o Agile","publisher":{"@id":"https:\/\/agileinstitute.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agileinstitute.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/agileinstitute.pl\/#organization","name":"Agile Institute","url":"https:\/\/agileinstitute.pl\/","sameAs":["https:\/\/www.instagram.com\/agileinstitutepl\/?hl=pl","https:\/\/www.linkedin.com\/company\/28517752\/admin\/","https:\/\/www.facebook.com\/agileinstitutepl"],"logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/agileinstitute.pl\/#\/schema\/logo\/image\/","url":"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/09\/logo_Agile_Institute.png","contentUrl":"https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/09\/logo_Agile_Institute.png","width":962,"height":968,"caption":"Agile Institute"},"image":{"@id":"https:\/\/agileinstitute.pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/agileinstitute.pl\/#\/schema\/person\/0f823613ea89ffa85bfb7d58f3616f44","name":"Robert Juszczyk","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/agileinstitute.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/011a3460276d079f5a471fef70bc7f04?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/011a3460276d079f5a471fef70bc7f04?s=96&d=mm&r=g","caption":"Robert Juszczyk"},"description":"Moim celem jest kreowanie i tworzenie nowych rozwi\u0105za\u0144 dla produkt\u00f3w cyfrowych. Jednocze\u015bnie staram otacza\u0107 si\u0119 ambitnymi i kreatywnymi lud\u017ami, z kt\u00f3rymi chcia\u0142bym podnosi\u0107 poprzeczk\u0119 dla kolejnych projekt\u00f3w aplikacji mobilnych i webowych.","sameAs":["https:\/\/www.facebook.com\/robert.juszczyk.1","https:\/\/www.instagram.com\/robert.juszczyk","https:\/\/www.linkedin.com\/in\/robert-juszczyk-465a3514a\/"],"url":"https:\/\/agileinstitute.pl\/index.php\/author\/robert-juszczyk\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular.png",3508,1886,false],"thumbnail":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-150x150.png",150,150,true],"medium":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-300x161.png",300,161,true],"medium_large":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-768x413.png",640,344,true],"large":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-1024x551.png",640,344,true],"elegant_blocks_team_1":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-500x500.png",500,500,true],"elegant_blocks_blog_1":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-693x462.png",693,462,true],"elegant_blocks_slider_1":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-1600x1000.png",1600,1000,true],"1536x1536":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular.png",1536,826,false],"2048x2048":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular.png",2048,1101,false],"bizberg_medium":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-300x300.png",300,300,true],"bizberg_gallery":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-500x400.png",500,400,true],"bizberg_blog_list":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-368x240.png",368,240,true],"bizberg_detail_image":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-825x400.png",825,400,true],"bizberg_detail_image_no_sidebar":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular.png",744,400,false],"bizberg_portfolio_homepage":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-600x400.png",600,400,true],"bizberg_blog_list_no_sidebar_1":["https:\/\/agileinstitute.pl\/wp-content\/uploads\/2019\/11\/angular-220x190.png",220,190,true]},"uagb_author_info":{"display_name":"Robert Juszczyk","author_link":"https:\/\/agileinstitute.pl\/index.php\/author\/robert-juszczyk\/"},"uagb_comment_info":0,"uagb_excerpt":"Moja przygoda z frameworkiem Angular rozpocz\u0119\u0142a si\u0119 5 lat temu (w roku 2014), kiedy w\u00f3wczas na rynku webowym dost\u0119pna by\u0142a [&hellip;]","_links":{"self":[{"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/posts\/946"}],"collection":[{"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/comments?post=946"}],"version-history":[{"count":2,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/posts\/946\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/posts\/946\/revisions\/949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/media\/945"}],"wp:attachment":[{"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/media?parent=946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/categories?post=946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agileinstitute.pl\/index.php\/wp-json\/wp\/v2\/tags?post=946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}