рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд░рд╛рдЬреНрдп рдорд╢реАрди

5 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, RxJs, рдмреАрдХрди, ... рдЗрддреНрдпрд╛рджрд┐ рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдФрд░ flyd.js рдкрд░ рд░реБрдХрдХрд░, рдзрд╛рд░рд╛ рд╕реЗ рдХреЗрд╡рд▓ рддреАрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 4-6 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦреЗ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ ред рдмрд╛рдХреА рдХрд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рдерд╛, рдореИрдВ рдмрдВрдбрд▓ рдХреА рд▓рдкрдЯ рдЪрд╛рд╣рддрд╛ рдерд╛ред рддреЛ рдЕрд▓рдХ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, 0.3 рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗрд╡рд▓ 20-30 рд▓рд╛рдЗрди рдереЗ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреНрд▓рд╛рдИрдб рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рд╕рдВрд╕реНрдХрд░рдг 0.4 рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдФрд░ рдорд┐рд╢реНрд░рдг рдХреЗ рд╕рд╛рде 72 рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рдлреНрд▓рд╛рдп рд╕реЗ рд╕рдВрдпреЛрдЬрди рдпрд╛ рд╡рд╛рдЙ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЧрдИ)ред рддреАрди рд╕рд╛рд▓ рдФрд░ рджрд░реНрдЬрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рдж - рдЕрдЪреНрдЫрд╛рдИ, рд╢реЗрдпрд░ рдЕрдиреБрднрд╡ рдФрд░ рд░рд┐рд▓реАрдЬ 1.0 рдХреА рднрд╛рд╡рдирд╛ рдереАред



рдХрд╛рд▓реНрдкрдирд┐рдХ рднреВрдорд┐


рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ FRP рдореЗрдВ рдПрдХ рддреАрдХреНрд╖реНрдг рд╡рд┐рд╕рд░реНрдЬрди рдПрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ OOP рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрдиреЗ рдкреВрд░реЗ рдЬреАрд╡рди рдХреЛ рддреАрдЦреЗ рд╡рд┐рд╕рд░реНрдЬрди рдХреА рддрд░рд╣ рд╕реНрдирд╛рдирд╛рдЧрд╛рд░ рдХреЗ рдмрд╛рд╣рд░ рдЧрд╣рд░рд╛рдИ рддрдХ рдЙрдбрд╝рд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЪрд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╕рд╣рдЬ рд╣реЛрдиреЗ рдореЗрдВ рдореБрдЭреЗ рдХрдИ рд╕рдкреНрддрд╛рд╣ рд▓рдЧ рдЧрдПред рддреАрди рдорд╣реАрдиреЗ рдмрд╛рдж, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЧреНрд░рд╛рдл рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдПрдХ рдкреЗрдбрд╝ рдХреА рдирд╕реЛрдВ рдпрд╛ рдЬрдбрд╝реЛрдВ / рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдЪреАрди рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рд╕рдВрд╕реНрдХреГрдд рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд░реБрдЪрд┐ рдФрд░ рдХреНрд╡реЗрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрдпрд╛рд░ рдиреЗ рдореЗрд░реА рдорджрдж рдХреАред рдирд╛рдХ рдЫрд┐рджрд╡рд╛рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдХрд╛рди рдлреБрдВрдХрдирд╛ рдЧреЛрддрд╛рдЦреЛрд░ рдХрд╛ рдореВрд▓ рдХреМрд╢рд▓ рд╣реИред рд╕рдлрд▓ рдХреНрд▓рд╛рд╕рд┐рдХ рдУрдУрдкреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рдЗрдорд░реНрд╕рд┐рд╡ рдиреЙрд▓реЗрдЬ рд╕реНрдХрд┐рд▓реНрд╕ рдХреЛ рдзреВрд▓ рдЪрдЯрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реЛрдЧреАред рдХреБрдЫ рднреА рдЕрдиреБрднрд╡реА рдХрд╛рд░реНрдпрд╛рддреНрдордХрд╡рд╛рджрд┐рдпреЛрдВ рдХреА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╡реЗ рдореМрдЬреВрджрд╛ рд░реВрдкреЛрдВ рдкрд░ рдХрд╛рдмреВ рдкрд╛рдиреЗ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рднрдбрд╝рдХрд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗред

рдЕрдЬреНрдЮрд╛рдд рдирд╛рдо


рджрд░реНрд╢рди рдореЗрдВ, рдореЛрдирд╛рдб рдХреЛ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛ рдореВрд▓ рдХрдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рднрдЧрд╡рд╛рди рдХрд╛ рдПрдХ рдХрдг, рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ред рдлрдВрддрд╛рд╕реА рднреВрдорд┐ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ, рдФрд░ рдПрдлрдЖрд░рдкреА рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдореЗрдВ, рдПрдХ рд╕рдирдХ рдХреБрдЫ рдЙрдЪреНрдЪ-рд╕реНрддрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдВрджрд░ рдПрдХ рдлрд╝рдирдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ OCaml рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдлрдВрдХреНрд╢рдирд▓рд░реНрд╕ рдХреА рджреЛ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВред рдЕрд▓рдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореВрд▓ рдХрдг рдлрд╝рдВрдХреНрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди / рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдПрдХреНрд╕реЗрд▓ рдЯреЗрдмрд▓реНрд╕ рдХреА рддрд░рд╣ рд╣реИред



Bacon.js рдореЗрдВ, рдЗрд╕реЗ " рдкрд░рдорд╛рдгреБ рдЕрджреНрдпрддрди, " RxJs рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд▓рдХ рдореЗрдВ, рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

import A from 'alak' //    -    alak const userId = A.flow(); //         const followers = A.flow(); const profile = A.flow(); const tweets = A.flow(); //  userId -> profile  getProfile const getProfile = id => api.getProfile(id).then(profile); userId.up(getProfile); //   userId.up(id => { api.getFollowers(id).then(followers) api.getTweets(id).then(tweets); }); 

рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдкрд░ рдЪрд▓рд╛рдПрдВ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдмрджрд▓рдиреЗ рд╕реЗ рдлреЙрд▓реЛрдЕрд░реНрд╕ , рдкреНрд░реЛрдлрд╛рдЗрд▓ , рдЯреНрд╡реАрдЯ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдмрджрд▓рд╛рд╡ рдЖрдПрдЧрд╛ред

рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП


Alak functor рдХрд╛ рд╕рднреА рдЙрдкрдпреЛрдЧ рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ Go рдореЗрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдПрдХ рдЪреИрдирд▓ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдХрдиреЗрдХреНрд╢рдиреЛрдВ / рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рднреА рдирдордХ, рдПрдХ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╢реНрд░реЛрддрд╛ рдЗрд╕рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдгреАрдп.рдЬреЗрдПрд╕ рдореЗрдВ, рдпрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдкрд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдгреАрдп 2 рдкрд░ рдХреНрд░реЙрд╕ рд╕рдВрджрд┐рдЧреНрдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЖрд░рдПрдХреНрд╕рдЬреЗрдПрд╕ рдХрд╛ рдЖрд░реЛрдкрдг рдерд╛ред ReduX рдХреЛ рджреЗрдЦрдХрд░, рдореБрдЭреЗ PureMVC рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рджреЛ рдХрджрдо рдкреАрдЫреЗ рдХреА рднрд╛рд╡рдирд╛ рдорд┐рд▓реАред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдХрдИ рдЖрдзреБрдирд┐рдХ рд╡рдХреНрддрд╛рдУрдВ рдХреА рддрд░рд╣, рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╕реЛрдЪ, рдУрдУрдкреА рдкреИрдЯрд░реНрди рдХреЗ рдмреЛрдЭ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдорд╛рдирд╡ / рд╕рд╛рд╣рд┐рддреНрдпрд┐рдХ рдХреЛрдб рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВред рдЕрд▓рдХ рдЖрдЬ рд╕реНрдЯреИрдХ рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЧреНрд░рд╛рдл рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╣рдо рджреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ (jsx / svelte / html рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди) рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
- рддреЛ рд╣рдо рджреБрдХрд╛рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi467531/


All Articles