First time as a student that I completly understand SOLID principles ! Thanks for the share.
@yusufnzm2 ай бұрын
Your videos are some of the best OOP videos I found on KZbin. I binge watched most of the videos, and they are one of the clearest OOP tutorials I have seen.
@geekific2 ай бұрын
Glad to read it! Thank you :)
@AndreB7772 күн бұрын
This was actually well explained
@ppdmartell Жыл бұрын
Best video I have ever seen on SOLID design principles!
@luisalamo265810 ай бұрын
Perfectly explained in 11 minutes! Thanks!
@jimmytorres41813 жыл бұрын
This video is amazing. Your channel is underrated, you're great at teaching
@geekific3 жыл бұрын
Thank you so much :) I really appreciate it!
@jasper5016 Жыл бұрын
Your videos clear all my doubts. Thanks
@jsimek10 ай бұрын
I am reading Clean Code and one thing I noticed is that Robert C. Martin recommends to avoid words like manager, processor, data or info in the names of a class, i.e. VideoManager at 7:14
@jsimek10 ай бұрын
but to be honest I have no idea what else to name it in this case
@tassivisognon22472 жыл бұрын
best and straightforward video I have watched on this topic. Thanks you
@elyakimlev2 жыл бұрын
Interesting and informative. I've used enums many times in my code, but now I see using an interface with classes implementing it would have been a better choice in many situations. I would just change one thing in the Liskov Substitution Principle example: Seeing specific Video member variables like title, likes and views under a class named VideoManager seems wrong to me. Instead, I would have left these member variables under the Video class and move the playRandomAd() method to VideoManager. PremiumVideo would still inherit from Video. That way, you also remove the need to duplicate the getNumbersOfHoursPlayed() in every subclass.
@geekific2 жыл бұрын
Thank you :) Yup, well done! Why not, that is another way of doing it! This video is about the 'what' and not the 'how', we are just demonstrating what these principles are, feel free to implement them however you see fit!
@KokoShampiona Жыл бұрын
And what will happened if I then invoke new PremiumVideo.playRandomAd() - the method of the base class?
@cba2944 Жыл бұрын
Underrated great explanation
@imranyaseen35282 жыл бұрын
This is an amazing video. Very easy to understand with examples. Please keep it up!
@geekific2 жыл бұрын
Glad you liked it! More incoming... Stay Tuned :)
@lpandp90 Жыл бұрын
Agreed!! First time I really get all principles after a decade
@develop-engenieers10 күн бұрын
Thanks was very well explained it .
@Korgoon5 ай бұрын
The solution in Liskov substitution principle with VideoManager breaks the Single Responsibility Principle, now one class is responsible for two totally different behaviors.
@Jody-nf2bz Жыл бұрын
Really excellent! Thank you!
@lavankumargudipudi592610 ай бұрын
Very well explained..❤
@vextronx Жыл бұрын
These videos are extremely helpful, they deserve much more views. You are amazing! One question, doesn't the VideoManager class (at 7:16) violate the Single Responsibility Principle? I'm really not sure, it just seems a little strange. Does "managing a video" count as a single responsibility? Isn't that a bit too broad?
@geekific Жыл бұрын
Thanks a lot! Since we are focusing in each part on one single principle and diving in its details, it won't be the cleanest way to actually solve the problem, but we can't explain them independently without doing that! So, yes, feel free to tear it apart and implement multiple specific interfaces :)
@vextronx Жыл бұрын
@@geekific Thank you for the answer! :)
@t0khyo Жыл бұрын
The most underrated channel ever!
@darkstudio31702 жыл бұрын
Underrated channel . Like and shared. Thanks a lot for the efforts🙏
@geekific2 жыл бұрын
Thanks for the support :)
@personalaccount15155 ай бұрын
Excellent video
@thundley203910 ай бұрын
perfectly explained
@francksgenlecroyant2 жыл бұрын
Super incredible, I enjoyed every single second
@geekific2 жыл бұрын
Glad you enjoyed it! Happy to help :)
@JosephKiandaTshava8 ай бұрын
Thank you❤
@jamescasipong23092 ай бұрын
7:20 wouldn't just be better if we could just create a base class that doesn't have playRandomAd methods and have both video and videoPremium class inherited it and implements playRandomAd inside video instead. Does that make sense? So we have the option to either override methods from base or not and also helps us reducing number of lines code.
@wegojimmy25 күн бұрын
i thought so too
@KizilBoss Жыл бұрын
thank you, I am always struggling with that in high level applications. The part with Dependency Inversion Principle helped me alot, well can you do a example with best practices lets say with have 5 moduls?
@geekific Жыл бұрын
Glad it did! Will add it to my list of upcoming video, stay tuned!
@yobrangutez1470 Жыл бұрын
You are God sent. Great content. Kindly recommend other channels that teach the way you do.
@geekific Жыл бұрын
Thank you! Glad to be of help :) There are no specific channels, I just try to see as many references as I can before making a video to add on top of the stuff I already know.
@vinayakgandhi5690 Жыл бұрын
isn't the Liskov substitution principle the opposite of what shown in the video? i.e. Base type should be replaceable by the sub type?
@Lucretat Жыл бұрын
@@geekific OP is right, the text needs fixing, you got it the other way around. ;)
@PrasannaCE Жыл бұрын
LSP is not updated yet with example Base type replace by sub type...
@mart-b56103 жыл бұрын
Absoloutly superb explanation! Thanx!!!
@geekific3 жыл бұрын
Glad it was helpful! You're welcome :)
@christianrodier33818 ай бұрын
Super helpful
@Rob-J-BJJ Жыл бұрын
wow this video was beautifully made.
@ebuzertahakanat Жыл бұрын
good refresher
@samz2004-422 күн бұрын
Im confused about the open closed principle. In the example, it says we can extend the class by adding new earning calculator classes. but wouldnt we still need to add another enum to the original video class?
@sergiorey20492 ай бұрын
Great explanation!
@vinobabu73375 ай бұрын
Thanks for the video. Came up with a question. Is the VideoManager class in Liskov's Substitution Principle not violating SRP?
@sajisajisam68273 жыл бұрын
Great video with great examples and explanation!
@geekific3 жыл бұрын
Thank you :) Glad you liked it!
@mohamedrizk93612 жыл бұрын
Thanks sir, it's very clear
@aldoumene62012 жыл бұрын
Does the Liskov principle always mean applying composition?
@geekific2 жыл бұрын
The principles state what the problem is but not the solution. So, you can use whatever means necessary to resolve them. Sometimes, creating specific interfaces could resolve this issue. In this video, we tried to explore different way to do that as much as possible! Cheers!
@aldoumene62012 жыл бұрын
Thanks a lot for the fast reply also Happy new year to you bro!
@Manuel-fp6ni6 ай бұрын
In Liskov's substitution is same to say: replace the child by its father or replace the father by its child? I see both ideas explaining this principle on the web
@pog_champ2 жыл бұрын
very well made video!
@doomguy1496 Жыл бұрын
Very nice tutorial. Have a question tho regarding L. You will not be able to have a single collection of all videos now, or am I missing something here ?
@geekific Жыл бұрын
Thanks! In this example yes, because we are focusing on one principle at one point in time. However, you should strive on keeping all of them in check, so the best practice would be to have specific interfaces implemented by the videos and use these instead.
@beep6091 Жыл бұрын
i am d'accord@@geekific
@aznstride4325 Жыл бұрын
For the open closed principle how would you avoid rewriting the driver code that instantiates all the classes that follows the open close principle?
@geekific Жыл бұрын
It depends on your use-case. You may not need all of them (strategy-like) and if you do you can probably put them in a factory.
@jasper5016 Жыл бұрын
Is it possible for your to show us how to write clean or secure Java Springboot code? especially leveraging design patterns.
@geekific Жыл бұрын
Of course, and it is actually in the making, will be uploaded in the SpringBoot playlist, don't have an exact timeline, but it will! Stay Tuned!
@beep6091 Жыл бұрын
thanks you@@geekific
@avatarsece5 ай бұрын
Is it just me or I see no major difference between Liskov Principle and Dependency Inversion Principle?