React useCallback() β ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
React useCallback() β ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΡΠ±ΡΠΈΠΊΠΈ Β«Π§ΡΠΎ ΡΠΈΡΠ°ΡΡ Π½Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈΒ». Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°. React, ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
Ρ
ΡΠΊΠΎΠ² β useCallback(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
POSTGRES EXPLAIN
POSTGRES EXPLAIN
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ explain Π² Postgres. ΠΡΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½Π°Ρ ΡΠ΅ΠΌΠ°, ΠΏΠΎ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. Π ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ explain. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΡΠΈΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Gitlab cache ΠΈ Gitlab artifacts
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Gitlab cache ΠΈ Gitlab artifacts
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π΄Π²ΡΡ
Π²Π°ΠΆΠ½ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ
GitLab, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΠΏΠ°ΠΌΠΈ CI/CD-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° β Cache ΠΈ Artifacts.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΠΏΠ°ΠΌΠΈ, ΡΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π°Π΄Π°Π²Π°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ
.
ΠΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ:
ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Cache ΠΈ Artifacts;
ΠΈΡ
ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ;
ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊ Π½Π΅ ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ·ΠΎΠΉ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΊΠΈΠ΅ soft-ΡΠΊΠΈΠ»Π»Ρ ΠΈ hard-ΡΠΊΠΈΠ»Π»Ρ Π½ΡΠΆΠ½Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
ΠΠ°ΠΊ Π½Π΅ ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ·ΠΎΠΉ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΊΠΈΠ΅ soft-ΡΠΊΠΈΠ»Π»Ρ ΠΈ hard-ΡΠΊΠΈΠ»Π»Ρ Π½ΡΠΆΠ½Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
ΠΠ½ΠΎΠ³ΠΎ ΡΠΆΠ΅ ΡΡΠ°ΡΠ΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ΅ΠΌΡ soft- ΠΈ hard-ΡΠΊΠΈΠ»Π»ΠΎΠ², Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π·Π°ΡΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΠ°ΡΠ΅ΠΉ Β«ΡΠΎΠΏ-10 (ΡΠΈΡΡΠ° Π»ΡΠ±Π°Ρ) Π½Π°Π²ΡΠΊΠΎΠ² Π΄Π»Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²Β» Π·Π°ΡΠ°ΡΡΡΡ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ hard- ΠΈ soft-ΡΠΊΠΈΠ»Π»Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΡΠ·ΠΈΠ½Π΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² ΡΠ΅ΠΌΠ΅ soft- ΠΈ hard-ΡΠΊΠΈΠ»ΠΎΠ² ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΡΡΠ°ΡΡΡ Π½Π° Habr ΠΎΠ± Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΡΡΠ°ΡΡΡ Π½Π° Habr ΠΎΠ± Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ΅ΠΌΡΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² β Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Micro Frontend, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π² Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ±ΡΠΈΠΊΠ΅ Spectr Β«Π§ΡΠΎ ΡΠΈΡΠ°ΡΡ Π½Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ?Β» Π½Π° Habr.
ΠΠ°ΠΊ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΡΡΠ΅ΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅? ΠΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Spectr ΠΏΡΠΎΠ²Π΅Π»Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΌΠΈΡΠ°ΠΏ ΡΠ΅ΡΠΈΠΈ #DevTalks
ΠΠ°ΠΊ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΡΡΠ΅ΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅? ΠΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Spectr ΠΏΡΠΎΠ²Π΅Π»Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΌΠΈΡΠ°ΠΏ ΡΠ΅ΡΠΈΠΈ #DevTalks
2 Π½ΠΎΡΠ±ΡΡ Π½Π° ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Π¦Π΅Π½ΡΡΠ° Π³ΠΎΡΠΎΠ΄ΡΠΊΠΎΠΉ ΠΊΡΠ»ΡΡΡΡΡ Π² ΠΠ΅ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ»ΡΡ ΠΌΠΈΡΠ°ΠΏ Β«ΠΠ΅ Ρ
Π°ΡΠ΄Π°ΠΌΠΈ Π΅Π΄ΠΈΠ½Ρ. ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ, one-to-one ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²Β». ΠΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠ΅ΡΠΈΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠΈΡΠ°ΠΏΠΎΠ² #DevTalks, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Spectr.