Հիմնական API-ը թույլ է տալիս տեղադրել ինտերնետի համար, եւ իր հաճախորդը սերտիֆիկն է. Ինչպե՞ս աշխատում է Google Calendar- ը, եւ ինչ կարող ենք իմանալ այնից, որ ինժեներներ են: Architecture : Ոչ (!). միայն մի քանի տեղական գրասենյակներ այնպիսի բաների համար, ինչպիսիք են հավելվածությունը եւ համատեղելի գործիքները: Frontend framework : CSS դասընթացների անունները, որը JS- ի կողմից վերլուծվում են: Frontend Styling : Cache Storage, IndexedDB (offline mode), CDN (images & fonts). Frontend Storage Spanner DB սարքավորումներ. API Storage : Google Meet, Google Contacts, Google Auth. External APIs Արդյոք, թե ինչ է անում, թե ինչ է անում, թե ինչ է անում. Services : An in-house compiler that makes JS download and run faster. Other Interesting խնդիրներ Անհարկե, օրինակը մի մեծ CRUD ծրագրի է, բայց չեք թույլ տալ, որ այն խուսափել է ձեզ, քանի որ շատ խուսափող տեխնիկական խնդիրներ պետք է լուծվի: Calendar API REST+JSON- ը 2011 թ.-ից (հարկե REST+RSS-style feed) Data model leans heavily on RFC 5545 iCalendar recurrence strings (Microsoft- ը եւ Apple- ը օգտագործում են մատակարարված աչքեր) Clients can to receive a webhook notification when events change watch/subscribe Supports incremental syncs for speed... but also requires you to handle expirations & re-syncs on your own Uses to reduce performance issues quotas & rate limits Նրանք կօգնեն ձեզ անել ամեն ինչ, ինչ դուք պետք է անել, բայց նրանք չգիտեն այն ձեզ համար: HTML layout Ահա, HTML- ի կառուցում կարող է ճշգրիտ լինել: Երբ օրինակային տեսանյութերը խոշոր են, Եթե սերտիֆիկները չպետք են բաղադրվել. Բարձր արդյունավետության խնդիրներ Ահա ամենամեծ HTML սերտիֆիկները: The Grid: Բոլոր օրական գծեր, օրական գծեր, ժամանակավոր գործառույթներ, կետիներ Տեսագրական գործառույթը, որը չի կարող բեռնել մի գծի / գծի համար The drag layer. Սա թույլ է տալիս Ձեզ DND գործիքները մետաղադրամին Forms: Բարձրացվում է գլուխում կատարվող պատմություններների հետ եւ լայնացվել է ամբողջ գլուխում: : For confirmation messages Toasts Frontend Algorithms Ամեն օրագրական հաճախորդը ունի մի քանի քաղցր ալբոմսեր: : the length, height, and coordinates (X, Y) of each event div. To compute this, you need to account for the event duration and view scale. Event position : The width and Y coordinates, which need to be adjusted based on the surrounding events. All-day event lengths : how to adjust events when they share times. Gcal’s implementation is more sophisticated compared to Outlook’s (which halves each event). Pseudo-code below. Overlapping events // overlapping events logic if start or end of targetEvent overlaps with any(events): if start and end of targetEvent = start and end of any(events): orderEventsAlphabeticallyByTitle() if start of targetEvent = start of any(events) and end != end of any(events): orderByDuration() //longest events go behind shorter events if start or end of targetEvent != start or end of any(events): if targetEvent overlaps multiple events: targetEventGoesInFrontOfEvents() else: orderEventsByStart() //events that start earlier go behind Դա Հիմնականը, որ մենք պետք է կատարենք այդ ալիքները. Compass Repo- ը ծառայություններ These are the external workhorses that allow the client code to stay simple and reliable service — Allows GCal to be reliable and fall back to offline mode gracefully Heartbeat Ապրանքի ծառայություն — pub/sub style events, որոնք հզոր են webhooks- ի համար հաճախորդների համար: Սա թույլ է տալիս այլ ծրագրերը կառուցել GCal API- ի վրա: service — coordinating the timing of your pre-event notifications. The client could do this alone in theory, but it would be less reliable. Notifications [ Takeaways CRUD ծրագրի կառուցումը կարող է տեսնել անմիջական է դիզայնի դիզայնի վրա, բայց այդ հեշտությունը դեռ պահանջում է բարձր մակարդակի կատարման. API- ի հավասարավետությունը: Երբ շատ ծրագրերը հավասար են GCal- ի հետ երկու ուղղակի սննդելու համար, API-ը պետք է պարզ, լայնացրելի եւ հավասար լինել: Եթե նրանք կախված են, նրանք կախված են այլ ծրագրերի սերտիֆիկը ներքեւում: Data security: Calendar data- ը շատ զգալի է: Նրանք շատ հավատում են scope-based roles- ում, որպեսզի ապահովել, որ միայն ձեր հավատված մարդկանց / app- ները կարող են հասնել ձեր տվյալները: : Health checks, logging, and syncing are happening non-stop behind the scenes. Monitoring services Հիմնական հարցում, դուք կարող եք հեշտացնել կյանքը ձեզ համար: . not doing things not doing things Դուք չեք պետք է օգտագործեք Trending Stack- ը: Տեսեք, եթե նրանք ամեն ինչ կանգնած են իրենց ծրագրի վերլուծման համար Angular- ում: Այնուհետեւ React- ը: Այնուհետեւ Svelete- ը: Այնուհետեւ NextJS- ը: Այնուհետեւ HTMX- ը: Այս բոլորը ստացել են Google Calendar- ից հետո: GCal- ը ընտրել է JS- ը, վերլուծվել է ճիշտ գծի վրա, եւ կանգնած է 64MPH- ում: Ոչ ոք չի վախենում: Դուք չեք պետք է գրել բոլոր պլատֆորմներում: Տեղադրեք Google Calendar desktop app- ը հիմա: Ես կտա. Դուք չեք պետք է վերցնել styling trends. Bootstrap. Bulma. styled-components. Tailwind. CSS դասընթացների անուններ. Դուք չեք պետք է ստանալ լավագույն UX- ը: Dark mode. Forms that save space. #FFFFFF light mode. Full-page forms. Դուք չեք պետք է ստանալ լավագույն կատարումը: Նրանք ստանում են Performance- ում 31/100-ը: Որպես կյանքում, այն վճարում է գիտել ձեզ, երբ տրանսպորտային արտադրանքը. Google Calendar- ը չի փորձում լինել նորաձեւ app- ը, որը Executive Assistants- ը օգտագործում է օրվա ընթացքում 40 հանդիպումները (հա թե ինչու է Vimcal- ը): Google Calendar- ը ցանկանում է լինել պարզ app- ը, որը որեւէ մեկը իր 2 միլիարդ օգտվողներիից կարող է աշխատել առանց հիման: Այն ստուգում է 88/100-ը հարմարավետության մասին: UI-ը չի փոխվում: Այն չի վերադառնալ, եւ այն ունի օնլայն աջակցություն, եթե դա կատարվում է: Այն պարզապես աշխատում է. Դա շատ է. To get these deep dives in your inbox, subscribe to my newsletter, . Fullstack ինժեներ