Join our weekly discussion about how to build top end Angular applications and become an Angular expert.
Similar Podcasts
Flutter 101 Podcast
Weekly podcast focusing on software development with Flutter and Dart. Hosted by Vince Varga.
Views on Vue
Vue is a growing front-end framework for web developments. Hear experts cover technologies and movements within the Vue community by talking to members of the open source and development community.
React Round Up
Stay current on the latest innovations and technologies in the React community by listening to our panel of React and Web Development Experts.
AiA 269: Data Mocking with Dave Cooper
In this episode of Adventures in Angular the panel interviews Dave Cooper, who recently gave a talk at AngularConnect about using Mock Data. Dave starts by explaining more about his talk and sharing the benefits of using data mocking solutions and rapid prototyping. He shares the secrets of doing rapid prototyping. There are challenges to using mock data, Dave shares a few of them and explains how to overcome them. The number one challenge of using mock data is keeping it in sync with your real data and making it look real. Dave explains how to get started with mock data and shares library recommendations. The panel discusses the use cases for mock data and Dave walks them through a few scenarios for using mock data. He shares use case recommendations and discusses using mock data for testing. The panel discusses the benefits of using mock data for demos and courses. The possibilities and future of mock data and pact testing are explored. Dave shares his coding process and explains how much faster he can code by using mock data. Panelists Shai Reznik Younes Jaaidi Charles Max Wood Guest Dave Cooper Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Cachefly Links Mocking made easy | Dave Cooper | http://www.davecooper.org/ https://twitter.com/davewritescodes https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Shai Reznik: TestAngular.com https://twitter.com/shai_reznik/status/1202293459207540737 Angular 9: Getting Ready To Update to Angular 9 Dave Cooper: https://www.npmjs.com/package/data-mocks Dough: Simple Contemporary Bread Younes Jaaidi: https://www.json-generator.com/ https://docs.pact.io/implementation_guides/javascript Charles Max Wood: A Christmas Story Holiday Inn White Christmas The Bishop’s Wife Frozen 2 Special Guest: Dave Cooper.
AiA 268: Secure Angular Apps with Philippe De Ryck
In this episode of Adventures in Angular the panel interviews Phillipe De Ryck. Phillipe is a web security expert out of Belgium. He shares ways for Angular developers to better secure their apps. Phillipe explains to the panel that his goal is not to shame developers but inspire them to do what they can. He knows most developers are just trying to get as much done in the time that they have. In this episode, he shares ways for developers to improve the security of their apps. The episode starts with some security scary stories. Phillipe invites everyone to check out the OWASP top ten projects. They have lists of the top ten security measures you should be doing, they have lists for different ecosystems and types of projects so there is something there for everyone. Phillipe explains what types of attacks are most common today. The panel wonders how do you know something is safe to install. Phillipe explains that there are no guarantees. Sharing statistics Phillipe tells then panel that it is worse than they thought, each package is most likely dependent on more packages and the odds are high that one of those packages has vulnerable code. He explains what you can do to check for those vulnerabilities and to see if they are exploitable. Phillipe shares recommendations for continuous monitoring services and other tools. He explains why Angular is the best framework for securing your apps and lists all the security features that come with Angular. He compares Angular, React, Amber, and Vue. Phillipe gives his opinion and recommendation on authentication libraries. He explains the differences between OpenID Connect and Allout, explaining how they work. The episode ends as Phillipe shares his contact information and the conferences he will be attending and speaking at. Panelists Aaron Frost Jennifer Wadella Brian Love Alyssa Nicoll Guest Philippe De Ryck Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Cachefly Links OWASP Top Ten Project GitHub dependency graph https://snyk.io Angular and the OWASP top 10 | Philippe De Ryck | The Parts of JWT Security Nobody Talks About | Philippe De Ryck, Google Developer Expert https://twitter.com/philippederyck https://pragmaticwebsecurity.com https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: Angular Ivy Jennifer Wadella: Red vs Blue Buttermilk-Marinated Roast Chicken Aaron Frost: The listeners The sponsors The panel Alyssa Nicoll: On a Scale of One to T-Rex Philippe De Ryck: https://ng-be.org/ Special Guest: Philippe De Ryck.
AiA 267: JavaScript Performance with Tammy Everts
In this episode of Adventures in Angular Charles Max Wood joins Tammy Everts at JAMstack Confer. Tammy gives a listeners a sneak peek into her talk about website performance, more specifically JavaScript performance. Charles discusses the performance of Devchat.tv and Google Lighthouse scores. Tammy explains that while Google Lighthouse is good it isn’t completely reliable and can miss chunks of time when your JavaScript is failing and you have unhappy users. Tammy shares ways to drill down and see how your JavaScript is behaving in the wild. She talks about blocking Javascript which every developer is familiar with and non-blocking JavaScript that has high blocking CPU time which makes for janky sites. Tammy and Charles discuss what CPU is and what it measures. Tammy names resources and tools to help avoid this problem. Rules of thumb for avoiding these issues are explained by Tammy. First, Reduce, make sure all the JavaScript needs to be there. Next, Monitor, track your metrics. She also suggests working with vendors and maintaining a performance budget for metrics that matter. The interview ends with a little about Speedcurve and what they do. Tammy is the CXO of Speedcurve. Panelists Charles Wood Guest: Tammy Everts Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors CacheFly Links https://jamstackconf.com/sf/ https://speedcurve.com/ https://twitter.com/tameverts? https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Special Guest: Tammy Everts.
AiA 266: Creating Content in Portuguese with Loiane Groner
In this episode of Adventures in Angular the panel interview Loiane Groner about her Portuguese content creation. She starts by sharing her story and how she got into content creation and why she creates content for developers in Brazil. She gives advice on how to get started creating blog content and shares strategies for pushing out posts and organizing post ideas. Moving on to video content, the panel share editing, and recording tips. Loiane shares recommendations for editing and recording software. They advise keeping videos short and to be consistent in creating content. Loiane answers questions about revenue and analytics. She also gives advice on dealing with internet trolls. The episode ends as Loiane dives into the struggles of learning to code as a native Portuguese speaker in an English based coding language. She explains how translation works and shares opportunities for people to help. The Angular community’s translation efforts are outlined, including translating documentation and their work with ng-Girls. Panelists Jennifer Wadella Brian Love Guest Loiane Groner Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Cachefly Links Open source libraries and frameworks http://lite.acad.univali.br/portugol/ https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: https://github.com/jakejarvis/lighthouse-action Jennifer Wadella: Merino wool https://pa11y.org/ Loiane Groner: Ivy Special Guest: Loiane Groner.
The MaxCoders Guide To Finding Your Dream Developer Job
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is available on Amazon. Get your copy here today only for $2.99!
AiA 265: Progressive Enhancements with Ire Aderinokun
In this episode of Adventures in Angular Charles Max Wood interviews Ire Aderinokun at JAMstack conf 2019. Ire works for Buycoins, a cryptocurrency exchange for Africa. She gave a lightning talk, “Headless Chrome & Cloudinary for progressively enhanced dynamic content on the web”. After giving a brief overview of her talk to Charles, Ire defines progressive enhancement for the listeners. Walking through how progressive enhancement works, she explains how Headless Chrome and Cloudinary helped her with the project she shared in the talk. Ire and Charles consider the blindspot that developers experience because they work on high-end devices and how using progressive enhancement helps those who use lower-end devices. Ire shares her experience with JAMstack and explains how progressive enhancement works with JAMstack. Charles shares his experience using JAMstack. The episode ends with Ire giving advice and resources to help get started with progressive enhancement. Panelists Charles Wood Guest: Ire Aderinokun Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors CacheFly Links https://buycoins.africa/ Headless Chrome & Cloudinary for progressively enhanced dynamic content https://github.com/ireade/caniuse-embed https://ireaderinokun.com/ https://twitter.com/ireaderinokun https://github.com/ireade https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Special Guest: Ire Aderinokun.
AiA 264: ngTemplateOutlets with Stephen Cooper
In this episode of Adventures in Angular the panel interviews Stephen Cooper about his recent talk at Angular Connect. His talk was about ngTemplateOutlets. Stephen answers the questions of the panel about ngTemplateOutlets and explains how and when to use them. He starts by explaining the difference between component outlets and template outlets. Aaron Frost, Frosty, asks Stephen to walk through how to make a ngTemplate and explain what it is useful for. The panel considers the various use cases they would use this for. Frosty wonders why he would use a ngTemplateOutlet instead of a bunch of ngIfs. Stephen explains when it would be wise to use ngIfs and when it would be better to use ngTemplateOutlets. The panel discusses ngComponentOutlets, Stephen explains how they relate to ngTemplateOutlets and how they give you another level to reusing components. He overviews the best way to use ngComponentOutlets and warns listeners of the tricky parts. Stephen shares the best times to use ngTemplateOutlets and overviews some of the common use cases he has seen for them. He explains that they are very useful when creating shareable components or repeating similar chunks of code in a component. He shares some resources to help listeners get started. Panelists Aaron Frost Alyssa Nicoll Brian Love Shai Reznik Guest Stephen Cooper ________________________________________________________________________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon. Get your copy on that date only for $1. ________________________________________________________________________________________________________________________ Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Flatfile Cachefly Links ngTemplateOutlet: The secret to customisation | Stephen Cooper https://ngtemplateoutletcontext.stackblitz.io https://github.com/StephenCooper/ngTemplateOutlets Advanced Angular: Implementing a Reusable Autocomplete Component https://twitter.com/CooperDev https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: Being back in the USA Zelda: Breath of the Wild Alyssa Nicoll: Mr. Milks Destiny 2:Shadowkeep Aaron Frost: Garrett Reisman https://medium.com/ngconf Shai Reznik: TestAngular.com One Strange Rock Stephen Cooper: Visiting museums near you Special Guest: Stephen Cooper .
AiA 263: The JAM in JAMstack with Tara Z. Manicsic
In this episode of Adventures in Angular the panel interviews Tara Manicsic. Tara is an Angular Developer Experience Engineer at Netlify. Tara explains what she does at Netlify. She explains what Netlify is and introduces the topic for today’s episode, JAMstack. She explains what services Netlify offers and the packages they offer. She explains that the JAM in JAMstack stands for JavaScript API Markup, which outlines the best practices of a JAMstack architecture. During her explanation of JAMstack and the benefits of a microservice architecture, she references Smashing Magazine and their switch to JAMstack. Tara overviews each letter of JAM and how they affect JAMstack. J or Javascript refers to the use of a JavaScript language, like Angular and others. Tara lists the API’s one might use for the A in JAM. The panel discusses the M or Markup. Markup serves up fast and safe prerendered content. Tara explains what prerender means and it makes the content safer and the sites faster. Tara then overviews the entire JAMstack process and explains atomic deployment. The panel considers how JAMstack is picking up in the Angular ecosystem. Tara outlines a few of the benefits seen when using JAMstack and the panel considers the possible use cases. She shares a few real-life examples of the success seen when JAMstack is used in an enterprise application. Panelists Brian Love Shai Reznik Guest Tara Z. Manicsic Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Flatfile Cachefly Links https://www.netlify.com/ https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: Living with Yourself Shai Reznik: Angular Testing Tip — The Easiest Way To Start Your Test Joker Tara Z. Manicsic: Fleabag Netlify Tutorial - How to build and deploy websites using Netlify https://www.ng-conf.org/2019/sessions/workshop-jamstack-from-i-dont-know-to-pro/ Special Guest: Tara Z. Manicsic.
AiA 262: Firebase Features with David East
In this episode of Adventures in Angular the panel has fun interviewing David East about Firebase. David starts by sharing what it was like at the recent Firebase Summit in Madrid. There were so many announcements they had a tough time fitting them all into the one-hour keynote address. One of the cool new features announced at the Firebase Summit is Firebase Extension, David describes it as serverless without any code. The panel discusses this feature and how it works. Another cool feature announced is Google Analytics for Firebase. This allows you to use Firebase tools in conjunction with Google Analytics. The panel considers the smart things you can do in your app with this feature. The next feature the panel discusses is Remote Config which allows you to store data and then pull out that information on demand. If you use the Google Analytics for Firebase you can target specific data for certain audiences. David explains that before this could only be done with native apps. He also explains how in doing this you no longer have to worry about the gtag loader and defines gtag for the panel. The panel gets a little off track as David jokingly explains his beef with Aaron Frost, Frosty. Frosty host My Angular Story and a while back had twitted looking for awesome angular stories. David had responded but never heard back from Frosty. Frosty jokingly says he faxed an invite to David. The panel jokes about how awesome David’s episode will be and tells everyone to look out for his episode. Getting back on track, David gives more examples of ways to use the Remote Config feature on with the Google Analytics for Firebase. Frosty confesses he needs to get better at looking at analytics. Sharing an example from a company he is currently working for, Frosty explains how they made nearly 2 million dollars just by changing the color of a button. The panel considers how minor changes like that can make such a big difference and how analytics helps you target your audience. David shares the story behind writing Angular Fire. Jeff Cross worked on the angular team and started writing angular fire but then left for Nrwl. After Jeff left, David took over and ended up rewriting the entire library. He explains some of the mistakes that they made that led to the rewrite and how he fixed them. The panel wonders at David about using Angular Fire and NgRX. David tells the panel that the Firebase console uses NgRx under the hood and shares what he learned while working on it. Using firebase and NgRx can be very confusing because of the mass duplication of responsibility. David’s advice is to let Firebase and NgRx do their own thing and connect the dots with RxJs. David discusses Firestore, a very advanced caching system and what you can do with it. Including, working offline and setting security rules. Frosty brings up Firebase Messaging Cues, he explains that it is similar to three-way messaging cues except its n-way. David explains that even though he is intrigued by the idea, he does not approve of the name. The panel considers possible use cases for an n-way messaging cue. David explains some of the costs and benefits of this architecture. The episode ends with a discussion of Firebase’s documentation, which is currently a group of markdown files. David defends the simplicity of this documentation style and gives recommendations and resources for those who need more help. Panelists Aaron Frost Brian Love Alyssa Nicoll Shai Reznik Guest David East Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Flatfile Cachefly Links https://firebase.google.com/ https://firebase.google.com/summit My Angular Story https://fireship.io/ Fireship Youtube https://twitter.com/_davideast https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: Bonnie Love Aaron Frost: Stop shaming people Miss Saigon Alyssa Nicoll: David East David East: Alyssa Nicoll Freakonomics The Signal and the Noise: Why So Many Predictions Fail-But Some Don't Special Guest: David East.
AiA 261: Angular Projects with Zama Khan Mohammed
In this episode of Adventures in Angular the panel interviews Zama Khan Mohammed about his recent book and other open source work he has done in the Angular community. Zama explains what is so different about his book and why it is worth reading. His book takes an approach different than the common practice of walking readers through concepts, instead, his book walks readers through using a project perspective. The first chapter walks through setting up Angular, installing Angular CLI and Angular console. After the set up is complete he walks readers through a very basic flashbase application. Zama explains how this first chapter is geared toward beginners. In his book, Zama shows users how to use the whole platform. He covers PWA and how to create brand new projects from scratch. The panel asks him about his unique project perspective strategy for this book. Each chapter of Zama’s book walks the readers through a different project, unlike most technical books that walk readers through one project introducing a different concept each chapter. Zama explains why he wrote the book this way. He wanted to bring different libraries and tools into each project to highlight how deep and rich the Angular community and ecosystem are. The panel shares how the ecosystem and community make Angular so great to use. Zama’s book is called Angular Projects and was published by Packt Publishing. Zama shares where to find it for those interested. The panel considers how hard writing a book must be. Zama explains the time and stress involved in writing a book. He admits he has been approached to write more books but has resolved to wait a bit before diving back into writing. The panel discusses Zama’s open source efforts in the Angular community. They consider a few of his projects including, ngx-formly, codelyzer, and ngx-loading. He wrote ngx-formly after using formerly and he decided he wanted to use it with Angular 2.0. The panel was impressed with his contributions to codelyzer, where he helped with the accessibility requirements. After using react-loadable Zama knew he wanted a similar feature in Angular to provide more control over loading so he built ngx-loadable. The panel defines lazy loading for listeners and explains how having control over what can load and how fast it can load can be useful in applications. Zama shares some of the improvements he has made in version 2.0. Zama shares his hopes for speaking at ng-conf 2020, this takes the panel down a tangent discussing the exciting workshops that will be at ng-conf next year. Brian Love will be teaching a two-day workshop on Angular fundamentals. Aaron Frost is teaching and observables class and a reactive angular class. They advise everyone to buy an ng-conf ticket and not to be afraid to submit a CFP. Back on topic, Zama shares the challenges in writing, publishing and maintaining an opensource library. He explains how contributing to open source is a great way to learn and a great way to see what a framework can do. He shares advice for those looking to get into open source and invites everyone to try Hacktoberfest. Panelists Aaron Frost Brian Love Guest Zama Khan Mohammed Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Flatfile Cachefly Links https://angularprojects.com/ https://twitter.com/mgechev https://github.com/mohammedzamakhan https://www.ng-conf.org/ https://hacktoberfest.digitalocean.com/ https://m.hero.dev/ngstory https://github.com/aaronfrost Audit your Angular app's accessibility with codelyzer https://twitter.com/mohamedzamakhan?lang=en https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: ng-conf: CFP Office Hours Aaron Frost: Late Night with Seth Meyers Zama Khan Mohammed: Hacking the Angular Compiler Special Guest: Zama Khan Mohammed.
AiA 260: NgRx, The Mystical Machine, with Wes Grimes
In this week’s episode of Adventures in Angular the panel has fun interviewing Narwhal rocks star and NgRx expert, Wes Grimes. Wes starts by sharing how he got started in NgRx. In a previous company, Wes was the lead architect for a project that had need of a state management solution, so it was his job to figure out how to use NgRx. While figuring it out he created a structure for using NgRx and used that structure to write a blog article about best practices for NgRx. This blog article took the world by a storm and now has over 200,00 views. People are now building libraries and courses based on his article. The panel has a little considering the possible searches that lead people to his article. Jennifer Wadella shares some of the weirder searches that have led people to her posts. After their fun, the panel tries to get back on track. This article thrust Wes into the world of helping people understand NgRx, what he calls a mystical machine. He explains how this article was only the beginning of learning NgRx and that he is currently working on revising that first post. The main point covered in the article was how to organize the store and how to store it in the file system. It walks through creating angular modules for each slice of the store. The second point is covers heavily is the use of barrels. The biggest problem Wes see people run into in NgRx is they do not know where all their actions are. He shares the solution he uses for this problem, using a public API to group actions so they are easier to find. The panel expresses their frustration with the hard time the CLI has with barrel files. Wes explains why this is a common problem and shares a solution. The panel asks for other gotcha’s to watch for when using NgRx. Wes explains how and what developers miss out on when they fail to use selectors to their fullest. When selectors are used correctly and completely developers receive all the benefits of the testing they do on NgRx. The other benefits are builtin memoization and reusability. Another gotcha he warns against is using facades before fully understanding NgRx. This really fires up the panel, who then debates the use of facades in NgRx. Aaron Frost expresses his opinion that NgRx isn’t for everything and that by using facades you may not need to use NgRx. Wes explains that the large companies he works for are already committed to NgRx as their solution and he advises them not to use facades. Wes explains the downsides of using NgRx, the first is when developers jump in before they understand it and back themselves into a corner. Another downside is the upfront investment cost when learning NgRx. The panel jumps in wondering what Wes thinks of hiding those developers unfamiliar in NgRx with a facade. Wes explains how in doing this the team would be compromising architecture in order to avoid teaching developers to use NgRx properly. He clarifies that he doesn’t think facades are bad but in order to use them correctly in NgRx developers must first understand how NgRx works. Aaron explains why when working with developers unfamiliar with angular he advises them not to learn NgRx right away. Wes shares how he has seen developers misuse facades. When using a facade it entices developers to hop back and for between imperative and declarative code. Aaron jumps in and explains that imperative code in reactive programming is very bad. He invites listeners to go out and learn more about this because it is very important to understand. The panel considers strategies to help teams code reactively. Wes recommends requesting data from the server. This pattern is straight forward to implement and handles a lot of the common use cases in the store. Aaron suggests turning off default change detection, doing so will force the programmers to code reactively. Another way suggested is to structure teams separating concerns. The episode ends with Wes sharing his experience joining the NgRx core team by working in the documentation, filling in gaps that he found. He also shares what will be coming to NgRx. The platform will be expanding beyond just state management, supplying reactive libraries for angular. They are also getting ready for an experimental release of NgRx component. Panelists Aaron Frost Brian Love Jennifer Wadella Shai Reznik Alyssa Nicoll Guest Wes Grimes Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Flatfile Cachefly Links NgRx — Best Practices for Enterprise Angular Applications The Facade of NgRx Facades Building with Ivy: rethinking reactive Angular | Mike Ryan | #AngularConnect 2019 https://twitter.com/wesgrimes https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: The Great Hack Shai Reznik: RxJS: A Better Way To Write Frontend Applications - Hannah Howard - JSConf US 2018 Complex Features Made Easy With RxJS - Ben Lesh Aaron Frost: Lizzo Jennifer Wadella: https://twitter.com/began_7/status/1177880930549223424 https://github.com/vmbrasseur/Public_Speaking Wes Grimes: ngGirls Special Guest: Wes Grimes.
AiA 259: Ngrid with Shlomi Assaf
In this week’s episode of Adventures in Angular the panel interviews Shlomi Assaf, talking about ngrid. After some playful banter about the naming of Ngrid, Shlomi shares the reasons behind building ngrid. The company he was working for at the time need a grid, he tested nggrid but wanted something completely opensource, so he built one. He also explains that nggrid caused some problems in their project which made him want something more customizable. Shlomi explains how much work is needed on the application and asks listeners to contribute to documentation or other areas of the project. Shai Reznik endorses Shlomi as one of the smartest peoples he knows and tells listeners if they want to learn from someone who knows a lot about angular to step up and join this project. The panel asks about the challenges Shlomi faced while building this app and what it was like using the CDK. Nggrid has a how company working on it but ngrid has only Shlomi. Shlomi explains that the CDK had a lot of the building blocks need to building blocks to build this application and was the power behind the project. The CDK’s lacks the ability to extend easily which was a challenge. He explains that his biggest frustration while building the application was the drag and drop feature. Shlomi shares many of the features he built into the application that even though he built it over a three year period he could do it piece by piece because of the way he designed it. He considers the selling points of the application and shares them with the panel. Shlomi compares ngrid to other grid, explaining how templating, creating columns and pagination are all made easier with ngrid. With ngrid there is also virtual scrolling and you can control the width of each column. Next, the pane considers performance, asking how the grid would handle if you loaded thousand or even tens of thousands of records and data onto the grid. Shlomi explains that unless the cells were extremely complex that ngrid’s performance would not suffer. The panel how ngrid could work with serverside rendering but not with NativeScript. Shlomi explains version support and advises listeners to use Angular 8. The panel ends the episode by sharing information about next year's ng-conf. Tickets go on sale on October 1, 2019, the best deals go fast so watch out for them. Many of the panel will be there, Brian Love will be giving the Angular Fundamentals Two-Day Workshop. The CFP also opens October 1, 2019, and will close January 1, 2019. Aaron Frost invites anyone who would like to submit to reach out to the veteran panelists to nail down ideas for their conference proposals. He also recommends submitting more than one. Panelists Aaron Frost Brian Love Jennifer Wadella Shai Reznik Alyssa Nicoll Guest Shlomi Assaf Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Cachefly Links https://www.npmjs.com/package/@pebula/ngrid https://shlomiassaf.github.io/ngrid/ https://www.ng-conf.org/speakers/ https://twitter.com/aaronfrost https://twitter.com/brian_love?lang=en https://twitter.com/AlyssaNicoll?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor https://twitter.com/shai_reznik?lang=en https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: NG-DE 2019 Angular Connect Shai Reznik: The magic of RXJS sharing operators and their differences Let Me Off at the Top!: My Classy Life and Other Musings Aaron Frost: Connecting with your children Shlomi Assaf: How we make Angular fast | Miško Hevery Special Guest: Shlomi Assaf.
AiA 258: Angular Architecture with Manfred Steyer
In this week’s episode of Adventures in Angular the panel interviews Manfred Steyer, the creator of ngx-build-plus and angular architecture expert and consultant. Ngx-build-plus is a way to extend how the CLI is doing its build. Manfred explains how ngx-build plus works in two different ways. The first is that it provides a partial webpack configurations file that merges with the webpack configuration that the CLI is using. The second, it provides a plugin with free methods that influence the CLI. Manfred consults with companies on architecture, he explains that the main problem when people take a simple application and make it complex, big, with a lot of entities and forms. This makes it difficult to manage in the long term. He borrows ideas from domain-driven design to help these companies structure their applications. Strategic domain-driven design is one of the main strategies he uses when structuring an application. Strategic domain-driven design is subdividing a big application into subdomains, then modeling those subdomains separately. By modeling the separately, the coupling is limited. This makes it easier to change parts of the code without breaking anything unrelated in the application. The panel asks Manfred for recommendations for using domain-driven design in their architecture. Manfred recommends using libraries within monorepos and outlines the benefits. Using this method creates isolation, you can’t easily access everything in the library because of the public API. Manfred explains how a public API works like a facade. Nx is the recommended tool for the monorepos, as it adds many great features to the CLI and is not as heavyweight as other monorepo solutions. Manfred explains one of his favorite features called tagging. This restricts which libraries can access another library. The panel discusses some examples of tagging. The panel wonders about Manfred’s opinions on state management solutions. Manfred explains that he doesn’t believe that every application needs a state management solution. When used at the wrong time a state management solution is an overkill. He also explains that not using a state management library does not make someone a bad person. The panel discusses how you know if you need a state management solution. Manfred indicates two things to look for when considering the use of a state management library. First, is there a lot of state? Second, is the state going to be used by many different components? If you are not sure he recommends starting with a facade and adding a state management library later if needed. The panel explains what a facade is. A facade is when you combine a lot of systems under a single API, like jquery. Manfred gives an example of what a management facade should look like. The panel shares experiences explaining how it works and gives advice and examples of using a facade. The topic turns to the importance of testing. Manfred shares his testing philosophy, asking how do you sleep at night knowing you have to change a part of the application? Does it scare you because you know you are going to break everything in a terrible and painful way? Or, Do sleep soundly because you know you are safe to do what needs to be done. Shai Reznik equates this to the shake meter, how much does your hand shake when you push the button to execute a change. Manfred’s recommends starting with unit testing, testing where you need it and avoid a testing coverage goal. Unit testing he explains are more stable than end-to-end testing. You do need end-to-end testing but very little in comparison to unit testing. Aaron Frost shares the tool protractor flake as a way to combat the flakiness of end-to-end testing. Manfred explains that there are two common mistakes people make in their angular architecture. The first is over-engineering and under-engineering an application. He explains the problems that arise with each and how to combat this problem. The sweet spot can be found by knowing what you want, finding the right structuring to fit what you want. The panel wonders how to measure the cleanliness of code in an application. Manfred recommends looking at each indirection and deciding if it is necessary. The panel explains what indirections are, an example is event mechanisms, you can’t see a direct effect. The panel discusses NgRx as an indirection framework. Manfred warns not to use NgRx all the time only when you need it. This launches the panel onto a tangent of choosing tools and how to weight the pros and cons of each tool. The phrase “use it when you need it” is considered by the panel, the genericness of the phrase is discusses. The panel advises new developers who don’t have the experience to gauge if they need something or not to do the research necessary to understand a tool and to experiment with it. The panel comes back to the other common mistake made with architecture which is chatty applications. Applications that send thousands of requests to the backend causing the application to slow. The panel considers why this happens. Aaron explains the concept of affordance and how this results in chatty applications. Panelists Aaron Frost Brian Love Shai Reznik Guest Manfred Steyer Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Cachefly Links NgRx + Facades: Better State Management https://www.npmjs.com/package/protractor-flake https://twitter.com/manfredsteyer?lang=en https://www.softwarearchitekt.at/ https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: The 5 Big Features of TypeScript 3.7 and How to Use Them Shai Reznik: Angular Testing Course Hip-Hop Evolution Aaron Frost: RxJs Live Lover Manfred Steyer: Star Trek: Picard ngrx-etc Special Guest: Manfred Steyer.
AiA 257: The Easiest Way to use Angular Elements with Tomas Trajan
Episode Summary In this episode of Adventures in Angular Tomas Trajan, an angular elements expert, breaks down how to use angular elements for the panel. Tomas explains that angular elements are great for very specific use cases. Tomas starts by describing a scenario with a large enterprise with tens of developer teams and hundreds of developers, they have a few choices on how to organize their applications. The first option is a messy monolith. The second option is using monorepos and Nx. The final option is to use a multi-spa solution. Tomas explains how the multi-spa solution works. This solution consists of 80 stand-alone applications, on the same page and share components. Tomas outlines the common problems when using the solutions and how using angular elements combat those problems. The panel moves on to considers how you know if you should use angular elements in this way. Tomas provides two questions to ask yourself when deciding whether or not to use angular elements. The first question is, are you in a multi-spa scenario? The second question is, are components shared across applications? If the answer is yes for both of those questions then angular elements can only help the situation. In last week’s episode of Adventures in Angular the panel interviewed Victor Savkin about using monorepos and Nx. The panel asks Tomas to compare the strategy of using monorepos and Nx to his strategy of using multi-spa with angular elements. He explains why an enterprise might choose multi-spa over monorepos. He also gives the reasons the organization he is working with chose to work with multi-spa. Aaron asks for clarification for using elements in these multi-spa projects. Tomas goes into great detail, breaking down the way multi-spa and angular elements work together. They walk through it together using consumer profiles as an example. Tomas explains that using his approach all the applications update components all at once using angular elements. The panel considers the benefits of using Tomas’s approach and which scenarios it would work best for. Aaron expresses his appreciation for all the work Tomas did and the problems he overcame then bundling his solution in a library together so developers can just use it without all the pain. The library can be found on Github. Tomas tells the panel that there has already been some community contribution to the library. He describes some of the pull requests they have received along with the plans they have for angular elements. The topic turns to mismatched versioning and how the bundle will work. Tomas explains that the only problem they have seen with mismatched versioning is with zone.js. He shares some workarounds to the problem and promises that they are working on a solution. The episode ends with the panel listing all the major benefits that an enterprise can gain from using the multi-spa and angular elements approach. It will save them money, allow teams to work together, create and isolation. Tomas also shares some of the new features available in angular elements today. Panelists Aaron Frost Brian Love Guest Tomas Trajan Adventures in Angular is produced by DevChat.TV in partnership with Hero Devs Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Cachefly Links AiA 256: Debunking Monorepo Myths with Victor Savkin https://angular-extensions.github.io/elements/ https://twitter.com/tomastrajan https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: https://node-atl.org/ Shai Reznik: https://netbasal.com/ Aaron Frost: How to Be Less Stupid About Race: On Racism, White Supremacy, and the Racial Divide Tomas Trajan: Slipknot EX Special Guest: Tomas Trajan.
AiA 256: Debunking Monorepo Myths with Victor Savkin
Episode Summary Victor Savkin, former angular team member and now cofounder of Narwhal Technologies Inc or Nrwl, returns to Adventures in Angular to teach the panel about monorepos. Victor starts by explaining what monorepos are and why you might need one. Monorepo style development is when multiple projects developed in the same repository and the tools used to manage code between those apps. There are many benefits to using monorepos as Victor explains to the panel, such as sharing code between apps. Monorepos help you see what's going on in reality as well as helps you take control of the structure of your code. It also allows for more interesting deployment strategies. Victor talks briefly about his time at Google, working on the toolchain and using a large monorepo. After the panel asks about the costs of using a monorepo strategy, Victor explains that there are many perceived costs that are actually false or easily overcome. The first perceived cost he tells the panel about is how people get confused and believe that apps have to be deployed together when they really have to be developed in the same repository. The second is the fear of misplaced ownership, that some other developer will come along and ruin their code. Victor explains that ownership can be configured and controlled so that no one you don’t trust can touch your code. The next myth developers believe about monorepos is that it doesn’t scale and especially when it comes to performance. Victor explains that when the app is set up correctly and testing used correctly this isn’t a problem. The final perceived cost is that Git will break. Victor debunks this by explaining that you would have to be doing extremely well in order for Git to be a bottleneck and even then there are ways around that problem. Victor explains the one real cost and that is you have to change the way you code. The panel discusses a few different coding styles. Victor recommends getting used to single version policy and trunk-based development. He defines trunk-based development, explaining how it works and why it is better for monorepos than long-range branch development. Victor sees two types of groups who want to get started in monorepos and he explains what they most commonly do wrong. The first is greenfield projects who jump right in without thinking about it and eventually crash. The second is teams with a giant app and through a monorepo in hoping it will help them structure their app. He explains there is a right way to start using monorepos in both situations. Asking the important question is how to get started. Agreeing upon the structure, naming, ownership, are you going to build the frontend and backend in the same repo, and the answers to a bunch of other questions will affect your work the most, even more than the tooling you use. Some of these answers will be specific to your company where others will be universal, like naming and ownership. With other tools for monorepo out there, the panel asks Victor why Nrwl decided to build their own tool. Victor explains that the current tools on the market do not do it all. Lerna only does one thing great and Bazel is very selective on who can run it. Nrwl is hoping to marry Bazel to Nx, so they can allow everyone to use Bazel. They want Nx to support all tools and even Windows. The panel wonders if Nx is perfect. Victor explains that it nearly there. Nx is pluggable and easy to use. It is easy to learn. Victor explains that they really care about developer experience at Nrwl. Nx is free and opensource so everyone can give monorepos a try. Resources for learning about monorepos are discussed. Victor invites everyone to watch the ten-minute getting started video on the Nx website. He also lets the listeners know about a new book coming out mid-September and it will be more organizational based than the last. The panel wants to know what comes with Nx. Victor explains that Nx gives you modern tools by setting up Cypress, Jest and other tools for you. Because Nrwl is a consulting firm, the panel hopes that Victor will have an update on the trends. Victor shares his view that trends don’t really tell you anything about the true status of a framework. How many downloads a framework has doesn’t show the longevity of that framework. Frameworks being used to make large scale apps that will be around for years is how you can tell the longevity of a framework. From that perspective, Victor feels that Angular is doing really well. To end the episode, Shai Reznik recalls how passionate Victor was about NgRx a few years ago. He asks Victor if he still feels the same way as before. Victor explains that NgRx is pretty well most of the time, has great docs, is well maintained, and he would still recommend it. Panelists Jennifer Wadella Brian Love Shai Reznik Alyssa Nicoll Guest Victor Savkin Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp My JavaScript Story Cachefly Links https://twitter.com/victorsavkin?lang=en Nrwl Nx — An open source toolkit for enterprise Angular applications. Effective React Development with Nx https://connect.nrwl.io/app/books https://nx.dev/angular/getting-started/what-is-nx MAS 040: Victor Savkin 042 AiA Dependency Injection and Change Detection with Victor Savkin 123 AiA Upgrading from Angular 1 to Angular 2 with Victor Savkin https://nrwl.io/ https://nx.dev/ Momentum https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Brain Love: https://trunkbaseddevelopment.com/ https://www.oreilly.com/library/view/why-angular-for/9781492030294/ Alyssa Nicoll: Caffeine Content Warning! Jennnifer Wadella: The Fall Season NGD Conf Laptop Safety at Conferences Victor Savkin: The Boys Use Less Social Media Freedom App Shai Reznik: https://bit.dev/ True Detective Special Guest: Victor Savkin.