💥 Learn Angular Forms in-depth and start building complex form controls with ease💥 🔗 10% discount for the first 10 students - bit.ly/advanced-ng-forms-discounted 💡 Short Frontend Snacks (Tips) every week here: Twitter - twitter.com/DecodedFrontend Instagram - instagram.com/decodedfrontend LinkedIn - www.linkedin.com/in/dmezhenskyi
The Dependency Inversion Principle use case is great. The combination of local provider, Injection Token, useExisting and Content Projection is just epic. Good job Dmytro!
Thanks a lot for this video. I'm not a native English speaker but I was very impressed that you managed to explain the Liskov principle much better than I heard in my native language. This is because your explanation was from real life but not from books.
Thank you! Very helpful. It is quite challenging to find such a good combination of integrity, consistency and practicality inside one video about Angular. Definitely favorite frontend youtube channel!
Great content! Congratulations 👏👏 Would be great if you create a video about debugging angular memory leaks. 😉 it's an difficult issue to find good references.
I really 🤍🤍🤍🤍🤍🤍 u .You rescue me today in the interview.Your video before the interview with 2 hours makes solid very clear.Allah bless u .Keep do this please apply head first design pattern in angular also 🤍🤍🤍🤍 u from Egypt.
Not sure about Open/Close principle. For me your explanation looks more related to code reusability. I expected smth more parent - child (when child class extends parent) related examples. What do you think? But explanations of other principles are amazing)
5:04 if you're not good at listening English (not your native language) like me, and has a little trouble to get what rule he said, it's the "And rule" (the auto caption generates "end", and I took some time to figure it out)
This contains video invaluable information. Thank you very much for putting the time and effort creating this. The example is fantastic with the right mount of complexity to deliver the learning lesson. Thank a lot. Keep it up. I really like the content you are making.
A little side note for the Interface Segregation Principle, since it has a major benefit that maybe isn't clear in the beginning: The angular lifecycle hooks are a great example since every hook method has its own interface. The benefit of the principle is that a) implementation developers do not need to implement irrelevant code (as demonstrated in the video) and b) implementation developers of your library/component whatever will only ever see those bits of the implemented code that is relevant to them when you provide them references to classes. b is maybe not so obvious but imagine you had a class that has some methods that must be public due to other internal dependencies (the way component classes are forced to have public props/methods for their template immediately comes to mind) but you don't necessarily want the implementation developers that use your class see all the methods. The solution is to write an interface and only ever provide variables to the class typed with that interface. That could be in callback Methods, abstract methods or anywhere else where an instance to a consumable class would occur. This pattern is especially useful in typescript where you have so many different ways to compose your classes due to the nature of javascript. Example: You have an API abstraction with read and write methods (yes that sort of breaks CQRS, but let's ignore that) but you want to expose only the reader API although all operations are implemented in one class. That's where you would expose the class instance by typing it with the IReader (silly name, sorry) interface. Consumer code can now only access the reader methods. Unless they (apiInstance as IWriter).write :D
Good content as usual bro, I like it. ♥ Just I wanna mention your little typo that "wether" must be "weather" :D Anyways,, keep posting such nice videos
Thanks a lot, Dmytro! I might have some recommendations for you. I hope It would be great if you describe or explain and show your little padawan's the right way of use. 1 - Observables 2 - HostListeners. Thanks a lot!
Another excellent video, Dmytro. Thank you for educating me on the use cases where SOLID could be used with Angular. I will have to re-watch that last Dependency Inversion section a few more times to understand better. Nevertheless, the 40 minutes taken up in this video flew by with so much knowledge you shared. Thank you for being awesome!
Have you thought about making some series about jasmine and tests in Angular? I would be happy to see it on your channel. You do great, keep it like this.
How to do Component communication as it becomes much harder when working with multiple sub components. Especially, getting data in the parent component.
I have the same problem now. I'm trying to understand the OOP principles and their patterns, but it's still hard to see them in Angular. And if you can find examples of principles, it is more difficult with specific patterns, because you read mainly on examples of object-oriented languages, where only one paradigm, and we have OOP, Functional programming, Reactive programming. And you just ask yourself "The problem is that I do not find them yet, or we just do not have them in JS/TS"
Hi Dmytro, thank you for all that interesting topics that you covered so far. The way that you are explaining everything in deep is very very good approach and again than you for that. Can I give you an idea to explain the change detection strategy more deeply with couple of examples, thanks in advance ;)
Can you please make a another video for ng-content and ng-template . Like what is use case where we must use ng-content or ng-template . Like I know the one diff we can pass data from container to template but I want to know this in more details. Please help Thanks In advance.
Great explanation as always! About DIP do you use injection token for multiple optional interfaces? Say weather implents reloadable, unitConversion and velocity implements unitConversion only. And parent component should be able to distinguish child capabilities and disable conversion, reload button accordingly.
Hey Dmytro, Just a thought that we can mark properties optional in interfaces in that way we need not to make multiple interfaces. What are you guys think about it???
Not that it matters much but 'wether' is really spelt 'weather' for climate, but wether is real word also, which is 'a ram or goat that is castrated at young age'. And whether is used to compare two conditions 'whether the statement expresses true or false the code does no change'. I know englsh can be confusing.