Тёмный
Ljupche Vasilev
Ljupche Vasilev
Ljupche Vasilev
Подписаться
Sharing my knowledge and experience from the years spent working as a software engineer
Is DrizzleORM Worth The Hype?
11:14
День назад
Role Based Access in NextJS App Router
13:38
Месяц назад
Nextjs Abstractions & Common Mistakes
6:25
2 месяца назад
Comparing Under £50 Mechanical Keyboards
9:49
2 месяца назад
From Idea To Robust Database Design
16:21
2 месяца назад
Common Typescript Configurations
9:11
3 месяца назад
Software Architecture From 0 To Enterprise
13:31
3 месяца назад
Learn Memoization For Your Next Interview
6:01
4 месяца назад
Let's Talk About Clean Architecture Prinicples
15:09
5 месяцев назад
Never Trust User Input | AJV Schema Validation
10:10
5 месяцев назад
Learn To Git Rebase Like A Pro
10:37
5 месяцев назад
Building a GraphQL API using SpaceX Data
15:43
5 месяцев назад
Automate your API testing with CucumberJS
12:17
5 месяцев назад
Комментарии
@B0re_d
@B0re_d 3 дня назад
8. Do not try to mentor / prepare tech talks for anyone
@LjupcheVasilev
@LjupcheVasilev 2 дня назад
8 steps doesn’t sound as sexy as 7 steps
@nicholasbell6128
@nicholasbell6128 3 дня назад
Great video 👍 it would be nice if you had chapters in your video to flip between.
@LjupcheVasilev
@LjupcheVasilev 3 дня назад
I should start adding chapters again.. Will continue from the next video!
@vikingthedude
@vikingthedude 3 дня назад
We going back to entry level with this one 🗣️🗣️🗣️🗣️🔥🔥🔥
@theforeskinsnatcher373
@theforeskinsnatcher373 4 дня назад
wow with this I will stay intern forever. thanks
@LjupcheVasilev
@LjupcheVasilev 4 дня назад
Glad I could help
@cubimon8219
@cubimon8219 4 дня назад
Don't worry, I am constantly looking for feedback, trying to improve, asking colleagues for review, helping out colleagues, reading into new topics.But I will still stay junior forever.
@GROW_YOUTUBE_VIEWS_m021
@GROW_YOUTUBE_VIEWS_m021 5 дней назад
Surround yourself with positive people who uplift and inspire you. Together, we can create a brighter and happier world
@leo_and_his_bikes
@leo_and_his_bikes 24 дня назад
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.
@LjupcheVasilev
@LjupcheVasilev 24 дня назад
Yeah, great point, delegating logic is definitely another one of the advantages of reducers
@maso4u
@maso4u 24 дня назад
great video man, keep making more
@LjupcheVasilev
@LjupcheVasilev 24 дня назад
Thanks!
@reynardlee3667
@reynardlee3667 Месяц назад
hi what is the tool used here? subbed
@LjupcheVasilev
@LjupcheVasilev 27 дней назад
Thanks! I used Eraser to model the db if that’s what you meant
@DanielBergholz
@DanielBergholz Месяц назад
How on earth this video doesn't have 100k views? Amazing content!
@LjupcheVasilev
@LjupcheVasilev Месяц назад
I keep wondering the same thing bro 🤷‍♂️
@WilsenHernandez
@WilsenHernandez Месяц назад
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
@dyto2287
@dyto2287 Месяц назад
0:13 raw SQL looks simpler. ORMs are useless abstractions.
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Yeah I guess, but I can see how it helps someone that doesn’t know sql to get the job done
@dyto2287
@dyto2287 Месяц назад
@@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.
@mrlectus
@mrlectus Месяц назад
You can do Joins in prisma
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Does Prisma then execute only one SQL query or it still does multiple?
@johnalright8566
@johnalright8566 Месяц назад
@@LjupcheVasilev in some recent updates they added native sql joins so yeah it does now
@user-of6ls2ng5l
@user-of6ls2ng5l Месяц назад
brother, mankind invented Drizzle a long time ago.
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Maybe it’s my little bubble of people I follow online but I heard about it only a few months ago
@nasko235679
@nasko235679 Месяц назад
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.
@LjupcheVasilev
@LjupcheVasilev Месяц назад
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 :)
@readywhen
@readywhen 21 день назад
Yeah that's wise. Db modeling is as much of a business problem as it is an engineering problem, in my opinion. For now, AI won't be solving business problems for you.
@HimanshuChanda
@HimanshuChanda Месяц назад
This is genuinely helpful 🎉
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Glad you found it helpful :)
@39strife
@39strife Месяц назад
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).
@Ttozyy
@Ttozyy Месяц назад
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?
@LjupcheVasilev
@LjupcheVasilev Месяц назад
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
@Ttozyy
@Ttozyy Месяц назад
@@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-js4gf
@SP-js4gf Месяц назад
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???
@LjupcheVasilev
@LjupcheVasilev Месяц назад
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-js4gf
@SP-js4gf Месяц назад
@@LjupcheVasilev good that you’re doing alright. Great I’m looking forward to your videos. Keep up 👍
@ThatGuy_Nick
@ThatGuy_Nick Месяц назад
0:47 so should model your data if you’re likely to pivot?
@LjupcheVasilev
@LjupcheVasilev Месяц назад
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
@ivanlysko6677
@ivanlysko6677 Месяц назад
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?
@LjupcheVasilev
@LjupcheVasilev Месяц назад
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
@interceptorghost1149 Месяц назад
Great video buddy, could you provide github codes?
@umaralifayzullayev
@umaralifayzullayev Месяц назад
i can't understand typescript😭. Can you make guide?
@LjupcheVasilev
@LjupcheVasilev Месяц назад
If I make a guide it will still probably be using typescript 😅 What language do you use?
@umaralifayzullayev
@umaralifayzullayev Месяц назад
Javascript
@phkyon
@phkyon Месяц назад
awesome video mate! congratz!
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Thanks a lot!
@Ladliju1
@Ladliju1 Месяц назад
how to open postman in vs code like the one you did?
@LjupcheVasilev
@LjupcheVasilev Месяц назад
Postman has a VSCode extension you can install and use. Not sure about other IDEs
@starlord7526
@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
@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
@justinangeloperez5650 2 месяца назад
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
@enz1222 2 месяца назад
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
@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
@justinangeloperez5650 Месяц назад
thank you in advance
@aivis-vigo
@aivis-vigo 2 месяца назад
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
@LjupcheVasilev 2 месяца назад
Go for it! I don’t have a discord atm, no. But if you find one let me know :)
@Jonty800
@Jonty800 2 месяца назад
AI won’t replace you, but Shadcn will
@LjupcheVasilev
@LjupcheVasilev 2 месяца назад
Imagine shadcn.ai 👀
@ItsMe-fj1co
@ItsMe-fj1co 2 месяца назад
what is thne name of this DB design tool you are using in the video?
@LjupcheVasilev
@LjupcheVasilev 2 месяца назад
It’s called eraser
@TheBlackGentlemanGeek
@TheBlackGentlemanGeek 2 месяца назад
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
@LjupcheVasilev 2 месяца назад
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.
@Mist72. 2 месяца назад
does the gray and black one work for console?
@LjupcheVasilev
@LjupcheVasilev 2 месяца назад
I haven't checked actually but it should work fine
@omojjegomosc8211
@omojjegomosc8211 2 месяца назад
You have helped me a lot with my project. Thanks!
@LjupcheVasilev
@LjupcheVasilev 2 месяца назад
Glad I could help!
@manishgautam2424
@manishgautam2424 3 месяца назад
That was great , You can deliver much better content , Keep it up
@LjupcheVasilev
@LjupcheVasilev 2 месяца назад
Thank you, glad you like it :)
@morteza7298
@morteza7298 3 месяца назад
Great video man, keep going
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Thank you!
@acesvaba330
@acesvaba330 3 месяца назад
nice meme dude
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Thanks 😅
@TheBlackGentlemanGeek
@TheBlackGentlemanGeek 3 месяца назад
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?
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
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.
@tranquillityEnthusiast
@tranquillityEnthusiast 3 месяца назад
Sir what is the tool you're using for illustration
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Everything is done in Premiere Pro. I use a plugin (Mister Horse) that has some animated shapes and lordicon for the animated icons
@Jonty800
@Jonty800 3 месяца назад
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?
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
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.
@guizaoacc
@guizaoacc 3 месяца назад
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.
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
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
@commanderuday4953
@commanderuday4953 3 месяца назад
thank you!!
@iUmerFarooq
@iUmerFarooq 3 месяца назад
Will you make course on typescript or Vuejs or Nuxtjs or NodeJs ExpressJs or Nestjs or Graphql?
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Probably not a whole course soon. But I will continue to make videos on those subjects.
@user-dd7kw3ym5i
@user-dd7kw3ym5i 3 месяца назад
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
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
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.
@umaralifayzullayev
@umaralifayzullayev 3 месяца назад
Wow this channel is so good 👍 👍 👍
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Thank you so much 😀
@SuperKidontheblock
@SuperKidontheblock 3 месяца назад
Can you imagine having a large object with different fields being returned. Zod is heaven sent.
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
100%! I don’t use it enough, I use AJV more, but I will be using it for my new side project.
@heavierthanlight7173
@heavierthanlight7173 3 месяца назад
I just made the decision to use Zod inside Typescript projects after I read some really interesting articles on the net.
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Let us know how you're finding it after some time :)) @@heavierthanlight7173
@heavierthanlight7173
@heavierthanlight7173 3 месяца назад
@@LjupcheVasilev will do!
@bradleyhill5312
@bradleyhill5312 3 месяца назад
Really great rundown of useful tips for TypeScript! Thanks for the good work!
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
Glad it was helpful!
@nimitsavant3127
@nimitsavant3127 3 месяца назад
Very descriptive and informational thank you :)
@LjupcheVasilev
@LjupcheVasilev 3 месяца назад
You're very welcome!
@henochangemichaellonzokoff6036
@henochangemichaellonzokoff6036 4 месяца назад
Is it possible to have clean architecture in a react project?
@LjupcheVasilev
@LjupcheVasilev 4 месяца назад
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.
@henochangemichaellonzokoff6036
@henochangemichaellonzokoff6036 3 месяца назад
@@LjupcheVasilev ok
@SuperKidontheblock
@SuperKidontheblock 4 месяца назад
Make fonts bigger next time. Nice video. 😊
@LjupcheVasilev
@LjupcheVasilev 4 месяца назад
Thank you! Working on it…
@phkyon
@phkyon 4 месяца назад
Great video, mate!!!
@LjupcheVasilev
@LjupcheVasilev 4 месяца назад
Thank you!!
@user-di1bi5oy7u
@user-di1bi5oy7u 4 месяца назад
Thanks for sharing the template! Can't wait to see the Architecture video 👍
@LjupcheVasilev
@LjupcheVasilev 4 месяца назад
Thanks, glad you like it :))