πΊοΈ ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
Core Web Vitals, V8 internals, Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ -- Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ
- Core Web Vitals -- LCP, FID, CLS (LCP/FID/CLS/INP)
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ JS -- ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
- 10 ΠΌΠΈΡΠΎΠ² ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JS
- Π§ΡΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½Ρ
Frontend
- Core Web Vitals -- LCP, FID, CLS (LCP, FID, CLS, INP)
- Web Vitals
- ΠΠ΅ΡΡΠΈΠΊΠΈ -- FCP, TTFB, TTI, TBT
- Lighthouse, Performance API
- Lazy loading, Code splitting
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, AVIF ΠΈ WebP -- Π½ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ
- Image CDN -- Cloudinary, imgproxy
- Font Loading -- ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
- ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ CSS -- inline critical CSS
- ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ CSS ΠΈ JS
- ΠΠ°ΠΊ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ, Browser rendering flow
- will-change -- ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΡ
- contain -- CSS Containment
- content-visibility -- lazy rendering
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
- SSR vs CSR -- ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
- Islands Architecture
V8 internals
- Π‘ΠΌ. ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ
V8-internals/β _MOC V8 internals - Ignition vs TurboFan, OSR -- On-Stack Replacement
- Inline Cache ΠΈ hidden classes (Shapes)
- Monomorphic Polymorphic Megamorphic
- ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ V8, Lazy Compilation
- SMI -- Small Integer, Pointer Tagging ΠΈ Oddball
- V8 ΠΎΠ±ΡΠ΅ΠΊΡΡ -- in-object ΠΈ dictionary mode
- ΠΠ΅ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² V8, V8 Native Syntax
- Hot ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
- ΠΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ V8, Π‘Π±ΠΎΡΠΊΠ° V8 Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ
JS-ΡΡΠΎΠ²Π΅Π½Ρ
- Switch vs IF Π² V8
- for vs forEach vs reduce
- Array SMI vs Double (Element Kinds)
- Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π² JS
- ΠΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ
- Math.trunc vs Π±ΠΈΡΠΎΠ²ΠΎΠ΅ OR
- JSON Π΄Π»Ρ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°
- Async Function -- ΡΠΊΡΡΡΠ°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²
- ΠΠ΅ ΠΌΠ΅ΡΠ°ΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ
Memory
- Π£ΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ -- ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ
- Π£ΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ GC Π² Node
- Garbage Collection Π² V8
- Garbage Collection
Π‘Π΅ΡΡ ΠΈ ΠΊΠ΅Ρ
- ΠΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ -- Cache-Control
- Caching ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
- Π‘ΠΆΠ°ΡΠΈΠ΅ -- gzip ΠΈ brotli
- Service Workers
- Edge Computing
ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ JS -- ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ -- Π°ΡΡ ΠΈΠ² ΡΠΈΡΡ
- A-B ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
- Lighthouse, WebPageTest
- Real User Monitoring (RUM)
- Synthetic Monitoring
- Chrome User Experience Report (CrUX)
- Performance Budget
- Alerting -- ΠΊΠΎΠ³Π΄Π° Π±ΠΈΡΡ ΡΡΠ΅Π²ΠΎΠ³Ρ
- Profiling Node -- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
React
- React.memo ΠΈ useMemo
- React -- Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ DOM ΠΈ reconciliation
- React -- Suspense ΠΈ lazy
Π§Π΅ΠΊΠ»ΠΈΡΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ½ΡΠ° ΡΠ΅ΠΊΠ»ΠΈΡΡ
- Π§ΡΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½Ρ
- 10 ΠΌΠΈΡΠΎΠ² ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JS
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ -- Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ