SOLID Design Principles in

  Рет қаралды 137,039

Decoded Frontend

Decoded Frontend

Күн бұрын

🔥 Learn how to build really complex Angular forms & form controls with my new advanced course bit.ly/advanced-angular-forms 🔥
Use coupon: KZbin_DISCOUNT to get -a 10%-off discount!
I am quite sure that every one of you has heard about S.O.L.I.D design principles which help to design our code maintainable and flexible. In this video, I wanted to show you how these principles could be applied to your Angular applications. I hope you will find something useful and enjoy watching it!
⭐ Successful Interview "Angular Interview Hacking" course
courses.decodedfrontend.io/co...
⭐ Become a Pro in Angular Material Theming
bit.ly/angular-material-themi...
⭐ Blazing fast GraphQL Backend just in 1 Day with Hasura Engine
bit.ly/complete-hasura-course
00:00:00 - Intro;
00:01:05 - What is Design Principle;
00:02:23 - Single Responsibility Principle;
00:13:21 - Open/Closed Principle;
00:21:40 - Liskov Substitution Principle;
00:27:15 - Interface Segregation Principle;
00:32:52 - Dependency Inversion Principle;
00:41:02 - Outro;
🔗 Link to the source code on GitHub:
github.com/DMezhenskyi/solid-...
#webdevelopment #angulartip #frontend

Пікірлер: 183
@DecodedFrontend
@DecodedFrontend Жыл бұрын
💥 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
@westhack3552
@westhack3552 2 жыл бұрын
Thank you so much. This is all I've been searching for months.
@jonadushi
@jonadushi Жыл бұрын
Thank you Dmytro! I love your videos. You are gifted, clear and short explanation, easy to follow. Thank you 🙏
@AndrewRowenko
@AndrewRowenko 2 жыл бұрын
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!
@jojojawjaw
@jojojawjaw 2 жыл бұрын
Your channel is handsdown the best Angular channel on KZbin, many thanks!
@TheMaltissimo
@TheMaltissimo Жыл бұрын
Was looking for an angular related channel and this is noice, well explained and good stuff. Thank you
@alan614
@alan614 Жыл бұрын
This was great. Thanks for putting this together!
@miguelcastillo7346
@miguelcastillo7346 2 жыл бұрын
Admirable your comprehension of Angular, thanks god i found your channel, thank you teacher.
@alexshubin1
@alexshubin1 9 ай бұрын
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.
@mashab9129
@mashab9129 2 жыл бұрын
hi Dmytro, thanks for sharing great content - very informative and easy to follow/grasp thanks to your teaching style.
@rconr007
@rconr007 2 жыл бұрын
Thanks you have explained this difficult subject in a way that makes it digestible.
@RickyBanerjee
@RickyBanerjee 2 жыл бұрын
This is very rich content, thanks for sharing it across.
@maximlyakhov967
@maximlyakhov967 Жыл бұрын
it's the most impressive video on frontend topic! huge and unique content, thank you a lot!
@filipslezak5152
@filipslezak5152 2 жыл бұрын
As always, thank you for quality materials. Gonna check it yout later :)
@JmonteroArg
@JmonteroArg 2 жыл бұрын
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.
@tebohomakibile3385
@tebohomakibile3385 11 ай бұрын
This is brilliant content. Beautifully expalined.
@Billiam112
@Billiam112 2 жыл бұрын
Fantastic topic! Thanks a lot! 👌
@ayoubelhayat9650
@ayoubelhayat9650 2 жыл бұрын
Excellent explanation. Thank you
@ganesh56789
@ganesh56789 2 жыл бұрын
Super cool content... Thanks, I am glad that I came across your channel 🙏
@ATTI0822
@ATTI0822 2 жыл бұрын
Very great examples. I think best I've seen so far. Thanks!
@anish92
@anish92 4 ай бұрын
So Thankful for this Video
@mktrann
@mktrann 10 ай бұрын
Thank you! So amazing video!
@giorgi1337
@giorgi1337 2 жыл бұрын
You have made my day! Thanks a lot. Cheers from Tbilisi✊🏻
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Thanks! Happy to hear that 😉
@BorisTheGrunt
@BorisTheGrunt Жыл бұрын
really good examples thanks. specially for DI
@sourishdutta9600
@sourishdutta9600 2 жыл бұрын
Thanks for making this video. Thank you 😊😊👍❤
@whatssnots
@whatssnots 2 жыл бұрын
Excellent tutorial! Earned a sub :)
@adriangasiewicz4084
@adriangasiewicz4084 2 жыл бұрын
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!
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Thanks Adrian! ;)
@praktycznewskazowki6733
@praktycznewskazowki6733 2 жыл бұрын
hejka
@maximermoshin393
@maximermoshin393 2 жыл бұрын
Nice video. Thanks for sharing your knowledge.
@VipinRawat_Offcial
@VipinRawat_Offcial 2 жыл бұрын
All explained very well specially dependency inversion principle. 🙏🙏👌👌
@moacir8663
@moacir8663 Жыл бұрын
Loved it!
@anupbista8427
@anupbista8427 2 жыл бұрын
Finally New Video 😊
@miroslavmihalakev4588
@miroslavmihalakev4588 2 жыл бұрын
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 ;)
@atulgupta426
@atulgupta426 2 жыл бұрын
Hi, Thanks for this good stuff. Can you please make a tutorial on view encapsulation and change detection?
@lenvaz8957
@lenvaz8957 2 жыл бұрын
Awesome tutorial! 👍
@prabuk3819
@prabuk3819 2 жыл бұрын
Thank You So Much For This Video...
@fatiharkan5163
@fatiharkan5163 2 жыл бұрын
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!
@pastagaz4241
@pastagaz4241 2 жыл бұрын
Definitely you have to be mentioned in the Angular documentation! As always, another useful video on your useful YTchannel !
@JmonteroArg
@JmonteroArg 2 жыл бұрын
Make a pull request adding the link!
@the-real-pawook
@the-real-pawook 11 ай бұрын
Гуд ту кноу, дуже дякую 🙃
@GuillermoArellano
@GuillermoArellano 2 жыл бұрын
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!
@DecodedFrontend
@DecodedFrontend Жыл бұрын
Thanks a lot for your feedback, Guillermo! Much appreciated :)
@archiee1337
@archiee1337 2 жыл бұрын
Awesome stuff
@user-wr8gg9kh6l
@user-wr8gg9kh6l Жыл бұрын
very nice, thank you!
@css2014
@css2014 2 жыл бұрын
I was looking for something like this. Is kind of hard to understand this concepts but with easy examples as you showed, is just simple ! thanks
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Thank you for your feedback 😊 glad you liked it!
@amarmesham
@amarmesham Жыл бұрын
Greate Content !!
@pitsaveliev
@pitsaveliev Жыл бұрын
Отличное видео! Лучшее из тех что я видел на эту тему. Лайк и подписка!
@fryser007
@fryser007 Жыл бұрын
One of the best exemple of SOLID in real-life Thank you! The last DI exemple was confusing tho :)
@yeinsdavidllanohernandez1228
@yeinsdavidllanohernandez1228 24 күн бұрын
What a great class 👏, I would like to know more about how we can abstract logic everywhere to have a code as clean as possible
@vishnum7811
@vishnum7811 2 жыл бұрын
awesome stuff.
@DavidSoles
@DavidSoles 2 жыл бұрын
Great explanation. Thanks 👍🏼
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
You're welcome! :)
@user-ir4ug1kt4e
@user-ir4ug1kt4e 2 жыл бұрын
Nice, Thanks!!!
@adityamore287
@adityamore287 2 жыл бұрын
Thank you, Dmytro. I love you man. 👍👍👍👍
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
😀 👍
@ryanngalea
@ryanngalea 2 жыл бұрын
Thank you!!
@santoshraju9230
@santoshraju9230 2 жыл бұрын
Excellent video. Thank you. Could you please do a video on ngTemplateOutlet?
@pauloafpjunior
@pauloafpjunior 2 жыл бұрын
Amazing video, Dmytro. Do you intend to continue this serie? Talking about architecture styles in Angular, such as CleanArch, will be great.😃
@DecodedFrontend
@DecodedFrontend Жыл бұрын
Thanks for the idea, Paulo!
2 жыл бұрын
Amazing!
@superduper1211
@superduper1211 2 жыл бұрын
like before watching ... as always
@adiscivgin
@adiscivgin 2 жыл бұрын
Nice as always..
@dennisluken1167
@dennisluken1167 2 жыл бұрын
Excellent video, thank you!
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Glad it was helpful!
@maes4224
@maes4224 Жыл бұрын
You are the best
@Ag3sd
@Ag3sd 2 жыл бұрын
Good content. I am watching in 2x and it feels normal. 😊
@BC2Monster
@BC2Monster Жыл бұрын
Not gonna lie, i didn't think i'd learn anything here, but damn the DI Principle was partly new to me. Thumbs Up, thank you for showing me that!
@giorgimerabishvili8194
@giorgimerabishvili8194 2 жыл бұрын
Great channel!
@hugofilipeseleiro
@hugofilipeseleiro 2 жыл бұрын
Thank you !!!
@Alex-bc3xe
@Alex-bc3xe Жыл бұрын
You are indeed the Angular Papa
@KamelJabber1
@KamelJabber1 2 жыл бұрын
Excellent content!
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Glad you enjoyed it
@RSmarza
@RSmarza 2 жыл бұрын
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.
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Great suggestion! Thank you 😊
@karthik_vijay
@karthik_vijay Жыл бұрын
Make a video on takeUntil of RxJS Subject which can help reduce memory leaks while using observables.
@mightytechno
@mightytechno Жыл бұрын
Great video
@haroldpepete
@haroldpepete 2 жыл бұрын
That was awesome, you won a new susbcriber, thank forr share
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
You are welcome! Thanks for sub🙂
@g3co875
@g3co875 Жыл бұрын
Thanks!
@sour4ik
@sour4ik 2 жыл бұрын
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)
@Kreator321RG
@Kreator321RG 2 жыл бұрын
Rally cool! Thanks
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Great to hear that! Thanks :)
@SafetyLast-_-
@SafetyLast-_- Жыл бұрын
Does anybody knows what is the name of VSCode extension for colorized offsets in CSS and HTML templates? P.S. Thanks for the video, Dmytro!
@rohitsachdeva4624
@rohitsachdeva4624 Жыл бұрын
Hi can you also create a video on how we can create micro frontends.
@slothchunk
@slothchunk 2 жыл бұрын
SICK. hell yea
@ayaramzy6815
@ayaramzy6815 2 жыл бұрын
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.
@DecodedFrontend
@DecodedFrontend Жыл бұрын
Glad to hear that, Aya! Good luck with your new job ;) P.s sorry for the late reply
@ZeroInfinityVideo
@ZeroInfinityVideo Жыл бұрын
Can you do a video on unit testing long poll with Rxjs using timer, switchmap and takeuntil?
@alison.aguiar
@alison.aguiar 2 жыл бұрын
Thanks guy 😀🤝
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
My pleasure 🙂
@MichaelEvanchik
@MichaelEvanchik 2 жыл бұрын
good job
@MrKOHKyPEHT
@MrKOHKyPEHT Жыл бұрын
You right: splitting by extremely small pieces is overkill
@TheDeseth38
@TheDeseth38 Жыл бұрын
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.
@eugenekalashnikov9331
@eugenekalashnikov9331 Жыл бұрын
Why Jasmine? Jest most probably
@gururajmoger8649
@gururajmoger8649 2 жыл бұрын
Pls explain how to make reusable angular tabs as shared or child components.. that should open components dynamically
@SanketLakhera
@SanketLakhera Жыл бұрын
Great video. Just like to know how to integrate git in vscode just like you?
@harpreetsinghsahota5191
@harpreetsinghsahota5191 2 жыл бұрын
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???
@kennethebora6367
@kennethebora6367 2 жыл бұрын
Can you share what extension you're using for those nice block color highlights? Thanks!
@Moinshaikh611
@Moinshaikh611 Жыл бұрын
This content is really really awesome Just asking which extension you are using for creating component
@DecodedFrontend
@DecodedFrontend Жыл бұрын
Thank you! The extension is called NX Console
@subba18
@subba18 2 жыл бұрын
Can you do an video of Module Federation implementation in Angular 12 which has webpack 5.
@genyklemberg
@genyklemberg 2 жыл бұрын
Advanced content, thanks
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
You’re welcome ☺️
@jacqueskloster4085
@jacqueskloster4085 Жыл бұрын
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
@hiteshsuthar1097
@hiteshsuthar1097 Жыл бұрын
How to do Component communication as it becomes much harder when working with multiple sub components. Especially, getting data in the parent component.
@ShubhamSharma-xq4hg
@ShubhamSharma-xq4hg Жыл бұрын
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.
@tarassavchenko2317
@tarassavchenko2317 Жыл бұрын
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"
@balajeebala7810
@balajeebala7810 2 жыл бұрын
Tell about your glasses ,, Where do u get them and which is best for developers ?
@seblaise94
@seblaise94 2 жыл бұрын
Awesome video, what is the name of the extension your using for generating the component?
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Hi, it is called “NX console” :)
@phuc_cuhp
@phuc_cuhp Жыл бұрын
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)
@DecodedFrontend
@DecodedFrontend Жыл бұрын
Thank you Phuc! 🙏🏻 indeed I meant “And-Word-Rule“. Sorry for inconvenience, I have fixed the subtitle 😊
@phuc_cuhp
@phuc_cuhp Жыл бұрын
You're welcome 😊
@APEDUCO
@APEDUCO 2 жыл бұрын
Great Video, Loved It ❤, BTW Which extention are you using to generate components.
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Hi! Thank you! I use ext called nx console marketplace.visualstudio.com/items?itemName=nrwl.angular-console
@APEDUCO
@APEDUCO 2 жыл бұрын
@@DecodedFrontend thank you very much, I appreciate it 👍👍
@amerhero1721
@amerhero1721 2 жыл бұрын
Could you make a video how to structure an Angular application following MVC design pattern? Also, keep up the good work! :D
@hansschenker
@hansschenker 2 жыл бұрын
An Angular Component Class has a template attached to it (View) The Component Class it self you can think of the C (Controller). The Model can be any data structure you choose (Object, Array, ...)
@Dons98
@Dons98 Жыл бұрын
Just best.
@piotrszewczyk9749
@piotrszewczyk9749 2 жыл бұрын
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.
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
Hi Piotr! Thank you for feedback! If I encountered such a use-case I would go most probably with multiple tokens (each for every interface).
@piotrszewczyk9749
@piotrszewczyk9749 2 жыл бұрын
@@DecodedFrontend and then provide same 'existing' class for both?
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
If by 'existing' you mean useExisting than yes :)
@piotrszewczyk9749
@piotrszewczyk9749 2 жыл бұрын
@@DecodedFrontend yes that is what meant ;)
@nitinshekhar7064
@nitinshekhar7064 2 жыл бұрын
Any plan to create a tutorial on server side rendering in angular
@valikonen
@valikonen 2 жыл бұрын
About the service exporter I think it doesn't make sense to make it Angular Service, can be just a helper function, and attributes must be set directly in HTML. Thank for this very useful topic!!!
@Sunill_Waugh
@Sunill_Waugh 2 жыл бұрын
Hi Dmytro, which extension are you using to create new components? Looks good option to CLI, thanks
@DecodedFrontend
@DecodedFrontend 2 жыл бұрын
It is NX Console - ext for vs code
Design Patterns in Angular Source Code - Bridge Design Pattern
16:47
Decoded Frontend
Рет қаралды 23 М.
SOLID Principles: Do You Really Understand Them?
7:04
Alex Hyett
Рет қаралды 109 М.
Эта Мама Испортила Гендер-Пати 😂
00:40
Глеб Рандалайнен
Рет қаралды 10 МЛН
Don’t take steroids ! 🙏🙏
00:16
Tibo InShape
Рет қаралды 29 МЛН
ISSEI funny story😂😂😂Strange World | Pink with inoCat
00:36
ISSEI / いっせい
Рет қаралды 27 МЛН
Зомби Апокалипсис  часть 1 🤯#shorts
00:29
INNA SERG
Рет қаралды 6 МЛН
Input Signals in Angular 17.1 - How To Use & Test
14:34
Decoded Frontend
Рет қаралды 19 М.
I bet you can understand NgRx after watching this video
22:48
Joshua Morony
Рет қаралды 165 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
Solid Principles Interview Questions - You Might Get Them
9:44
Monsterlessons Academy
Рет қаралды 4,7 М.
How Senior Programmers ACTUALLY Write Code
13:37
Healthy Software Developer
Рет қаралды 1,3 МЛН
Learn SOLID Principles with CLEAN CODE Examples
28:35
Amigoscode
Рет қаралды 256 М.
TOP 5 Angular Interview Questions and Answers (for experienced, 2020)
21:50
10 Design Patterns Explained in 10 Minutes
11:04
Fireship
Рет қаралды 2,1 МЛН
Google I/O 2024 - ИИ, Android 15 и новые Google Glass
22:47
How about that uh?😎 #sneakers #airpods
0:13
Side Sphere
Рет қаралды 9 МЛН
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 461 М.
Главная проблема iPad Pro M4 OLED!
13:04
THE ROCO
Рет қаралды 49 М.
Best Gun Stock for VR gaming. #vr #vrgaming  #glistco
0:15
Glistco
Рет қаралды 2,8 МЛН