title

Adventures in Angular

DevChat.tv

6
Followers
2
Plays
Adventures in Angular
Adventures in Angular

Adventures in Angular

DevChat.tv

6
Followers
2
Plays
OVERVIEWEPISODESYOU MAY ALSO LIKE

Details

About Us

Adventures in Angular is a weekly podcast about developments in the Angular community, tools, techniques, and ecosystem.

Latest Episodes

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 doc

51 MIN1 w ago
Comments
AiA 260: NgRx, The Mystical Machine, with 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

44 MIN2 w ago
Comments
AiA 259: Ngrid with 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 knowin

68 MIN3 w ago
Comments
AiA 258: Angular Architecture with 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 ...

48 MINSEP 17
Comments
AiA 257: The Easiest Way to use Angular Elements with 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, Jes

69 MINSEP 10
Comments
AiA 256: Debunking Monorepo Myths with Victor Savkin

AiA 255: The Elephant in the JS Community

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Adventures in Blockchain Cachefly Panel Jennifer Wadella Brian Love Aaron Frost Alyssa Nicoll Summary Addressing the recent twitter fire surrounding the JavaScript community, the panel shares their opinions on social awareness. They begin by discussing a time they inadvertently offended others and what they learned. They consider the best way to respond if you do offend someone; the correct way to apologize and learn from your mistake. The importance of taking responsibility and sharing a desire to learn is discussed. The panel considers how the community can be proactive in creating a safe space while being inclusive of everyone. They discuss resources for learning about sexism, racism and not feeling guilty as a victim. Links The Missing Stair The Gift of Fear https://twitter.com/TatianaTMac/status/1165781104122634240 https://twitter.com/why_is_js_mad/status/1164603312915791873 https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Aaron Frost: Family Time Brain Love: Disconnect and enjoy real life https://codeimg.io/ Alyssa Nicoll: Family time Jennnifer Wadella: Everyone Is In Love With These Fashionable Women On TikTok Taylor Swift- Lover

48 MINSEP 3
Comments
AiA 255: The Elephant in the JS Community

AiA 254: Nx and Angular CLI with Brandon Roberts

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp iPhreaks Podcast CacheFly Panel Aaron Frost Joe Eames Alyssa Nicoll Joined By Special Guest: Brandon Roberts Episode Summary Joining the panel in this episode is Brandon Roberts, a Senior Angular Engineer at Narwhal Technologies. Brandon was previously on the Angular Team at Google. Brandon talks about what he is working on currently at Narwhal. They have recently launched more support for React and Web Components and Brandon talks about his role in that project. The panel then asks when Narwhal will release support for Knockout and jQuery. They talk about cases when to use Nx and when to use Angular CLI. They then talk about the effort required to learn Nx. They then talk about Narwhal's support plans for NgRx 9. Links MAS 091: Brandon Roberts NgRx: A Reactive State of Mind (Two Day Workshop) https://www.ng-conf.org/2019/speakers/brandon-roberts/ Brandon Roberts – Medium Brandon (@brandontroberts) | Twitter Building Full-Stack Applications Using Angular CLI and Nx - Nrwl nrwl/nx: Extensible Dev Tools for Monorepos - GitHub Picks Alyssa Nicoll: ngAir 211 - Template Streams in Angular & Change Detection Profiling w/ Dominic Elm & Kwinten Pisman Joe Eames: Roll for Adventure Board Game Stop Thief! Board Game Aaron Frost: Your local swap meet MLS Soccer Utah Jazz Brandon Roberts: Connect Tech NWA Technology Summit 2019

43 MINAUG 27
Comments
AiA 254: Nx and Angular CLI with Brandon Roberts

AiA 253: Upgrading AngularJS to Angular with Sam Julien

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan React Native Radio CacheFly Panel Aaron Frost Jennifer Wadella Alyssa Nicoll Joe Eames Joined By Special Guest: Sam Julien Episode Summary Sam Julien, Technical Community Manager at Auth0 joins the panel to talk about upgrading AngularJS to Angular. Sam has a video course on transitioning from AngularJS to Angular and consults with companies that are in the process of upgrading. Sam and the panel share their upgrading experiences and tips on what they have learned. They also discuss how to convince companies that do not want to upgrade to Angular and agree that sometimes it's in the best interest of the company to present the financial benefits of the upgrade rather than the discuss technical aspects. The panel also talk about other reasons to upgrade from AngularJS, the most important of which is the announcement of AngularJS end of life on June 30, 2021. Tune in to learn about the biggest "got you" Sam...

51 MINAUG 20
Comments
AiA 253: Upgrading AngularJS to Angular with Sam Julien

AiA 252: Saying Goodbye to Angular CLI with Hans Larsen

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp CacheFly Panel Aaron Frost Shai Reznik Joined By Special Guest: Hans Larsen Episode Summary Hans Larsen, Team Lead of the Angular CLI at Google has left Google to pursue other opportunities. The panel meets with Hans to talk out about his time at Google Angular team and some of the challenges they faced. They then talk about Hans' future plans as well as some of the fun times they had at the Angular conferences. Links Hans Larsen LinkedIn Hans (@hanslatwork) | Twitter Angular is About Love! webpack Picks Shai Reznik: 16 Personalities Aaron Frost: NOVA: Black Hole Apocalypse | Netflix Hans Larsen: Become a parent Have a drink with someone you love

42 MINAUG 13
Comments
AiA 252: Saying Goodbye to Angular CLI with Hans Larsen

AiA 251: AngularJS to Angular Migration with Craig Spence

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp CacheFly Panel Aaron Frost Alyssa Nicoll Shai Reznik Joined By Special Guest: Craig Spence Episode Summary Craig Spence was a developer at Trade Me in New Zealand before he moved to Sweden to join Spotify. Trade Me is New Zealand's biggest website and it is similar to eBay where people buy and sell lots of different items. Craig talks about his experiences migrating Trade Me from AngularJS to Angular and the challenges they faced. One of the tips Craig has for the audience is when faced with a problem it is better to ask for help from those who have been in similar situations before, rather that attempting to solve it alone. The panel also agrees that developers should stop writing in AngularJS and make the decision to move forward. Craig recently started working at Spotify in Sweden and is dealing with a challenging bug that has lasted for over 13 days. Links Craig's LinkedIn Craig's Tw...

42 MINAUG 6
Comments
AiA 251: AngularJS to Angular Migration with Craig Spence

Latest Episodes

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 doc

51 MIN1 w ago
Comments
AiA 260: NgRx, The Mystical Machine, with 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

44 MIN2 w ago
Comments
AiA 259: Ngrid with 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 knowin

68 MIN3 w ago
Comments
AiA 258: Angular Architecture with 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 ...

48 MINSEP 17
Comments
AiA 257: The Easiest Way to use Angular Elements with 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, Jes

69 MINSEP 10
Comments
AiA 256: Debunking Monorepo Myths with Victor Savkin

AiA 255: The Elephant in the JS Community

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp Adventures in Blockchain Cachefly Panel Jennifer Wadella Brian Love Aaron Frost Alyssa Nicoll Summary Addressing the recent twitter fire surrounding the JavaScript community, the panel shares their opinions on social awareness. They begin by discussing a time they inadvertently offended others and what they learned. They consider the best way to respond if you do offend someone; the correct way to apologize and learn from your mistake. The importance of taking responsibility and sharing a desire to learn is discussed. The panel considers how the community can be proactive in creating a safe space while being inclusive of everyone. They discuss resources for learning about sexism, racism and not feeling guilty as a victim. Links The Missing Stair The Gift of Fear https://twitter.com/TatianaTMac/status/1165781104122634240 https://twitter.com/why_is_js_mad/status/1164603312915791873 https://www.facebook.com/adventuresinangular https://twitter.com/angularpodcast Picks Aaron Frost: Family Time Brain Love: Disconnect and enjoy real life https://codeimg.io/ Alyssa Nicoll: Family time Jennnifer Wadella: Everyone Is In Love With These Fashionable Women On TikTok Taylor Swift- Lover

48 MINSEP 3
Comments
AiA 255: The Elephant in the JS Community

AiA 254: Nx and Angular CLI with Brandon Roberts

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp iPhreaks Podcast CacheFly Panel Aaron Frost Joe Eames Alyssa Nicoll Joined By Special Guest: Brandon Roberts Episode Summary Joining the panel in this episode is Brandon Roberts, a Senior Angular Engineer at Narwhal Technologies. Brandon was previously on the Angular Team at Google. Brandon talks about what he is working on currently at Narwhal. They have recently launched more support for React and Web Components and Brandon talks about his role in that project. The panel then asks when Narwhal will release support for Knockout and jQuery. They talk about cases when to use Nx and when to use Angular CLI. They then talk about the effort required to learn Nx. They then talk about Narwhal's support plans for NgRx 9. Links MAS 091: Brandon Roberts NgRx: A Reactive State of Mind (Two Day Workshop) https://www.ng-conf.org/2019/speakers/brandon-roberts/ Brandon Roberts – Medium Brandon (@brandontroberts) | Twitter Building Full-Stack Applications Using Angular CLI and Nx - Nrwl nrwl/nx: Extensible Dev Tools for Monorepos - GitHub Picks Alyssa Nicoll: ngAir 211 - Template Streams in Angular & Change Detection Profiling w/ Dominic Elm & Kwinten Pisman Joe Eames: Roll for Adventure Board Game Stop Thief! Board Game Aaron Frost: Your local swap meet MLS Soccer Utah Jazz Brandon Roberts: Connect Tech NWA Technology Summit 2019

43 MINAUG 27
Comments
AiA 254: Nx and Angular CLI with Brandon Roberts

AiA 253: Upgrading AngularJS to Angular with Sam Julien

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan React Native Radio CacheFly Panel Aaron Frost Jennifer Wadella Alyssa Nicoll Joe Eames Joined By Special Guest: Sam Julien Episode Summary Sam Julien, Technical Community Manager at Auth0 joins the panel to talk about upgrading AngularJS to Angular. Sam has a video course on transitioning from AngularJS to Angular and consults with companies that are in the process of upgrading. Sam and the panel share their upgrading experiences and tips on what they have learned. They also discuss how to convince companies that do not want to upgrade to Angular and agree that sometimes it's in the best interest of the company to present the financial benefits of the upgrade rather than the discuss technical aspects. The panel also talk about other reasons to upgrade from AngularJS, the most important of which is the announcement of AngularJS end of life on June 30, 2021. Tune in to learn about the biggest "got you" Sam...

51 MINAUG 20
Comments
AiA 253: Upgrading AngularJS to Angular with Sam Julien

AiA 252: Saying Goodbye to Angular CLI with Hans Larsen

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp CacheFly Panel Aaron Frost Shai Reznik Joined By Special Guest: Hans Larsen Episode Summary Hans Larsen, Team Lead of the Angular CLI at Google has left Google to pursue other opportunities. The panel meets with Hans to talk out about his time at Google Angular team and some of the challenges they faced. They then talk about Hans' future plans as well as some of the fun times they had at the Angular conferences. Links Hans Larsen LinkedIn Hans (@hanslatwork) | Twitter Angular is About Love! webpack Picks Shai Reznik: 16 Personalities Aaron Frost: NOVA: Black Hole Apocalypse | Netflix Hans Larsen: Become a parent Have a drink with someone you love

42 MINAUG 13
Comments
AiA 252: Saying Goodbye to Angular CLI with Hans Larsen

AiA 251: AngularJS to Angular Migration with Craig Spence

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Angular Bootcamp CacheFly Panel Aaron Frost Alyssa Nicoll Shai Reznik Joined By Special Guest: Craig Spence Episode Summary Craig Spence was a developer at Trade Me in New Zealand before he moved to Sweden to join Spotify. Trade Me is New Zealand's biggest website and it is similar to eBay where people buy and sell lots of different items. Craig talks about his experiences migrating Trade Me from AngularJS to Angular and the challenges they faced. One of the tips Craig has for the audience is when faced with a problem it is better to ask for help from those who have been in similar situations before, rather that attempting to solve it alone. The panel also agrees that developers should stop writing in AngularJS and make the decision to move forward. Craig recently started working at Spotify in Sweden and is dealing with a challenging bug that has lasted for over 13 days. Links Craig's LinkedIn Craig's Tw...

42 MINAUG 6
Comments
AiA 251: AngularJS to Angular Migration with Craig Spence