Тёмный
Dev Mastery
Dev Mastery
Dev Mastery
Подписаться
Tips, tricks, advice, and tutorials to help you code better and advance your career.
Комментарии
@Mihrock1
@Mihrock1 12 дней назад
Best video on Clean Architecture I have come across till now. Thankyou so much!
@yogiHalim
@yogiHalim 2 месяца назад
min 12:05 rules files export and has no imports. Good to know.
@yogiHalim
@yogiHalim 2 месяца назад
min 25. incredible. layer 1 business rule layer 2 use case = (user)actions brought together in index.js it's not hard, but still, big brain move dude
@R2r_1337
@R2r_1337 3 месяца назад
Incredible! Best explanation of the Clean Architecture I've ever seen.
@GBG731
@GBG731 3 месяца назад
Have you implemented the service in typescript 😊
@Bilo_7
@Bilo_7 5 месяцев назад
Hey! Never seen Dark mode ? 😵‍💫
@DevMastery
@DevMastery 5 месяцев назад
LOL ... this video is from 2016 ... there was no dark mode on GitHub at that time. My condolences to your poor retinas, my friend!
@Bilo_7
@Bilo_7 5 месяцев назад
Oh ok 😂😅 We see, this dark mode is one of the greatest invention. That's truly a blessing😂
@iswilson
@iswilson 7 месяцев назад
Please we need new videos when are you making one
@calanside15
@calanside15 7 месяцев назад
i did find it extemely useful, thanks a million for the effort it took to compile and make this - much love
@supercasterjacy
@supercasterjacy 8 месяцев назад
I'm not sure about writing 8 tests at the beginning. TDD cycle tells us to write one failing test, pass it, refactor it, and there goes the cycle. 8 Failing tests is... idk
@DevMastery
@DevMastery 8 месяцев назад
Thanks for taking the time to watch and provide some feedback. I'm not advocating 8 failing tests. I'm using "skipped" tests as a kind of "todo list". I only unskip/enable 1 test at a time and proceed with the cycle as you described. But it's purely a preference thing, when I'm working on a feature i like having a running todo list expressed this way, it may not be everyone's cup of tea though. Thanks again for watching!
@ridgey28
@ridgey28 8 месяцев назад
Out of curiosity, is there anything you would do differently 4 years on?
@DevMastery
@DevMastery 8 месяцев назад
Yes. I mainly use Typescript now. I also use Zod quite a bit (behind an adapter). For APIs, I tend to generate the route handlers and types, but I treat those as DTOs and still maintain my own internal representations.
@magicja
@magicja 8 месяцев назад
What is a stub?
@DevMastery
@DevMastery 8 месяцев назад
Wikipedia explains it well: “A method stub or simply stub in software development is a piece of code used to stand in for some other programming functionality. A stub may simulate the behavior of existing code or be a temporary substitute for yet-to-be-developed code.“
@sergeychernikov6595
@sergeychernikov6595 9 месяцев назад
Thanks a million for this video!! I've read the Clean Architecture by Robert Martin, but could not understand how to apply the provided circular diagram in practice. Frankly speaking, I understand only 20-30% of what is going on in the video because of the lack of knowledge and experience, but it fires an awesome feeling of curiosity and desire to continue enhance my skills to become more and more professional as time goes by. UPD: I'm having so much emotions and insights watching this video so that I will download this video and keep it on my external drive for future reviews!! (if this video will accidentally disappear from RU-vid)🙂
@AlphasoundSchool
@AlphasoundSchool 9 месяцев назад
I'm a beginner developer and I'm so grateful to have found this channel. PURE GOLD! Thanks for this amazing content!
@prerakhere
@prerakhere 10 месяцев назад
gone through the code base. factories confuses me so much. so many factories in code. very hard to understand. but architecture wise very well explained🔥
@DevMastery
@DevMastery 10 месяцев назад
Thanks for the feedback. Is there a specific aspect of the factories that are confusing, perhaps I can help?
@ericsiddiq7634
@ericsiddiq7634 10 месяцев назад
Excellent explain ❤
@RaqDeku
@RaqDeku 10 месяцев назад
wow...me watching this 4 years later is the cleanest explanation of clean architecture and dependency injection I have come across. That's some solid content you've shared. Thanks mate :)
@TouseefKhan-iy9px
@TouseefKhan-iy9px 11 месяцев назад
a pure piece of art
@alexandershemelin6605
@alexandershemelin6605 11 месяцев назад
It's still the most useful video about FE architecture.
@fernando_her85
@fernando_her85 11 месяцев назад
Love what you did with the video man, and also a very clever way to implement the adapter pattern for the sanitize library, the only thing that I would change, is that I prefer to have individual files for all the dependencies with their adapters, instead of having just one big file with all the third party and factory functions. But this video is a must see! thank you
@damianlarocca3857
@damianlarocca3857 Год назад
Excellent explanation!
@kennedydre8074
@kennedydre8074 Год назад
This amazing, thank you so much. Best video I have come across that implements this so well. Subscribed and looking forward to more content. I do have some questions though, if I wanted to validate the request body using a package like zod or joi, 1. would I do this in the entities layer or the controller layer? 2. from my understanding, I would need an interface in whatever layer I use this instead of the actual package and pass that as a dependency, is this correct?
@hamzashadeez9641
@hamzashadeez9641 Год назад
Pls continue making videos!
@saaalut
@saaalut Год назад
so clean, thank you
@jovijovi9542
@jovijovi9542 Год назад
One word... 'FANTASTIC!!!'
@Tranquility_00
@Tranquility_00 Год назад
Use dark mode PLEASE
@DevMastery
@DevMastery Год назад
I hear you ... this video was made before dark mode was as ubiquitous as it is now. Please accept my deepest apologies for scorching your retinas, my friend.
@play.dvdagreat
@play.dvdagreat Год назад
Great Video. I wanted to ask how would one go about implementing streamed/chunked response in this clean architecture? also what about websockets?
@hasen_judi
@hasen_judi Год назад
9:48 what you said here is completely backwards. The DB layer is very unlikely to change, but the entities and usecases and likely to change all the time. That's what application development is all about: you're changing the way the application works. The DB is just a set of functions you can to store/load/query the data. The DB itself will likely not change at all. And, if it does change, it's unlikely that you can just keep the rest of the code as-is. This is a pipe-dream that never materializes in reality. The DB forces you to think and structure your data in a certain way. If you use a relational database, you are _forced_ to think about your data as relational tables with rows and columns and foreign keys. This will affect how you decide to model your entities. The reason you have your comment id as a string uuid is probably greatly influenced by your use of mongodb. If you were using a relational database, you could have very likely decided to put a numeric type for the comment id.
@DevMastery
@DevMastery Год назад
Thank you for your feedback. It seems like we have different perspectives, which might be because we work on different types of systems. The systems I usually work on are designed to last for 15-20 years or longer. During that time, technology advances much more quickly than the entities and use cases. When you automate and enable business processes, these processes do evolve, but not as quickly as technology does. The basic principles usually remain unchanged. Furthermore, at the database layer, there are often many changes, such as moving from a custom database to an API for a commercial off-the-shelf or software-as-a-service solution, and then back to a database. Some organizations can afford to rewrite everything every 3-5 years. So, for them, the patterns discussed in the video may be less important. Regarding IDs, it's never a good idea to use numeric sequential IDs as your primary key, no matter what database technology you choose. Doing so can cause a lot of issues when migrating or integrating at the data layer or scaling to large distributed systems. It's also not a good idea to let the database generate the ID for you, as databases are meant for storing data, not creating it.
@johnlovell8299
@johnlovell8299 Год назад
Finally, a real Design Patterns in JavaScript example.
@pradins
@pradins Год назад
thanks for this video. this is just beauty, clean and super well explained. thanks !
@tarikhusin1767
@tarikhusin1767 Год назад
the only thing missing is how to deal with transaction or optimistic locking in a clean architecture, Do you have any examples of this say like a bank system ?
@mikef.606
@mikef.606 Год назад
Great video. This is the sort of content I wish existed more of. Sad to see that you stopped posting. I hope you're doing ok. 🙏
@Abhishekshingane
@Abhishekshingane Год назад
Great Video! Always wanted to understand how to implement dependency injection on a practical use case.
@rifkysatyana2415
@rifkysatyana2415 Год назад
Clean!! Love it
@ankushtagore4299
@ankushtagore4299 Год назад
This content is dope level
@MrToromira
@MrToromira Год назад
Hello Bill, I just wanted to thank you wholehearthly for this content. It really helped me to wrap my head around all this system design jargon and navigate through the plethora of clickbaity articles and videos. Have a great day.
@maxovicsteiner9646
@maxovicsteiner9646 Год назад
finally. a real "dev mastery"
Год назад
Why does he stopped making videos, he's a truly genius. 😭😭
@juststudying1019
@juststudying1019 Год назад
Subscribed absolutely. Great video thanks, greetings from syia
@MartinPerez-mi1ty
@MartinPerez-mi1ty Год назад
This is quality content, new sub
@felo2991
@felo2991 Год назад
This should be the best Node video in the whole internet !
@LoveQwertying
@LoveQwertying Год назад
thank you
@baher_wael
@baher_wael Год назад
Man your videos are Awesome, they talk about the real stuff that nobody else talks about, keep going. I am so glad I found your channel and I will be watching as much of your videos as I can
@ilanle
@ilanle Год назад
the dependency injection is logical, but the amount of boilerplate is just depressing
@solaaar3
@solaaar3 Год назад
can we achieve the same result with object oriented style?
@DevMastery
@DevMastery Год назад
This is very much an object oriented style, it's just not using classes, or the class keyword. If you prefer to use classes in your javascript you can now achieve the same thing thanks to the introduction of private fields in JavaScript classes.
@alex-dk2rj
@alex-dk2rj Год назад
@@DevMasterycan you do an update with typescript?
@asubijotaka7374
@asubijotaka7374 Год назад
Awesome, thanks
@IsidoroMendez
@IsidoroMendez Год назад
TKS!!! very usefull!
@SridTech
@SridTech Год назад
Liked and subscribed. This architecture is the real meaning of plug and play. I love how each and every thing can be tweaked without affecting others. Loved it.
@miguelangelgeq9080
@miguelangelgeq9080 Год назад
Great content! I'd like to see a TypeScript project that uses this architecture to understand the use of interfaces
@CristianKirk
@CristianKirk Год назад
As long as you use frameworks, you'll never be in control of your program/site,
@BalkanCode
@BalkanCode Год назад
Not good, not elegant at all, also the code is not protected from the framework. But this is way better than having no structure though
@alex-dk2rj
@alex-dk2rj Год назад
How’s it not protected from the framework?
@ajeetts8289
@ajeetts8289 Год назад
Mind Blowing! Loved it