This is awesome. I know you did an exhaustive refactoring of a large project to meet the Clean Architecture approach. It would be hugely helpful to see a relatively simple project built from the ground up based on these principals. All great and appreciated.
Thanks! I did create a simple todo app that implements CA here: github.com/nikolovlazar/nextjs-clean-architecture I also have a more in-depth tutorial about CA on my channel.
It's already in the making 👀 I think it's going to be a multipart course that I'll publish here on UA-cam, along with a GitHub repo. I do plan to use Next.js since it was most requested, but it won't matter since this applies to the backend part, which is plain JavaScript.
@@nikolovlazar Thank you so much. Your livestreams are also helpful although i admit it can get a bit challenging for me. Hoping this will give me a better mental model to start implementing into my own projects.
@@bitkillerjones that's my goal as well. The course that I'm planning will be beginner friendly so everyone can follow along. The live streams are messy. It's me figuring things out, making mistakes, constantly changing my mind, but some folks find them useful because it's "raw content". It's unedited, and that's actually how I write code, how I debug, how I figure out what's wrong 😅
@@nikolovlazar I have already built a small interesting app and waiting for your more concise video on Clean Architecture, then I will convert the app I made! At least give it a go.Thanks a lot!
on my recent project (flutter) i use simplified version like this features auth domain (models, repo interface) data (remote, local, cache) presentation (components, state)
for most frontend codebase you don't really need to write a repo interface tho, also models if you have auto generated configured. if we use typescript, life would be so much easier also.
imo, the repo interface is really needed if your app needs more than one main datasource. why i chose this is because the latest tools such as prisma are easy to switch.
@@devyb-cc Great job! Having features folders and everything inside is the proper DDD way. I like it! For the TypeScript part, if you don't plan to write tests then sure, you don't need to define them with an interface, but if you need to write tests then you'd need to mock parts of your app that use databases or third-party services. The common solution for this is to use Dependency Injection, and it order to make it work you'd need to split up the implementation and definition. That's when you'll find interfaces to be the natural solution.
@@nikolovlazar yess absolutely, most of the time mvc is enough tho, but i like to structure my "m v c" the scalable way which is this way 👍 DI is nice, but i like to spin it up myself rather than using reflect metadata.
@@devyb-cc How do you do DI? I tried implementing a Service Locator in JavaScript, and it started to get too complicated so I opted to use a library instead.
This is awesome. I know you did an exhaustive refactoring of a large project to meet the Clean Architecture approach. It would be hugely helpful to see a relatively simple project built from the ground up based on these principals. All great and appreciated.
Thanks! I did create a simple todo app that implements CA here: github.com/nikolovlazar/nextjs-clean-architecture I also have a more in-depth tutorial about CA on my channel.
Thank you!
Woah! Thanks for the superthanks! 💖
Thank you, I like to see this whole process, I hope for more material like this
Check this live stream he has about 30 hours of content on this subject
a tutorial where you build an application from scratch implementing this architecture step by step would be awesome
It's already in the making 👀 I think it's going to be a multipart course that I'll publish here on UA-cam, along with a GitHub repo. I do plan to use Next.js since it was most requested, but it won't matter since this applies to the backend part, which is plain JavaScript.
@@nikolovlazar Thank you so much. Your livestreams are also helpful although i admit it can get a bit challenging for me. Hoping this will give me a better mental model to start implementing into my own projects.
@@bitkillerjones that's my goal as well. The course that I'm planning will be beginner friendly so everyone can follow along. The live streams are messy. It's me figuring things out, making mistakes, constantly changing my mind, but some folks find them useful because it's "raw content". It's unedited, and that's actually how I write code, how I debug, how I figure out what's wrong 😅
@@nikolovlazar I have already built a small interesting app and waiting for your more concise video on Clean Architecture, then I will convert the app I made! At least give it a go.Thanks a lot!
@@velifurkanturkoglu1387 that's great!
Can you share the git repo for the clean arch series?
Very soon! I’ll be publishing a different one.
Nice content !!
Thank you!
on my recent project (flutter) i use simplified version like this
features
auth
domain (models, repo interface)
data (remote, local, cache)
presentation (components, state)
for most frontend codebase you don't really need to write a repo interface tho, also models if you have auto generated configured. if we use typescript, life would be so much easier also.
imo, the repo interface is really needed if your app needs more than one main datasource.
why i chose this is because the latest tools such as prisma are easy to switch.
@@devyb-cc Great job! Having features folders and everything inside is the proper DDD way. I like it! For the TypeScript part, if you don't plan to write tests then sure, you don't need to define them with an interface, but if you need to write tests then you'd need to mock parts of your app that use databases or third-party services. The common solution for this is to use Dependency Injection, and it order to make it work you'd need to split up the implementation and definition. That's when you'll find interfaces to be the natural solution.
@@nikolovlazar yess absolutely, most of the time mvc is enough tho, but i like to structure my "m v c" the scalable way which is this way 👍
DI is nice, but i like to spin it up myself rather than using reflect metadata.
@@devyb-cc How do you do DI? I tried implementing a Service Locator in JavaScript, and it started to get too complicated so I opted to use a library instead.