Тёмный
No video :(

[Front-End System Design] - Google Calendar 

Front-End Engineer
Подписаться 21 тыс.
Просмотров 23 тыс.
50% 1

Опубликовано:

 

5 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 40   
@dmitryscherba5758
@dmitryscherba5758 Год назад
Today I passed my first system design interview in a big serious company with zero previous experience in system design! I had 3 days to prepare and I mostly just watched your videos and googled stuff, thank you so much!!
@avinashyadav1
@avinashyadav1 2 года назад
You are killing it. Finally in the ocean of backend system design videos we have a river of Frontend system design :)
@josephkaltenecker7904
@josephkaltenecker7904 19 дней назад
wow! Great explanation on the IntervalTree
@SanjayYadav-ur4qj
@SanjayYadav-ur4qj 9 месяцев назад
I don't think that we need to take care of conflicting events in frontend side. Whenever we are going to create a new event, we will send all its participants including ourselves as a payload and that API will return all the events for individual participants for that duration. and using that information, we can decide if we need to change the time or not. Even if any participant is occupied, we still can create an event for him.
@zxhwd2008
@zxhwd2008 Год назад
I have a feeling this is nearly impossible to cover all the things in one hour including time spent thinking specifically this is a quite hard question
@evandroLG2
@evandroLG2 2 года назад
It's another awesome video! Congrats and thanks dude! The only important feature that was not discussed in the video is how to implement the events that can be scheduled to be repeated over days, weeks, months, etc. In a past interview with Uber, I had exactly this problem and the interviewer focused mostly on this Google Calendar feature. It would be interesting to see a second part of this video covering this specific case.
@FrontEndEngineer
@FrontEndEngineer 2 года назад
Hey Evandro, thanks for update! I might update existing video with your specific case. Will see :)
@sarthaksrivastava1797
@sarthaksrivastava1797 Год назад
How about sending cron values to schedule a recurring call?
@shiyuwang2717
@shiyuwang2717 Год назад
I feel I should pay for this. Awesome job! Thank you for sharing
@jayshah5695
@jayshah5695 2 года назад
Two imp questions: 1. how many total events will you have fetched in your UI/local store? events for 1 year? 2. How do you handle recurring events ? Same event is repeated infinitely at a given frequency (e.g. daily, weekly) I am assuming they are all treated as separate events by server, but there will be some dependency between those events? e.g. when we delete a recurring event, it asks for delete "This and following event".
@FrontEndEngineer
@FrontEndEngineer 2 года назад
Thanks for the questions. It's actually exact follow up questions a few friends got on the interview. 1. Locale storage has a 5mb limit. That is a plenty of data that can be stored. We can subscribe for events and receive them in chunks. The chunk size can be set based on the bandwidth and user device. Also don't forget that nothing keeps us from storing stuff in client cache 2. All repeated events treated as a separate entities with one exception, you also create another entity - special type of event RecurringEvent with the metadata about this event. All events that are instances of this recurring event will have a link to main event. On the backend, it will be easy to fetch all events based on main recurring entity. Also, you'll have to 2 options 1. Edit recurring event (will trigger update for all dependent events) 2. Edit current instance
@iamMrBChen
@iamMrBChen 6 дней назад
thanks for sharing wonderful content. Question about the complexsity. I believe the worset case for these operations is O(n) because you could have a very skewed tree like a single line.
@FrontEndEngineer
@FrontEndEngineer 5 дней назад
Thanks for the comment, yes, it's right! In the worst case, you may need to traverse the whole tree.
@indrajeetnikam5301
@indrajeetnikam5301 Год назад
Isn't the Worst case Time complexity for the search here O(N)? I mean we could be looking at the entire tree in some cases, take your second example for reference. It was certainly not Log(N).
@denischudinov2379
@denischudinov2379 7 месяцев назад
Thanks for the great video! Having GraphQL and Event Driven architecture sounds like over engineering for such a simple app :-)
@comingfall6348
@comingfall6348 Год назад
literally the best youtube channel
@shivam_bhalla
@shivam_bhalla 11 месяцев назад
Great video. Question, you selected SSE protocol for this but that is unidirectional from sever to client only, the createEvent wont be supported there right?
@ayushkushwaha171
@ayushkushwaha171 Год назад
Are all these things required for junior-level developers as well while interviewing ? Like the interval tree algorithms, server-side events, if not, then what should a junior developer focus on before going to a system design interview?
@tushar54983
@tushar54983 Год назад
The interval tree strategy is only for events that spans multiple days right? For events that are within 1 day, for 1 hr or 2 hrs, a good strategy is to just have events for a day in a map or something and then apply an algo to see if the new Event's start and end time will conflict with any of the existing ones. Also, for multi day Interval tree strategy, imagine if an already created event is edited (start and/or end time), this will have to trigger recreation of the Interval tree as the interval tree is originally created using the Start date of the events, so that would get restructured OR if end date changes, the max date(s) for nodes in Interval tree may change...
@denischudinov2379
@denischudinov2379 7 месяцев назад
Yeah, but usually read operations greatly outnumber start / end date alteration operations. It is a common way to optimize for data usage pattern.
@user-yr3ub5gp3t
@user-yr3ub5gp3t 2 года назад
Hi, dude! It is really amazing content! Thanks a lot! I only started dive in system design, and your content is helpful a lot.
@ayushkushwaha171
@ayushkushwaha171 Год назад
Nice video! Please keep making more :)
@natanagar
@natanagar Год назад
Very useful for starting). Thanks. Спасибо
@mdshihabuddin8673
@mdshihabuddin8673 2 года назад
Thank you for this awesome video, We want more video like this, And also interview questions Answer video nedd
@ayyappagollu8464
@ayyappagollu8464 Год назад
Awesome video!! However I have a question here. If there is a event that spans across multiple days(3) how can we render it in a week view? in general how would one go about rendering week view here? Would he call fetch for each day and render? Also wouldn’t it be inefficient for first load to wait for year full of events to load?
@nishantraithatha8701
@nishantraithatha8701 Год назад
this is awesome, if you are building on mobile iOS or Android and had to write data store to persistent, will you write your store as it is? or normalize more and write it?
@chaitradeshpande6607
@chaitradeshpande6607 Год назад
I believe at the end you meant PWA (Progressive Web Apps) using ServiceWorkers to work in offline mode.
@devathimahesh8007
@devathimahesh8007 2 года назад
You have great content man!!!!!
@hardikluhar4738
@hardikluhar4738 Год назад
Nice
@tamvongatvn1084
@tamvongatvn1084 2 года назад
nice to see you
@serenawang2582
@serenawang2582 Год назад
Amazing ! Would you mind share this draw picture to me? Wanna to review once have feel time. Thx so much.
@maskos5515
@maskos5515 Год назад
Websockets are not compatible w/ HTTP/2? In what world ?
@user-yb5cn3np5q
@user-yb5cn3np5q Год назад
Using translate to switch between screens is such a bad idea. There is scroll-snap CSS precisely for that.
@zakharkrauchuk2490
@zakharkrauchuk2490 4 месяца назад
I guess SSE means Server Sent Evens, not Server Side Events. Keep it mind :)
@yoggg932
@yoggg932 10 месяцев назад
Sorry, what you call 'functional requirements' are actually 'non functional requirements' . ( e.g. accessibility )
@gamingxsvssdeva4245
@gamingxsvssdeva4245 2 года назад
what are critcal resources in rendering performance ?
@toantran5611
@toantran5611 Год назад
IMO critical resources are resources ( files, scripts, etc..) needed for a web application to be up and running. For example, you may need to to load index.js to render the web page. On the another hand, analytic.js can be a not critical resource when we render the page. So we can defer analytic until later. It will bring in a lot of improvement in Largest Contentful Paint.
@denischudinov2379
@denischudinov2379 7 месяцев назад
Resources you need to render above the fold UI (JS & CSS).
@kirillb.9322
@kirillb.9322 2 года назад
Say CalEndar one more time I double dare you
@FrontEndEngineer
@FrontEndEngineer 2 года назад
sure, CalEEEEndar :) Actually, I've just realized that I'm pronouncing it wrong
Далее
[Front-End System Design] - Google Sheets
45:11
Просмотров 20 тыс.
Top 6 Most Popular API Architecture Styles
4:21
Просмотров 892 тыс.
[Front End System Design] - Facebook News Feed
47:51
Просмотров 130 тыс.
Amazon Front End Interview Prep | Software Engineer
15:01
[Front-End System Design] - Chat application
44:44
Просмотров 30 тыс.