Nice recommendation. I think useReducer can be a nice option to delegate some of the logic from the component while avoiding overusing redux or context for some state management only occurring in one component.
@LjupcheVasilev2 күн бұрын
Yeah, great point, delegating logic is definitely another one of the advantages of reducers
@maso4u3 күн бұрын
great video man, keep making more
@LjupcheVasilev2 күн бұрын
Thanks!
@reynardlee36679 күн бұрын
hi what is the tool used here? subbed
@LjupcheVasilev5 күн бұрын
Thanks! I used Eraser to model the db if that’s what you meant
@DanielBergholz10 күн бұрын
How on earth this video doesn't have 100k views? Amazing content!
@LjupcheVasilev10 күн бұрын
I keep wondering the same thing bro 🤷♂️
@WilsenHernandez11 күн бұрын
You can use Eager Loading or "Nested reads" as Prisma calls them to fix the performance issues you mentioned. ORM are not bad, it's the developer(s) that does not know how to take advantage of it
@dyto228712 күн бұрын
0:13 raw SQL looks simpler. ORMs are useless abstractions.
@LjupcheVasilev12 күн бұрын
Yeah I guess, but I can see how it helps someone that doesn’t know sql to get the job done
@dyto228712 күн бұрын
@@LjupcheVasilev I used to think the same long time ago. The problem is that you need to learn different ORM for each framework and programming language while you only need to learn SQL once and you can use it everywhere. Also, instead of ORMs more valid solution would be to generate type-safe code from SQL instead with tools like sqlc that verifies if your queries are valid and matches table schemas created with migrations. SQL should be source of truth for the table schema and queries. Using ORM or DSL for it just adds problems. The initial idea for ORMs comes from old times when we needed abstract databases to give ability to support multiple database types like Postgres, MySQL, SQLite when self-hosting. Nowadays we rarely builds products that need that nor do modern ORMs even support it right now.
@mrlectus17 күн бұрын
You can do Joins in prisma
@LjupcheVasilev16 күн бұрын
Does Prisma then execute only one SQL query or it still does multiple?
@johnalright856611 күн бұрын
@@LjupcheVasilev in some recent updates they added native sql joins so yeah it does now
@user-of6ls2ng5l17 күн бұрын
brother, mankind invented Drizzle a long time ago.
@LjupcheVasilev17 күн бұрын
Maybe it’s my little bubble of people I follow online but I heard about it only a few months ago
@nasko23567917 күн бұрын
Whenever I'm starting a project I always rush through the initial design phase and lean heavily on chatGPT to make my db models and solve my engineering problems for me. It has been a huge issue for me as a learning developer and I've realized that just taking the time and spending a few hours (or even days if you have to) on designing the infrastructure of your app manually and gathering a deep understanding is way more important than rushing through and coming out the other end not having learned anything.
@LjupcheVasilev17 күн бұрын
Thanks for sharing that and yeah I completely agree. I didn’t have ai tools when I was learning to code but once in a while I would just copy and paste a whole solution and at the end realise that I’m only fooling myself :)
@HimanshuChanda18 күн бұрын
This is genuinely helpful 🎉
@LjupcheVasilev17 күн бұрын
Glad you found it helpful :)
@39strife18 күн бұрын
Reason why prisma does this is because it was never meant to be an ORM, it started as a graphql thing and that graphql engine still lives and is the default way the query engine works unless you specify "protocol: json", but still joins are horrid and rarely work. Their focus is on monetization right now and they've built entire walls and gardens regarding this (prisma data platform etc), i think they're building edge DBs right now which solve nothing. tldr write your own sql or compile sql to typesafe code (sqlc+go) or runtime check it (sqlx + rust).
@Ttozyy19 күн бұрын
I noticed that you're using the MacBook Air M2 with 8GB of RAM and a 512GB SSD. Do you find that 8GB of RAM is sufficient for cs, especially considering the MacBook's ability to utilize swap memory?
@LjupcheVasilev19 күн бұрын
Yeah absolutely! Mine is 16GB of RAM but yeah it works great. I watched some videos reviews and comparisons before buying it and apparently the 8GB RAM or the 256GB SSD is considerably slower so I went with what I have now. If it's only for coding I think most of the M chip Macs will be great. Docker is known to require a lot of resources but if you don't use that then you're good. The heaviest work I do on mine is editing these videos and it handles that great too
@Ttozyy19 күн бұрын
@@LjupcheVasilev Traditionally, I've been a Windows user. However, I've recently seen many positive reviews about Apple Silicon processors and their optimization and efficiency with RAM. Initially, I thought that 8GB of RAM would be sufficient. Currently, I'm a full-stack developer using a PC with 16GB of RAM and planning to transition to cloud engineering. Considering this, I think I'll opt for 16GB of RAM. Still don’t really know what suits me or of macOS is really worth it. Thanks for sharing your opinion :)
@SP-js4gf24 күн бұрын
Hello bro! How are u doing? I love the video. Can you please make a playlist on haw to build the whole thing from scratch???
@LjupcheVasilev24 күн бұрын
Doing alright thanks. Yeah I will be making videos working on the project bit by bit and probably one video summarising it at the end
@SP-js4gf24 күн бұрын
@@LjupcheVasilev good that you’re doing alright. Great I’m looking forward to your videos. Keep up 👍
@ThatGuy_Nick25 күн бұрын
0:47 so should model your data if you’re likely to pivot?
@LjupcheVasilev24 күн бұрын
I'd say yes, modelling the data helps understand the structure and realise where things can be improved. Also certain things that you know are going to be expanded in the future can be set up in a way where that is made easy
@ivanlysko667729 күн бұрын
I've been trying to understand the distinctions between using types, enums, and const in TypeScript. Could you shed some light on how they differ and when to use each one?
@LjupcheVasilev26 күн бұрын
Types is a way to define what kind of values does the variable hold and it helps with type safety, catching issues while developing etc. For example `const status: string = 'active'` Enums are a way to define a set of named constants. For example when we have a variable of status and we know the status can be Active or Inactive only, that's when enums are most useful. Then these enums can be used to validate the input or whenever we need to use the status we can see which values it can be. Const is just a way to define a constant variable, same as in javascript. Constant means the value of the variable never changes. If the type is an array then we can mutate it like add/remove items but if we define a string we can't reassign it. Hope that helps.
@interceptorghost1149Ай бұрын
Great video buddy, could you provide github codes?
@umaralifayzullayevАй бұрын
i can't understand typescript😭. Can you make guide?
@LjupcheVasilevАй бұрын
If I make a guide it will still probably be using typescript 😅 What language do you use?
@umaralifayzullayevАй бұрын
Javascript
@phkyonАй бұрын
awesome video mate! congratz!
@LjupcheVasilevАй бұрын
Thanks a lot!
@Ladliju1Ай бұрын
how to open postman in vs code like the one you did?
@LjupcheVasilevАй бұрын
Postman has a VSCode extension you can install and use. Not sure about other IDEs
@starlord7526Ай бұрын
does the user provide any input or not? are all the meals predefined? I am unable to understand the purpose of web app
@LjupcheVasilevАй бұрын
I probably could have explained that better. At this point I didn’t have plans for adding users but the idea was there will be forms to create/update meals. I am currently implementing most of that but have added users and roles so if you watch my latest video it might make more sense
@justinangeloperez5650Ай бұрын
In middleware how can you restrict access on a certain page? I mean like access control for each user? because a user can just type the url
@enz1222Ай бұрын
You can set up the middleware to run before the protected page(or any other pages you want) is loaded so at that point you can check user authentication redirect them wherever you want if they arent authenticated. so even if they type it out they wont access it.
@LjupcheVasilevАй бұрын
Yeah pretty much what @enz1222 said. I am currently making a video on how to implement role based access in nextjs so maybe that will be useful :)
@justinangeloperez5650Ай бұрын
thank you in advance
@aivis-vigoАй бұрын
Nice video 👍 I'm also thinking about starting this type of content. Do you by any chance have a discord server or want to start one? Would be nice be around like minded individuals :)
@LjupcheVasilevАй бұрын
Go for it! I don’t have a discord atm, no. But if you find one let me know :)
@Jonty800Ай бұрын
AI won’t replace you, but Shadcn will
@LjupcheVasilevАй бұрын
Imagine shadcn.ai 👀
@ItsMe-fj1coАй бұрын
what is thne name of this DB design tool you are using in the video?
@LjupcheVasilevАй бұрын
It’s called eraser
@TheBlackGentlemanGeekАй бұрын
Nice one bro! Another demystified section of software development done well. It begs the question, why is it that all these years software/programming was mystical with jargon words, poorly written articles and books, etc. I've been saying this for years, software development itself is not that difficult; but the devs make it look difficult, either on purpose to look smart, or because most devs themselves don't have teaching and communication skills. A lot of devs speak too fast, use jargons, complicate things for no reason, thinking that everyone can follow their way of thinking and pace. I've noticed that a lot. Devs are socially awkward (borderline autistic), hence why the poor teaching skills.
@LjupcheVasilevАй бұрын
Thanks! Yeah, maybe, but I haven't felt the same way tbh. I started learning about 16 years ago and everything I've learnt came from people on the internet. I would come across complicated tutorials but never really dwelled on it just thought there's more I need to learn in order to understand that one and then after a while it clicks. And also I think it's not easy trying to explain something in a very simple way, especially when it requires prior knowledge.
@Mist72.2 ай бұрын
does the gray and black one work for console?
@LjupcheVasilevАй бұрын
I haven't checked actually but it should work fine
@omojjegomosc82112 ай бұрын
You have helped me a lot with my project. Thanks!
@LjupcheVasilev2 ай бұрын
Glad I could help!
@manishgautam24242 ай бұрын
That was great , You can deliver much better content , Keep it up
@LjupcheVasilev2 ай бұрын
Thank you, glad you like it :)
@morteza72982 ай бұрын
Great video man, keep going
@LjupcheVasilev2 ай бұрын
Thank you!
@acesvaba3302 ай бұрын
nice meme dude
@LjupcheVasilev2 ай бұрын
Thanks 😅
@TheBlackGentlemanGeek2 ай бұрын
I like this video bro. Now I’m more comfortable with architecture. Coming from the frontend side, I always thought that you needed some special skill to design an architecture, since every time I saw one, it was complex with many bits and pieces including spaghetti arrows and shapes. It used to put me off app architecture for years. But lately I decided to step up and dive into it. I still didn’t know there was a thinking process until I saw videos like this, which makes it more palatable and fun. It’s all about following a process, not the lines and shapes. Thanks bro. Also what software did you use in your video to draw your architecture?
@LjupcheVasilev2 ай бұрын
Appreciate the comment. Software architecture can seem daunting but with anything it just needs time to understand it and then the repetitions to fully comprehend and understand how to use it. I used Eraser in this video.
@tranquillityEnthusiast2 ай бұрын
Sir what is the tool you're using for illustration
@LjupcheVasilev2 ай бұрын
Everything is done in Premiere Pro. I use a plugin (Mister Horse) that has some animated shapes and lordicon for the animated icons
@Jonty8002 ай бұрын
Great video! For a serverless architecture, what's your opinion on bundling all CRUD operations into 1 lambda VS decoupling into separate lambdas for each operation?
@LjupcheVasilev2 ай бұрын
Glad you like it! I think it depends on the load of the api. Like I said in the video for MVP it doesn’t really need a lot of lambdas, one graphql lambda is enough. As the load increases decoupling helps serve the users faster and more efficiently. This can be done gradually for example instead of making one lambda per operation it can be one lambda per micro service first and if load increases even more then split those into separate lambdas per operation.
@guizaoacc2 ай бұрын
That is good content! I’m surprised that there are not many videos talking about this. Most of the content about architecture are talking cloud environments and networks protocols. What about the regular software developer that wants to ship fast, usually deploys on Vercel and having a BaaS in Supabase, Appwrite or Firebase… There’s no content for scheming it in an intuitive way.
@LjupcheVasilev2 ай бұрын
Thank you! I agree 100%. I did go a bit overboard on this one with the enterprise architecture but like I said at the end, starting with something small and validating the idea is the most important step
@commanderuday49533 ай бұрын
thank you!!
@iUmerFarooq3 ай бұрын
Will you make course on typescript or Vuejs or Nuxtjs or NodeJs ExpressJs or Nestjs or Graphql?
@LjupcheVasilev3 ай бұрын
Probably not a whole course soon. But I will continue to make videos on those subjects.
@user-dd7kw3ym5i3 ай бұрын
I think you don't need to check their types here 2:41 you already have defined types of it so TS will throw an error and you don't have to check it
@LjupcheVasilev3 ай бұрын
The reason why I’m checking the types there is because in my types they are set as required properties, but because they are input from the user we can’t be sure the user has actually sent all the required fields. I could’ve made the properties optional and then typescript will complain if they are not checked.
@umaralifayzullayev3 ай бұрын
Wow this channel is so good 👍 👍 👍
@LjupcheVasilev3 ай бұрын
Thank you so much 😀
@SuperKidontheblock3 ай бұрын
Can you imagine having a large object with different fields being returned. Zod is heaven sent.
@LjupcheVasilev3 ай бұрын
100%! I don’t use it enough, I use AJV more, but I will be using it for my new side project.
@heavierthanlight71732 ай бұрын
I just made the decision to use Zod inside Typescript projects after I read some really interesting articles on the net.
@LjupcheVasilev2 ай бұрын
Let us know how you're finding it after some time :)) @@heavierthanlight7173
@heavierthanlight71732 ай бұрын
@@LjupcheVasilev will do!
@bradleyhill53123 ай бұрын
Really great rundown of useful tips for TypeScript! Thanks for the good work!
@LjupcheVasilev3 ай бұрын
Glad it was helpful!
@nimitsavant31273 ай бұрын
Very descriptive and informational thank you :)
@LjupcheVasilev3 ай бұрын
You're very welcome!
@henochangemichaellonzokoff60363 ай бұрын
Is it possible to have clean architecture in a react project?
@LjupcheVasilev3 ай бұрын
Yes, kind of. Clean architecture for me is mainly about separation of concerns and you can definitely do that in a React project. It may not be as straightforward as in backend, or there won't be a chance to implement all of the layers. But some of the clean architecture principles, yeah sure.
@henochangemichaellonzokoff60363 ай бұрын
@@LjupcheVasilev ok
@SuperKidontheblock3 ай бұрын
Make fonts bigger next time. Nice video. 😊
@LjupcheVasilev3 ай бұрын
Thank you! Working on it…
@phkyon3 ай бұрын
Great video, mate!!!
@LjupcheVasilev3 ай бұрын
Thank you!!
@user-di1bi5oy7u3 ай бұрын
Thanks for sharing the template! Can't wait to see the Architecture video 👍
@LjupcheVasilev3 ай бұрын
Thanks, glad you like it :))
@gordonfreimann3 ай бұрын
right half of your screen is empty and waste of a space. So you are not a senior software engineer.
@LjupcheVasilev3 ай бұрын
Sure thing appreciate the comment
@ilkokacharov7273 ай бұрын
Nice video. What's the vscode extension for the REST requests?
@LjupcheVasilev3 ай бұрын
Thanks! It’s the Postman extension, basically the same as the desktop app in vscode
@VytautasVitkus3 ай бұрын
Wouldn't the git bisect be a better choice in finding the introduced bug?
@LjupcheVasilev3 ай бұрын
I haven’t used git bisect before but, there’s more than one way to find and solve an issue. I guess choose what works for you. But I’ll try git bisect and maybe make a video about it!
@souvikadhikary24293 ай бұрын
Could u make zoom font size bigger for mobile user
@LjupcheVasilev3 ай бұрын
I never really thought about that but thanks for bringing it up! I definitely will for upcoming videos