SOLID Design Principles in

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • 🔥 Learn how to build really complex Angular forms & form controls with my new advanced course bit.ly/advanced-angular-forms 🔥
    Use coupon: CZcams_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
  • Věda a technologie

Komentáře • 190

  • @DecodedFrontend
    @DecodedFrontend  Před 2 lety +7

    💥 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

  • @AndrewRowenko
    @AndrewRowenko Před 3 lety +8

    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!

  • @westhack3552
    @westhack3552 Před 3 lety +1

    Thank you so much. This is all I've been searching for months.

  • @adriangasiewicz4084
    @adriangasiewicz4084 Před 3 lety +37

    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!

  • @jojojawjaw
    @jojojawjaw Před 2 lety

    Your channel is handsdown the best Angular channel on CZcams, many thanks!

  • @jonadushi
    @jonadushi Před rokem

    Thank you Dmytro! I love your videos. You are gifted, clear and short explanation, easy to follow. Thank you 🙏

  • @alexshubin1
    @alexshubin1 Před 11 měsíci +2

    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.

  • @TheMaltissimo
    @TheMaltissimo Před rokem

    Was looking for an angular related channel and this is noice, well explained and good stuff. Thank you

  • @RickyBanerjee
    @RickyBanerjee Před 3 lety +7

    This is very rich content, thanks for sharing it across.

  • @mashab9129
    @mashab9129 Před 2 lety +1

    hi Dmytro, thanks for sharing great content - very informative and easy to follow/grasp thanks to your teaching style.

  • @ATTI0822
    @ATTI0822 Před 3 lety +1

    Very great examples. I think best I've seen so far. Thanks!

  • @miguelcastillo7346
    @miguelcastillo7346 Před 2 lety +1

    Admirable your comprehension of Angular, thanks god i found your channel, thank you teacher.

  • @alan614
    @alan614 Před rokem

    This was great. Thanks for putting this together!

  • @filipslezak5152
    @filipslezak5152 Před 3 lety +2

    As always, thank you for quality materials. Gonna check it yout later :)

  • @giorgi1337
    @giorgi1337 Před 3 lety +1

    You have made my day!
    Thanks a lot.
    Cheers from Tbilisi✊🏻

  • @rconr007
    @rconr007 Před 3 lety

    Thanks you have explained this difficult subject in a way that makes it digestible.

  • @Billiam112
    @Billiam112 Před 3 lety +1

    Fantastic topic! Thanks a lot! 👌

  • @ganesh56789
    @ganesh56789 Před 3 lety

    Super cool content... Thanks, I am glad that I came across your channel 🙏

  • @anupbista8427
    @anupbista8427 Před 3 lety +4

    Finally New Video 😊

  • @archiee1337
    @archiee1337 Před 3 lety +2

    Awesome stuff

  • @maximlyakhov967
    @maximlyakhov967 Před 2 lety

    it's the most impressive video on frontend topic! huge and unique content, thank you a lot!

  • @ayoubelhayat9650
    @ayoubelhayat9650 Před 3 lety +1

    Excellent explanation. Thank you

  • @JmonteroArg
    @JmonteroArg Před 3 lety +1

    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.

  • @anish92
    @anish92 Před 6 měsíci +1

    So Thankful for this Video

  • @tebohomakibile3385
    @tebohomakibile3385 Před rokem

    This is brilliant content. Beautifully expalined.

  • @vishnum7811
    @vishnum7811 Před 3 lety +2

    awesome stuff.

  • @mktrann
    @mktrann Před rokem

    Thank you! So amazing video!

  • @BorisTheGrunt
    @BorisTheGrunt Před rokem

    really good examples thanks. specially for DI

  • @sourishdutta9600
    @sourishdutta9600 Před 3 lety

    Thanks for making this video. Thank you 😊😊👍❤

  • @GuillermoArellano
    @GuillermoArellano Před 3 lety +1

    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  Před 2 lety

      Thanks a lot for your feedback, Guillermo! Much appreciated :)

  • @maximermoshin393
    @maximermoshin393 Před 3 lety

    Nice video. Thanks for sharing your knowledge.

  • @pitsaveliev
    @pitsaveliev Před rokem

    Отличное видео! Лучшее из тех что я видел на эту тему. Лайк и подписка!

  • @user-wr8gg9kh6l
    @user-wr8gg9kh6l Před 2 lety

    very nice, thank you!

  • @whatssnots
    @whatssnots Před 2 lety +1

    Excellent tutorial! Earned a sub :)

  • @css2014
    @css2014 Před 2 lety +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

  • @lenvaz8957
    @lenvaz8957 Před 2 lety

    Awesome tutorial! 👍

  • @moacir8663
    @moacir8663 Před rokem

    Loved it!

  • @BC2Monster
    @BC2Monster Před 2 lety

    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!

  • @dennisluken1167
    @dennisluken1167 Před 2 lety +1

    Excellent video, thank you!

  • @superduper1211
    @superduper1211 Před 3 lety +2

    like before watching ... as always

  • @amarmesham
    @amarmesham Před 2 lety

    Greate Content !!

  • @prabuk3819
    @prabuk3819 Před 3 lety

    Thank You So Much For This Video...

  • @haroldpepete
    @haroldpepete Před 3 lety +2

    That was awesome, you won a new susbcriber, thank forr share

  • @pastagaz4241
    @pastagaz4241 Před 3 lety +7

    Definitely you have to be mentioned in the Angular documentation!
    As always, another useful video on your useful YTchannel !

    • @JmonteroArg
      @JmonteroArg Před 3 lety

      Make a pull request adding the link!

    • @4444-c4s
      @4444-c4s Před měsícem

      True. Even Angular Team will know some new concepts 😆

  • @the-real-pawook
    @the-real-pawook Před rokem

    Гуд ту кноу, дуже дякую 🙃

  • @ryanngalea
    @ryanngalea Před 3 lety +1

    Thank you!!

  • @VipinRawat_Offcial
    @VipinRawat_Offcial Před 3 lety +1

    All explained very well specially dependency inversion principle. 🙏🙏👌👌

  • @DavidSoles
    @DavidSoles Před 3 lety +1

    Great explanation. Thanks 👍🏼

  • @adityamore287
    @adityamore287 Před 2 lety +1

    Thank you, Dmytro. I love you man. 👍👍👍👍

  •  Před 3 lety +1

    Amazing!

  • @user-ir4ug1kt4e
    @user-ir4ug1kt4e Před 2 lety +1

    Nice, Thanks!!!

  • @giorgimerabishvili8194

    Great channel!

  • @pauloafpjunior
    @pauloafpjunior Před 2 lety +5

    Amazing video, Dmytro. Do you intend to continue this serie? Talking about architecture styles in Angular, such as CleanArch, will be great.😃

  • @miroslavmihalakev4588
    @miroslavmihalakev4588 Před 3 lety +1

    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 ;)

  • @adiscivgin
    @adiscivgin Před 3 lety

    Nice as always..

  • @Ag3sd
    @Ag3sd Před 3 lety +1

    Good content. I am watching in 2x and it feels normal. 😊

  • @mightytechno
    @mightytechno Před rokem +1

    Great video

  • @alison.aguiar
    @alison.aguiar Před 3 lety +2

    Thanks guy 😀🤝

  • @KamelJabber1
    @KamelJabber1 Před 2 lety +1

    Excellent content!

  • @fatiharkan5163
    @fatiharkan5163 Před 3 lety

    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!

  • @hugofilipeseleiro
    @hugofilipeseleiro Před 3 lety

    Thank you !!!

  • @maes4224
    @maes4224 Před rokem +1

    You are the best

  • @fryser007
    @fryser007 Před rokem

    One of the best exemple of SOLID in real-life Thank you! The last DI exemple was confusing tho :)

  • @Kreator321RG
    @Kreator321RG Před 3 lety +1

    Rally cool! Thanks

  • @g3co875
    @g3co875 Před rokem

    Thanks!

  • @tz2014
    @tz2014 Před měsícem

    Just one word, legend

  • @Timofei-yy5nm
    @Timofei-yy5nm Před měsícem

    Hello, Dmitry!
    Could you please add more design pattern videos in context of Angular?
    I find your approach extremely useful to understand

  • @atulgupta426
    @atulgupta426 Před 3 lety +1

    Hi,
    Thanks for this good stuff. Can you please make a tutorial on view encapsulation and change detection?

  • @genyklemberg
    @genyklemberg Před 3 lety +2

    Advanced content, thanks

  • @Alex-bc3xe
    @Alex-bc3xe Před rokem

    You are indeed the Angular Papa

  • @yeinsdavidllanohernandez1228

    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

  • @MichaelEvanchik
    @MichaelEvanchik Před 2 lety +1

    good job

  • @RSmarza
    @RSmarza Před 3 lety +10

    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  Před 3 lety +7

      Great suggestion! Thank you 😊

    • @karthik_vijay
      @karthik_vijay Před 2 lety +1

      Make a video on takeUntil of RxJS Subject which can help reduce memory leaks while using observables.

  • @santoshraju9230
    @santoshraju9230 Před 3 lety

    Excellent video. Thank you. Could you please do a video on ngTemplateOutlet?

  • @2347matte
    @2347matte Před měsícem +1

    You're awesome.

  • @SafetyLast-_-
    @SafetyLast-_- Před 2 lety +2

    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!

  • @ayaramzy6815
    @ayaramzy6815 Před 2 lety +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  Před 2 lety

      Glad to hear that, Aya! Good luck with your new job ;) P.s sorry for the late reply

  • @sour4ik
    @sour4ik Před 2 lety +1

    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)

  • @jacqueskloster4085
    @jacqueskloster4085 Před 2 lety

    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

  • @MrKOHKyPEHT
    @MrKOHKyPEHT Před rokem

    You right: splitting by extremely small pieces is overkill

  • @slothchunk
    @slothchunk Před 2 lety

    SICK. hell yea

  • @TheDeseth38
    @TheDeseth38 Před 2 lety

    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.

  • @Dons98
    @Dons98 Před rokem

    Just best.

  • @rohitsachdeva4624
    @rohitsachdeva4624 Před rokem

    Hi
    can you also create a video on how we can create micro frontends.

  • @phuc_cuhp
    @phuc_cuhp Před 2 lety +1

    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  Před 2 lety +1

      Thank you Phuc! 🙏🏻 indeed I meant “And-Word-Rule“. Sorry for inconvenience, I have fixed the subtitle 😊

    • @phuc_cuhp
      @phuc_cuhp Před 2 lety

      You're welcome 😊

  • @gururajmoger8649
    @gururajmoger8649 Před 3 lety +1

    Pls explain how to make reusable angular tabs as shared or child components.. that should open components dynamically

  • @yuriinadilnyi3029
    @yuriinadilnyi3029 Před 2 lety +2

    What would I say?
    - It was so fuc**ng gooood))) Thx a lot)

  • @seblaise94
    @seblaise94 Před 3 lety +6

    Awesome video, what is the name of the extension your using for generating the component?

  • @JoshDeveloper
    @JoshDeveloper Před 2 lety +3

    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

  • @SanketLakhera
    @SanketLakhera Před 2 lety

    Great video.
    Just like to know how to integrate git in vscode just like you?

  • @kennethebora6367
    @kennethebora6367 Před 2 lety

    Can you share what extension you're using for those nice block color highlights? Thanks!

  • @salarystealer
    @salarystealer Před 2 lety

    great

  • @Moinshaikh611
    @Moinshaikh611 Před rokem +2

    This content is really really awesome
    Just asking which extension you are using for creating component

  • @ZeroInfinityVideo
    @ZeroInfinityVideo Před rokem

    Can you do a video on unit testing long poll with Rxjs using timer, switchmap and takeuntil?

  • @salarystealer
    @salarystealer Před 6 měsíci

    nice

  • @subba18
    @subba18 Před 3 lety

    Can you do an video of Module Federation implementation in Angular 12 which has webpack 5.

  • @harpreetsinghsahota5191
    @harpreetsinghsahota5191 Před 2 lety +1

    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???

  • @APEDUCO
    @APEDUCO Před 3 lety +3

    Great Video, Loved It ❤, BTW Which extention are you using to generate components.

    • @DecodedFrontend
      @DecodedFrontend  Před 3 lety +2

      Hi! Thank you! I use ext called nx console marketplace.visualstudio.com/items?itemName=nrwl.angular-console

    • @APEDUCO
      @APEDUCO Před 3 lety

      @@DecodedFrontend thank you very much, I appreciate it 👍👍

  • @trk1139
    @trk1139 Před měsícem

    Do you have any video which talks about Replaysubject() in RxJs ?

  • @tarassavchenko2317
    @tarassavchenko2317 Před 2 lety +1

    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"