Angular Team Panel | #AngularConnect

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Applause] okay so I just want to thank everyone for submitting questions you may have seen us playing around with a bit that's because there were Jubilee cuts we also don't necessarily have time for all the questions but hopefully we've got a good selection to interest you and thank you very much for submitting them okay so I'm gonna start with a more general question so this is for each of you what can we do as a community to help you he's gonna start if you're a library maintainer then you should upload your project to minkos repository I've forgotten the URL but if you were around during the week and during this week then you would know what it is go and look on the videos and make sure that it builds with and worked with nd CC because that's going to then help the rest of the community and all of the people to use little library make the transition to Ivy much cleaner that repo has been moved to the angler organization so it's easier to find now but even the more generally just checking our IV testing your application and finding any issues if you come across any problems now would help us so that we have less stress after the main release speaking of issues when you write an issue make it as simple as possible and explain specifically what do I click on what do you expect what should actually happen because a lot of times I look at issues and I'm like I have no idea what are you trying to say so I assume I'm an idiot that's a pretty good assumption and go from there like the simpler the better if your stack --let's has a folder with a bunch of components in it you've gone too far come on oh this was for all of you I would say if you maintain a library just kind of feel the responsibility toward the the community so like like make it useful but also make it right and like profile it it's just like many people who rely on your work to have like a good time so just you know so to continue on what we said that's very important that if you have a bug to provide a reproduction small reproduction derivative model the minimal code needed to reproduce your problem and if you don't actually provide a reproduction in like an agate or stack blades just in code always provide the version of what your node version is your CLI your framework etc because you might be reporting an issue that it was fixed in a patch version that was just released so for me if you want to contribute to angler I would highly recommend going through the pool requests because it allows you to see basically what a certain change needs for the code that's behind that which really helps in understanding what needs to be done for getting stuff changed and so that would be it for me I already answered bother I'll just add on to let's just say we have more than million developers you can count how many of us are here on the stage so be engaged be involved with the community if go and help other people on issues on Twitter or whatever you see somebody else was newer than you in the community become the local leader do a meet-up basically the only way to scale to million people is if we have thousands of experts below and and I want everyone in this room to try out ivy because there's a lot of us and everyone on the livestream because I think we can read some pretty crazy code and catch every possible edge case so that no matter what we write in the future it'll continue to work yes I I think maybe some documentation help him to revise some documentation even the example or some exactly use it we also helped the other users to use angular better so I think for me again the the top thing would be submitting issues and having good descriptions so that we can easily reproduce final locate both of the issues and fix it but also what Julie said if you if you are looking to contribute to help there are simple stuff that you can do like fixing something in the dog that you read and you see a type or anything and even if it's if it seems tiny it's a great help for us so don't be afraid to submit even fix for a thing that you that seems trivial tell us when something doesn't work clear instructions minimum viable reproduction like mishko is also saying even better please fix it and submit appear reto actually kind of touched on what I wanted to say which is keep being awesome to each other I love being in the angular community you guys are some of them girls are some of the most like fantastic respectful amazing people to work with and it it just on a day-to-day basis for me it's really motivating to work on a framework that has such an amazing and loving community so thank you all talk to each other often times engineering and supp getting overly focused on the technology and the choices and the the code but every time you open up and talk to someone and share your problems share your successes you're gonna benefit from that are you saying they should connect you all took everything so I'll extend on what was said about issues yes minimum viable issue or reproduction of issues and if we feel like it didn't quite like make sense to us and we asked for reproduction please provide that reproduction there are a lot of issues that get opened and somebody is like this problems happening and here's why and then we're like well we don't quite know can you like do this thing and then we never hear back which just leads to a lot of orphaned issues so follow up on those things I guess I want to of course from a non technical point of view kind of include building on what Stephens mother said you can always try running an angular conference because that will help bring everyone together and and learn more about angular and if maybe that's a little bit too big a jump then you could start right like running a meet-up or going to a meet-up and helping it and giving talks so it's a lot about the community as well as just the the technical things that you can do to help us as a team cool okay so just worth saying we've had a lot of questions on this which you've combined so I 18n which is international Asian nation what's the actual status about the angular i18n implementation any update on run time I 18n the buck stops here now so we've answered this question a couple of times at various points during the during the day so apologies if I'm repeating myself but um internationalization is going to be an important part of angular v9 we are putting in place the basic machinery to support a new pipeline for making translations faster and more versatile for you as developers I'm not going to go into the detail but the main point that you should take away is that we are going to be providing primitives which you will be able to build a on people in the community or maybe us within the team to add features the difficulty about talking about runtime translation is it means a lot of things to lots of people like everyone I spoke to you have a slightly different view on what it means so we need to spec that out work out what's appropriate for us to build and what's appropriate for the people in the community or even an individual app developers to build but our aim is to provide a basic level that you can build upon while still maintaining backwardly compatibility with their v8 there's a bit general but this is a big panel I'm just going to add that we really care about internationalization and actually in the keynote that had like three slides all about internationalization we were running over time so I deleted them and I've been regretting it's the last two days the questions were about internationalization so we care about it it we're gonna be on par with what we have today in v9 but it's gonna be much faster and we are designing in a way that will enable runtime internationalization but as Pete said there's more design work before that is out generalize I had a little bit to it which is that keep in mind that weird our first step is to just replace what we already have so all the new features will come later so it's not that we don't think runtime is important it's just it's not strictly required to be backwards compatible with what Ivy what the view engine is so that's why we're doing that thing first and after that's done we're gonna do other things afterwards oh and the last thing I'd say is um the conversations I've had in the last two days have been really informative for me being involved in the implementation of this stuff so if any of you are you regularly using internationalization and have a view on how you would like to be able to use it then please get in touch with me and I'd really appreciate your views because it will help us guide our future designs great so we heard in the keynote about Ivy and the plans for when that was going to be released the question is what's up next because I can take the one so in version 9 it's all about enabling Ivy for applications version 10 enabling for libraries and also starting to build up on the internal api's that IV enables I show some of the examples of that in the keynote we have some explorative work going on related to the server-side rendering and the hydration of server-side render code many other experiments are going on I don't want to go too much into details because we don't know we don't want to commit to any particular features just yet IV still the number one priority and getting that out is what we are focused on so that's the primary focus now where do you draw the line between useful performance optimizations versus unnecessary micro optimizations should I care about mono morphism in day-to-day development surprise surprise it's a complicated question I think the short answer is that in most cases when you read your application code you should make it to make it look simple maintainable and usually the VM does the right stuff now for something like a framework we're in a little bit of a different boat for a couple of reasons one is usually we have to call into the application code and we call into the application code we always call it from the same location like we have a piece of code that's responsible to call ng on in it and so it is responsible to call everybody's ng on in it and which means that that particular call site becomes mega morphic and so from our point of view it matters what we do for optimization there but it probably not the same problems that you face as an application developer so it's good to understand these things it's good to kind of enlarge your understanding of how the VM is work and sometimes considered like a some things behaving strangely what could it be so it's nice to have this kind of knowledge but I would say for most cases in application development this is just not an issue it's a lot more interested to make sure that the code is simple maintainable first second is if something is not running fast usually it's some macro optimization that is off and you should focus on that first and then micro optimizations such as I'll make a morphic calls and inlining they do matter but it usually only matters in super tight code which just is running over and over like for example for us it matters for change detection right it's rare that such code would be written by the application it's possible and so that's why it's useful to know about it usually doesn't happen don't forget to measure and profile yes yes yeah like I think like if there will be like one advice is just open in profile area like record the profile and have a look at it because most of the time there is like one or two like very obvious things that just jump at you like they are orc literally screaming and saying like just go and fix me and it's just like they don't have a chance because people just don't open it profile it so like number one performance advice to the actual you measure okay so it'd be really interesting to hear during the conference about the inner workings of at the angular team what was your motivation behind this transparency transparency is very important transparency also extends beyond code angular is a lot more than just code so when you understand the internal workings of something and also understand the rationale behind some of the decisions and choices we make you tend to trust it more you work with it better and you become more productive that was the motivation from from my perspective another part of it is demystifying how things work so that it it's more approachable if you actually understand the inner workings of our team then our team doesn't seem scary I worked on the components sub team for a while before focusing more on framework stuff and I was scared to submit anything to framework and I sat next to everyone so I can't imagine or I can't imagine that for everyone else it's got to be even more scary so making ourselves more or making our project more approachable is definitely a goal of that I also find it interesting when somebody sends a PR and says why can't you just merge it it takes you two seconds and you go like then actually it does not merging takes two seconds everything before merging takes days well the actual clicking the but like everything before and after in Google 3 and like all these pieces so by understanding all these things you know it's easier to understand that there's you know things are not quite that simple as you think they are ok so this question is for as many of you you want to answer it what's your favorite angular release and why I like at next because because you could just put that in your package JSON and then you're always on the latest angular and you always have the best features nothing can go wrong there why not it meant not a head or Master I'm not crazy that's what Google uses yeah yeah we do test that it always builds an NPM package so you should be good on master actually maybe I'll take the leap yeah for me for me it's the it's the releases we met along the way made along the way however that saying goes I really liked eight zero just because differential loading is I think really a fantastic manifestation of this idea that we can make angular better by tweaking your apps and how they build and how they ship without you having to do anything that makes your apps better and delivers better user experiences I think if we could do that in every release make your apps better and not have to change anything we would gonna do that [Applause] and to get a little bit sentimental my favorite release is zero point ten point well because this was when I first started using angularjs and like when I first started interacting with the angular team and meeting these guys now it's been a wonderful experience and like that was the moment when I joined that joined the parade so it's been fantastic ever since for me it's the one that we already released because that's when like all the work is done and people get to enjoy what we've done but if I had to call one out I think b6 was pretty cool because that's when ng update came out and that really made it much easier for people to stay up to date is I am no one's gonna say the future one then where you get delete order I love all my children equally so someone's commented that angler material was hardly a topic can we get a status update sure so your components as a whole is mostly focus heavily focused on set is creating blinking entirely on the name of them I'm testing harnesses sorry and then building those testing harnesses for the material components themselves as well as moving our material components on top of the materials design teams MDC components so that we can stay completely up to date what with what the material design itself is I think that's that's the main focus that's been that's been happening for the team the the reason why it wasn't specifically talked about is when we planned who was going to come here I was on the components team so I was going to do that but now I'm focusing on Devon for us so we didn't have a components talk okay fair enough what advice would you give to a project team that's just about to start upgrading a medium-sized project from angularjs version 1.7 very specific oh I guess I can answer some of this one mostly because I so I'm on angularjs 1.6 so not seven so there's a little difference between there but at least the advice that helped my team the most is to plan out how the components interact with each other so if you migrate them at least from bottom up there's a couple different approaches but knowing what the dependencies are in really thinking of your project as a whole when you're going about migrating it it helps reduce the burden at least halfway through saying oh no I messed it up it's not a good order and I made my life more complicated you have more Georg I just wanted to say that I hadn't change anything in that regard so it's not something that should extra work or something and we have we keep working on energy upgrade and adding small features that will make that work easier for you and maybe the work on interpreter has slowed down while the focus is on Ivy but with Ivy out there will be more work on that there has been some changes that would make testing easier like when you test services with some helpers but other than that there's not something that hasn't been mentioned before planning out and having like your ideal error jes application be in a good state writing the best angularjs application that you can before you start the upgrade would make it a lot easier also what i've seen teams be successful with is convert the route of the application to angular as soon as possible so that you can lazy load angularjs in and build most of the application the main screens with angular and the least frequently pages you can then lazy load angularjs please load the rest of the application and still keep it running cool so let's speak it yourselves what are some of your favorite blogs podcasts or any other resources that you could share with us let's open to anyone take technical ones are generally anything whatever you want we are I like a podcast called the partially amid life it's a philosophy podcast my kids love Wow in the world you have kids it's awesome it's science done in a very humorous way specifically targeting kids but it's funny for adults too for me it would for me it would be angular in depth if you haven't heard about it it's not some forum to learn about advanced angular stuff so really I do recommend you of coffee cetera thanks Amex I would say Google talks especially ones that are focused on the brain science and psychology and like it has like surprisingly it had like surprisingly huge impact for me as their like for as a developer you would say like it's you know it's all about languages and frameworks but like we've got our brain we kind of need to understand how it works so there are like excelent Google talks on this it might sound silly but Twitter like I know it's old and like it's probably it's gonna be over in the next couple years but for now web development is still very very active on Twitter so just ignore all the trolls and just look for great articles and content that people are sharing yeah I thought to agree with Stephen that Twitter is a good source of information and to yourself up to date if you follow the right people oh I really like to listen to NPR one which is a podcasting application that suggests podcasts from all around the world and you get to be exposed to many different disciplines it's you know not just of engineering it can be you know psychology or ever in history and I find especially he very very fascinating you know there are so many things that happen for a reason and we just see the artifacts now in dullness and how it happens so knowing Hawai we are somewhere where we are in how certain things happen is very informative anyone else nope good my life have you said things happen for a reason that things happen for good reasons I like that I think we just avoided saying many of the potential angular related ones just because there's so many great ones out there but if we picked out too many individual ones it would be unrepresentative so that's probably why we all generally tended to stay on to the more general sides of things just to be safe fair enough so other than ivy what other features of version 9 is a team excited about one of the features that I'm really excited about is the simplicity to build Universal so previously we had to call the server builder and after the server builder there was another web pack built and now it's just one so the server builder now can build your server TS and your whole server part so one build does it work we can also enable bundling of dependencies one server and hopefully coming soon optimizations of JavaScript on the server as well yeah most of the team was really focused on Ivy and Ivy's the v9 primary feature so there are smaller improvements we're gonna improve dependencies update dependencies so like typescript updates are actually updates stuff like that but we're not working on any bigger features in v9 besides ivy because by Ivy's big enough by itself it says to keep on the components topic we are adding two components the YouTube player the like component that actually reaches in and does the YouTube iframe met like API management as well as a Google Maps component are you still working on improving the bundle size and performance yes I could expand on that I guess I I yes [Laughter] like why you have yes we're still working on the the bundle size specifically we want to look a bit more on more of our fixed costs so one thing that Ivy already does extremely well is we've reduced our variable costs so the code that we generate for you is much much smaller than it used to be and so now we're kind of going back and cleaning up because I kind of a natural consequence of moving some of the logic to the runtime and by you know dividing all of our functionality up into more pieces with the instructions you know naturally it's gonna get a little bigger so now we're kind of going back you know reviewing everything that we've done in trying to reduce the size of the framework that's gonna improve it and also electrical work you did it with gzip we're also working on compression and making it compressed of all I don't think cool what tool would you suggest to use for end-to-end testing of an angular application so as you probably know protractor is the default solution in CLI this is because webdriver testing is the primary way to test applications at Google we actually did a deep down into Cypress versus webdriver testing for uses in Google and determined that we cannot afford moving away from testing against real browsers just because we have so many mission-critical applications that need to be tested on real browsers if you don't know Cypress is chrome only for now in analysts that changes we cannot start using it for internal purposes of Google so we know that cyber provides many benefits when it comes to the open experience speed and some reliability so if if you can afford a testing only on one browser you can install Cypress into your project and start using if I'm testing if you want to test against real browsers if that's your business requirement then protection with Driver are the best choices ok so you got time maybe one or two more questions um is there a way to get custom decorators shakable with ivy it's a ruby ten oh you want me to repeat it okay yeah is there a way to get custom decorators tree shakable with ivy ah it's reasonable okay it's probably not a great idea to be writing custom decorators right now and the reason for that is because the spec is still evolving and might change a little bit before it lands in its final form the problem with tree shake ability in custom decorators is actually a problem at the language level the way they have to be down leveled right now into both es 2015 and es5 make it hard for the optimizers to kind of make good decisions around decorated classes and part of it is just the fact that a decorator is almost by definition a side effect like it's it's going to be changing the class and kind of doing operations based on based on its implementation so yeah I would wait until the decorator spec is finalized and at that point the optimizer tools should get a little bit better at dealing with them there's not really much we can do in angular to make that experience any better at the moment okay and so our last question and optimized runtime code inside Ivy is very interesting is it tuned for v8 is it fast on ieave other browsers as well as Chrome try and keep that to 5 minutes the answer or less you know it was quite an easy question so so I will start having misko will add to it but it's definitely not tuned for v8 is just I think that the performance tracking tools are like the best in chrome I guess right now and all the touring around v8 is it's just the best analyst like I am not aware of something so it's like the easiest for us to understand what's going on inside the filter machine using those tools but I believe that most of the optimizations that v8 is doing is like the principles are the same so all the browser's like mega Murphy calls will be slower in all the browsers so there is a possibility that like you know one artifact of our like of us using v8 as the primary tools that we will do a specific optimization which is like you know targeting v8 but I don't believe we should be slower in our other browsers no in general these techniques that the VMS use are well-known and there are used across not just in JavaScript are used in Java or any other VM system that you happen to have so this is not specific to even in language not even a browser so this is just a standard set of tricks that the VM authors use to deal with these particular problems thank you so I think unfortunately we've run out of time so can we hear it for the angular team and thank you very much for being safe [Applause] [Music] you
Info
Channel: AngularConnect
Views: 795
Rating: 4.6666665 out of 5
Keywords:
Id: G5rBTvLugVs
Channel Id: undefined
Length: 31min 53sec (1913 seconds)
Published: Fri Sep 27 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.