Learn SOLID Principles with CLEAN CODE Examples

Sdílet
Vložit
  • čas přidán 14. 06. 2024
  • In this video you will finally understand SOLID principles. SOLID is an acronym for the first five object-oriented design (OOD) principles by Robert C. Martin AKA Uncle Bob the author of Clean Code.
    These principles helps you to write clean code avoiding common pitfalls such as code smells, refactoring code, spaghetti code and much more
    ► Get NordVPN exclusive deal here: nordvpn.com/amigoscode
    Try it risk-free thanks to their money-back guarantee!
    ► Grab your copy Clean Code copy here: amigoscode.hypg.es/amzn/clean...
    ► Git Repo with examples: amigoscode.hypg.es/github/ami...
    #amigoscode #solid #cleancode
    Don't Forget to
    ===========================================
    💯 Subscribe to Amigoscode - bit.ly/2HpF5V8
    💯 Courses Available for free here - amigoscode.com/courses
    💯 Join Private Facebook Group and Discord - amigoscode.com/p/join-community
    ⭐ Table Of Contents ⭐
    ===========================================
    00:00 - Intro
    02:42 - Code Setup
    04:53 - Single Responsibility
    09:49 - Open Closed
    15:50 - Liskov Substitution
    19:11 - Interface Segregation
    🙊 Here are the goods for all my videos video 🙊
    ► Recommended Books
    ===========================================
    - Clean Code - amzn.to/2UGDPlX
    - HTTP: The Definitive Guide - amzn.to/2JDVi8s
    - Clean Architecture - amzn.to/2xOBNXW
    ► Computer and Monitor
    ===========================================
    - New Apple MacBook Pro - amzn.to/3464Mmn
    - Dell 27 INCH Ultrasharp U2719D Monitor - amzn.to/2xM3nW1
    - Double Arm Stand Desk Mount - amzn.to/3aYKKfs
    - USB C Hub Multiport Adapter - amzn.to/2Jz7NlL
    ► Camera Gear
    =============================================
    - Sony ILCE7M3B Full Frame Mirrorless Camera - amzn.to/346QIJn
    - Sigma 16 mm F1.4 DC DN - amzn.to/2wbic3Q
    - Sigma 33B965 30 mm F1.4 DC DC - amzn.to/39G37Fd
    ► IDE & Tools I use for coding 💻 🎒
    ===========================================
    - ITerm
    - VsCode
    - GoLand
    - IntelliJ Ultimate
    - Sublime
    P.S
    ===========================================
    💯 Don't forget to subscribe | bit.ly/2HpF5V8
    💯 Join Private Facebook Group and Discord - amigoscode.com/p/join-community
    💯 Follow me on Instagram | bit.ly/2TSkA9w
    ❤️ Thanks for watching
  • Věda a technologie

Komentáře • 336

  • @amigoscode
    @amigoscode  Před 2 lety +15

    ► Get NordVPN exclusive deal here: nordvpn.com/amigoscode
    Try it risk-free thanks to their money-back guarantee!
    ► Grab your copy Clean Code copy here: amigoscode.hypg.es/amzn/clean-code
    ► Git Repo with examples: amigoscode.hypg.es/github/amigoscode/solid

  • @francksgenlecroyant
    @francksgenlecroyant Před 2 lety +111

    I really missed Amigoscode, I can't believe he still can take his time to share these incredible resources and knowledge during this fasting period, thanks Nelson 🙏🙏🙏

    • @uncomputable929
      @uncomputable929 Před 2 lety +4

      not like you are unable to do anything while fasting

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

      @@uncomputable929 how long does the post last ?

    • @coffeedude
      @coffeedude Před rokem +2

      @@uncomputable929 I actually found out that fasting makes me do more stuff, not less

  • @blackberry-ke3fi
    @blackberry-ke3fi Před 2 lety +97

    Please make a video for Design patterns, as it will be beneficial for all developers. Thanks for your effort in bringing useful content to the community. Highly appreciated!

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

      Yes, we all need simple explanation about Abstract Factory and Factory Method

    • @user-rl5pb5un2f
      @user-rl5pb5un2f Před rokem

      @@fuckwdf Helpline📲📥⬆️
      Questions can come in⬆️

    • @user-rl5pb5un2f
      @user-rl5pb5un2f Před rokem

      Helpline📲📥⬆️
      Questions can come in⬆️..

    • @fiorini_mochachino
      @fiorini_mochachino Před rokem

      @@fuckwdf Have you seen this: czcams.com/video/ZFwNNsPW3-Q/video.html ? Found it really clear.

  • @coderider3022
    @coderider3022 Před 2 lety +88

    SOLID is a must know skill in OO development but I think we should be willing to modernise it and make it fit in 2022 when industry is moving towards functional coding. I’m a 20 year c# vet and do full solid on most projects but it’s hard to justify the abstractions for smaller projects. You end up with too many single method classes which can be functions instead.

    • @ivanvelinov4630
      @ivanvelinov4630 Před rokem +5

      Why does it matter if you have a single function or a single class with a single method? You're gonna have more files true, but still I dont see a problem here.

    • @spas_minkov
      @spas_minkov Před rokem +10

      @@ivanvelinov4630 Overhead, both In computer and cognitive sence. Besides it is unnatural to put everything into its own box. Generally it is easier to spot a thing put into a bigger box, with many other things, rather than if everything, no matter how small was put into its own box, even if there is a label on each box. It's mentally draining, and the biggest nonsense of OOP to me, besides it is never used on big real life projects. The same with the modern notion of microservices. We are not far away from the time, when a new "breakthrough" in the programming would be ”discovered” in the form of a revolutionary notion for “macroservice“ (highly sarcastic here) as it is functional programming now. Something old, then forgotten in favor of the new hype, and then rediscovered as something “revolutionary" (sarcasm)

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

    I'm so glad I found your channel, you're a great teacher. Thanks so much!!

  • @saidzbiri6247
    @saidzbiri6247 Před rokem +3

    Thank you for such a clear and concise tutorial. You made a topic that seemed complicated easy to understand. I appreciate it!

  • @joshuagarza3747
    @joshuagarza3747 Před 2 lety +16

    Would love to see a video on Design Patterns!

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

    I've been working as a software engineer for 2.5 years and do my best to obey the SOLID, this is by far the best explanation video of all the principles. Usually the interface segregation and liskov were not explained or ignored in case of languages like Ruby ( my first job / 2 years). Kudos man

  • @erbugakbal
    @erbugakbal Před 2 lety +8

    Amazing explanation as always. Can't be explained faster than this. Much appreciated!

  • @Victor-gj7pi
    @Victor-gj7pi Před 2 lety +8

    You are a blessing to java developers. We got your back

  • @derekdevs
    @derekdevs Před 9 měsíci +1

    This is probably the fourth or fifth SOLID video I’ve seen since being introduced to the topic and, while they have all been informative, yours sunk in. Thank you so much for this. New Sub!

  • @ansgarnell9316
    @ansgarnell9316 Před rokem +20

    Great video!
    About the Liskov Substitution principle, although your explanation was right, the description should be exactly the opposite: every base or parent class should be substitutable by its derived or child classes. So, taking your example, if we have:
    Shape shape = new Shape();
    shape.area();
    in our code, we should be able to substitute the first line for:
    Shape shape = new NoShape();
    but this would throw an exception, so we don't fullfil this principle.
    On the other side, if we have:
    Animal animal = new Animal();
    animal.eat();
    We could substitute it for:
    Animal animal = new Dog();
    and it would still work as dogs have to eat.
    Hope that makes it more clear.

    • @nathanyt
      @nathanyt Před 7 měsíci

      Also, please correct me if I'm wrong, he didn't have to create a new class to demonstrate LSP. The fact that he has a function that accepts "Shape" and it works even when it's supplied with objects of different shapes (Square, Circle, etc), that in itself obeys LSP because all of those are derived from "Shape".

  • @story4uall
    @story4uall Před 2 lety +25

    It would be nice if you can provide some videos on Design Patterns

  • @laislodi
    @laislodi Před 4 měsíci +1

    Fantastic explanation! BEST VIDEO about SOLID

  • @revanslacey
    @revanslacey Před 2 lety

    Best description I've seen so far. Thank you.

  • @codiphobia884
    @codiphobia884 Před 2 lety +13

    Masha Allah. As a non-english person, I can clearly get the information. what an amazing explanation 😍

  • @cupq
    @cupq Před 2 lety

    I really hope this challen blows up, because this man makes very helpful videos.

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

    I, m reading articles about SOLID principle recently. This video really helps me upderstand how to implement this princople.
    Your videos are awesome. Thanks from Taiwan!!

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

    The SOLID principles are something I struggled with to abide by early one in my career and struggled walk explaining in interviews. This has definitely helped remember some examples and helped my understanding, cheeers! :D

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

    Exactly the video that I was looking for! Excelent as always!!!

  • @cheikhouly128
    @cheikhouly128 Před 2 lety +6

    This is one of most important topic (and design patterns) that every developer should learn to write better code. I've met experienced developer who didn't know about these subjects and it's so unfortunate. Thanks a lot 💪🏾

  • @edwintellez6439
    @edwintellez6439 Před 2 lety

    That was the best explanation that I've ever seen about SOLID !!! Thanks

  • @sasithawathmal
    @sasithawathmal Před 10 měsíci

    Thanks, this cleared me the basics very well.

  • @yrds96
    @yrds96 Před rokem

    Many thanks to you. I'm preparing for a interview and I just forgot all the definition of SOLID principles(event using some of them), and your video helped me a lot to refreshing my memory.

  • @grim.reaper
    @grim.reaper Před 2 lety +1

    Huge respect to people who know Java. It has been kinda hard for me to get into the language but this was extremely helpful!! But once again huge respect to people who can write clean java code while keeping all these in mind, just blows my mind.

  • @CppZiedAlaya
    @CppZiedAlaya Před 2 lety

    This was one of the most clear and simple to understand. Thanks

  • @Namcode177
    @Namcode177 Před rokem

    Hi, I just want to tell you that I love your teaching and I learn from your videos.

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

    Amazing explanation with clear examples. Thanks so much!

  • @marcischneider9093
    @marcischneider9093 Před rokem

    I love your humour and just your upbeat vibe
    😊 Ty for the vid, very useful

  • @sergiuszen1355
    @sergiuszen1355 Před 2 lety

    It's simple and clear, as it should be. Thank you

  • @6maxi9
    @6maxi9 Před 2 lety

    I'm from Argentina and i'm surprise about the quality of your videos, with two videos i learned too much. You're incredible, keep it upppp

  • @paulallen4622
    @paulallen4622 Před rokem

    Great video!! I had never really understood the SOLID principles before but this and with the examples explains them really well

  • @lorenaodino1024
    @lorenaodino1024 Před 2 lety

    Excellent tutorial! This explanations about SOLID principles would have been so precious to have at the begging of my career, I really hope it can help others in their beginning! For me it was excellent for refreshing knowledge!

  • @shahariarkabir210
    @shahariarkabir210 Před rokem

    Thank you so much. After a long time not I can clear my understanding of the SOLID principles after watching this video.

  • @adisaisubrahmanyamvaskuri4048

    Thanks for your knowledge, good teaching.
    I really appreciate it

  • @JeanClaudeAdams
    @JeanClaudeAdams Před 2 lety

    Easy to understand, and thanks for the effort to share great knowledge.

  • @samuelrubino8844
    @samuelrubino8844 Před rokem

    Best explanation!! If someone needs a refresh on SOLID, this is the Video!

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

    Thank you for letting me have a touch on the beauty of the programming.

  • @bilaledelbi951
    @bilaledelbi951 Před rokem

    this is actually very amazing thank you for your clear and concise tutorial

  • @richard2218188
    @richard2218188 Před 2 lety

    I really appreciate this video, simple explanation to a difficult topic.

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

    Hi Nelson, I'm new here, with no background of Computer Science, and your videos helped me a lot to understand the base of Java, right now I'm following an acreditate course, I would love if you can do videos about Generics, and explain Threads and Stream and Lambda, more understable for a begginer! We really love you! You are a good menthor and teacher! Bless!

  • @andrevkfreitas6498
    @andrevkfreitas6498 Před 5 měsíci

    Great teaching methodology. Best that i have seen about SOLID explanations!

  • @hsfreitas36
    @hsfreitas36 Před rokem

    Best explanation of SOLID principles man! Very good job, thank you very much!

  • @TheOnlyEzzo
    @TheOnlyEzzo Před 5 měsíci

    Great video! Very clear SOLID Principles explanation

  • @mahatana_r
    @mahatana_r Před rokem +1

    I feel bad with my adblock when the content is excellent like this. I disabled it and rewatched it gain.

  • @databaseadmin
    @databaseadmin Před 2 lety

    When Nelson writes code, all seems simple. Thanks to share your know with us.

  • @viky3697
    @viky3697 Před rokem

    Love this video!
    Very good and easy explanation!

  • @tomkasede
    @tomkasede Před 2 lety

    Great video, precise explanations, learned alot. Keep up the good work.

  • @calebopeyemi2498
    @calebopeyemi2498 Před 2 lety

    wow! this is a great lesson. As a beginner in Java Spring Boot, it gives me an edge to improve and write correct code. thanks Nelson

  • @rachidbenkitou
    @rachidbenkitou Před 27 dny

    It was a very benefit episode, thanks for the effort

  • @ali_soleimani_r
    @ali_soleimani_r Před rokem

    No one could explain these principles better than you, even Uncle Bob! 😄

  • @user-be5cl8pn9u
    @user-be5cl8pn9u Před rokem

    Very useful and easily understandable video. Good job!

  • @TheBordereagle
    @TheBordereagle Před 2 měsíci

    i was searching for this type of tutorial . u readd my mind bro.

  • @Flandenar
    @Flandenar Před 2 lety

    Thank you, very clear explanation.

  • @BudderBotftw
    @BudderBotftw Před 7 měsíci

    Great Video! Really helped me understand the concepts

  • @dandantin
    @dandantin Před 2 lety

    Good job, Thank you for explain solid patterns. Congratulations.

  • @John_Smith_Java
    @John_Smith_Java Před 2 lety

    It was really easy and fun! Thanks Nelson!

  • @Series0Tubes
    @Series0Tubes Před rokem

    Dude another quality video. Thank you.

  • @javohiruralov1812
    @javohiruralov1812 Před rokem

    Thank you so much Nelson. Best explanation 👍👍👍👍👍👍

  • @marcosferreira17br
    @marcosferreira17br Před 2 lety

    Great video, i really appreciate how do you explain things, hugs from Brazil.

  • @fauzanlubis23
    @fauzanlubis23 Před 2 lety

    Really clear explanation! Barakallahufiik

  • @user-lv3yp6jd4i
    @user-lv3yp6jd4i Před 2 lety +13

    Hello, sir!
    I want to thank you very much, for the tutorials and the work you are doing, and the effort you put in these youtube videos.
    Thanks to your tutorials, here in this youtube channel, I managed to land a job as a Java developer.
    Never give up guys! Hard work pays off!

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

    So wonderful, thanks a lot Jamal

  • @TheBusinessHandyMan
    @TheBusinessHandyMan Před 5 měsíci

    I love how this focuses on the Principles

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

    Thanks for the video! One small point, I think it will be great vs run app each time, create few tests and run this test to show in own example that you like tests and how it is easy to work with tests.

  • @lexmurden5221
    @lexmurden5221 Před rokem

    This is very good! Thank you.

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

    Thank you! You are always smiling, so nice)))))

  • @badwolf5592
    @badwolf5592 Před 2 lety

    Design patterns with examples will be priceless.

  • @MiauMichigan
    @MiauMichigan Před rokem

    Thank you for recommending the book. It has helped me a lot!

  • @sibusisondlovu2129
    @sibusisondlovu2129 Před rokem

    wow.. thanks a lot. this is what i need. will share this with my team

  • @ayokunle9424
    @ayokunle9424 Před 2 lety

    Much love bro! I needed this

  • @Mohamed_Majed
    @Mohamed_Majed Před 11 měsíci +1

    Thanks bro, that was amazing, good explanation

  • @cymrucoder
    @cymrucoder Před rokem

    Great video, been watching your vids for a while and although I work primarily in C# at work, your videos are very easy to follow and learn from. Keep up the good work! Also great to see more brits doing software eng videos, as CZcams seems to be awash with Americans talking about software engineering!

  • @vladamihai9096
    @vladamihai9096 Před 2 lety

    very well explained, helped me a lot

  • @liongh8994
    @liongh8994 Před 2 lety

    Thanks a lot 💙
    Always you are the best.

  • @yassinemessaoud8619
    @yassinemessaoud8619 Před 2 lety

    More test tutorials please i've only found two videos which were amazingly beneficial

  • @zsoltoszvald9030
    @zsoltoszvald9030 Před rokem

    It was very informative! Thank you Amigoscode! :)

  • @benjamine.ndugga729
    @benjamine.ndugga729 Před 2 lety

    Amazing Explanation... !!!

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

    I have literally just skiped that class in my university, thank you very much for being just in time lol!

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

    Fantastic content as always. Even as a software engineer with 20+ years experience, I always find something interesting on your channel and plenty of content to refresh things tucked away in my ageing brain 😂 keep up the excellent work! 👍
    (one minor criticism for this vid is that I thought face cam was a little large and blocking some of the code changes you were making)

  • @onke
    @onke Před 2 lety

    As always, top class stuff.
    Bro you're the best

  • @serik3818
    @serik3818 Před 2 lety

    Awesome job. Thank you so much

  • @hacksontable5850
    @hacksontable5850 Před 8 měsíci

    Great video. Thank you👍

  • @HeyThereGuy
    @HeyThereGuy Před rokem

    Fantastic. Thank you.

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

    Great lecture. On a minor point, a cube has a volume rather area.

  • @farooqmss
    @farooqmss Před 2 lety

    Very nicely put together

  • @bladerunner30
    @bladerunner30 Před 2 lety

    Thanks a lot, my friend.

  • @rafaah28
    @rafaah28 Před 2 lety

    Good video, I abstracted more about this S.O.L.I.D Principles content. Thanks, bro!

  • @goldbow9805
    @goldbow9805 Před 4 měsíci

    That was a SOLID video. Thanks a lot.

  • @theSDE2
    @theSDE2 Před 2 lety

    Loved this video bro. Understood it very well. Thanks a lot. Please post more on Java

  • @AnuragKumar-mw6es
    @AnuragKumar-mw6es Před 2 lety

    Great content sir. Keep up the good work.

  • @asterixcode
    @asterixcode Před 2 lety

    great video! thank you so much for this amigo!

  • @bensopher1653
    @bensopher1653 Před 2 lety

    Great video we need more like this one!

  • @saharalmaisary2696
    @saharalmaisary2696 Před rokem

    thanks for the amazing tutorial

  • @monicazelinda5111
    @monicazelinda5111 Před rokem

    You´re amazing, bro!! Thanks a lot for spending your time to share your knowledge!!!

  • @Mac1355
    @Mac1355 Před 2 lety

    tks for the explanation

  • @lliarona
    @lliarona Před 2 lety

    Great video, thanks

  • @TheSwlozano
    @TheSwlozano Před rokem

    It was a nice explanation.

  • @abdulmateensyed9056
    @abdulmateensyed9056 Před 2 lety

    Next video on design patterns much appreciated

  • @rahimeyldz2272
    @rahimeyldz2272 Před 2 lety

    Thanks for nice videos, please next video Design Patterns!!!