[Timur Shemsedinov] π§βπ» JavaScript: Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΡ Π΅ΠΌ, DSL, ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ
π§βπ» ΠΠ²ΡΠΎΡ: https://github.com/tshemsedinov π ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°: https://github.com/HowProgrammingWorks/Class π Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Struct: https://github.com/metarhia/metautil/blob/master/lib/struct.js π ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Struct: https://gist.github.com/tshemsedinov/2a2226db79642bef55c2c32fdace078e π ΠΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ : https://github.com/metarhia/metautil π ΠΠΎΠΏΠ°ΡΡΡ Π½Π° ΡΠΎΠ·Π²ΠΎΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ: https://www.patreon.com/c/tshemsedinov Π Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ JavaScript-ΠΊΠ»Π°ΡΡΠΎΠ² Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ: ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΊΡΡ Π·Π°ΠΏΠΈΡΡ, Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Object.defineProperty. ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ stack trace, Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ mutable ΠΈ immutable ΡΡΡΡΠΊΡΡΡ, runtime-ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠΈΠΏΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ fork ΠΈ branch, ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ½ΠΎΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. 00:00 ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ² Π² JavaScript 01:00 ΠΠ°ΠΊ JavaScript Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΡ 02:10 ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΏΡΡΡΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name 02:44 ΠΠ»Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ 03:48 ΠΠ°ΡΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΈΠΌΡ 04:34 ΠΠΎΡΠΎΡΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ 06:14 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· Object.defineProperty 07:23 ΠΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ 09:52 Stack trace, console.log ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² 10:42 ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² 12:10 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ immutable-ΠΊΠ»Π°ΡΡΠ° Money 13:07 Runtime-ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² 14:19 ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° metautil ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ 14:43 Fork Π΄Π»Ρ immutable-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² 15:31 Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ fork ΠΈ branch 16:21 ΠΡΠΎΡΠΎΡΠΈΠΏΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΌ 17:40 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ mutable-ΡΡΡΡΠΊΡΡΡΡ Task 18:38 ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ 19:44 Fork mutable-ΠΎΠ±ΡΠ΅ΠΊΡΠ° 20:43 ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ 22:23 ΠΠ°ΡΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ 23:12 Π§Π΅Π³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ JavaScript 24:09 ΠΡΠΎΠ³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² DSL
ΠΎΡΠΊΡΡΡΡ Π±ΠΎΡ

