Pegjs: [рдкреНрд░рд╢реНрди] {рдХреИрд╢: рдЯреНрд░реВ} рдкрд░ рд╕рд▓рд╛рд╣ рдФрд░ рдЙрдЪрд┐рдд рдЖрдЙрдЯ-рдСрдл-рдореЗрдореЛрд░реА рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдирд╡ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pegjs/pegjs

рд╡рд┐рд╖рдп рд╡рд░реНрдЧ

  • рдкреНрд░рд╢реНрди: рд╣рд╛рдБ

рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ

  • рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ?: рд╣рд╛рдБ
  • рдХреНрдпрд╛ рдЖрдкрдиреЗ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореБрджреНрджреЛрдВ рдХреА рдЦреЛрдЬ рдХреА ?: рд╣рд╛рдВ, cache рджреЗрдЦрд╛, рдХреИрд╢ рдкрд░ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реАрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛ рдорд╛рдВрдЧ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдирд╣реАрдВред
  • рдХреНрдпрд╛ рдЖрдкрдиреЗ рдлрд╝реЛрд░рдо рдХреА рдЬрд╛рдБрдЪ рдХреА ?: рд╣рд╛рдБ, googlegroups / рдХреИрд╢реЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛
  • рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡реЗрдм рдЦреЛрдЬ рдХреА рдереА (рдЧреВрдЧрд▓, рдпрд╛рд╣реВ, рдЖрджрд┐) ?: рд╣рд╛рдБ

рд╡рд┐рд╡рд░рдг

рдореИрдВ ~ 1000 рд▓рд╛рдЗрди рд╡реНрдпрд╛рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрддреНрдд рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдХрд╛рдлреА рднрд╛рд░реА (500 рдХреЗрдмреА) рдЯреБрдХрдбрд╝рд╛ рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  • {cache: true} ...

    • ... рдФрд░ рдиреЛрдб рдХреЛ 3GB рд╣реАрдк ( --max-old-space-size=3000 ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реИ, рдвреЗрд░ 2.5GB рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ 12s рдореЗрдВ рд╕рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

    • ... рдФрд░ рдиреЛрдб 10 рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 800MB рдвреЗрд░ рдкрд░ рдЫреЛрдбрд╝рдХрд░, OOM рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ред

  • рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ {cache: false} , рдШрдбрд╝рд┐рдпреЛрдВ рдХреЛ 10s (рдЧреИрд░-рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдХреЗрд╕) рдкрд░ рдереЛрдбрд╝рд╛ рддреЗрдЬрд╝ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЛ рдЧреБрдмреНрдмрд╛рд░рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ред

рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХреНрд╕ рдЬреАрдмреА рдвреЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд▓ рдореБрдЭреЗ 1 рдПрдордмреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕ + 1 рдЬреАрдмреА рдвреЗрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ "рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдШрд╛рддреАрдп рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдордп рд╕реЗ рдмрдЪрдиреЗ" рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдиреЗ рдкрд░ {cache: true} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╣реИред

рдЖрдк рдХрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ?

  • рдЬрдм рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ PEG.js рдореЗрдВ рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ?
  • рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдореЗрд░реЗ рдкреНрд░рдпрд╛рд╕ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред
  • рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдУрдУрдПрдо рдХреЛ рд░реЛрдХрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
  • рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ {cache: true} рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЕрдзрд┐рдХ CPU рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореИрдВ OOM рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
  • рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░?

рдкреАрдИрдЬреА.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░

  • рдЦреВрдВрдЯреА.рдЬреЗрдПрд╕: 0.10.0
  • Node.js: 10.13.0
  • рдПрдирдкреАрдПрдо рдпрд╛ рдпрд╛рд░реНрди: рдПрдирдкреАрдПрдо 6.4.1
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░: рд▓рд╛рдЧреВ рдирд╣реАрдВ
  • рдУрдПрд╕: рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓рд┐рдирдХреНрд╕
performance question

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдШрд╛рддреАрдп рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдордп рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╣реА рд░реЛрдЧ рд╕рдВрдмрдВрдзреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╡рд╣рд╛рдВ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред
https://github.com/sirthias/pegdown/issues/43#issuecomment -18469752 рдкрд░ рд╡рд┐рдЪрд╛рд░
(рдореИрдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реВрдВ)

рдЬреИрд╕рд╛ рдХрд┐ @ polkovnikov-ph рдиреЗ рдмрддрд╛рдпрд╛, рдЖрдкрдХреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рд░реЛрдЧ рд╕рдВрдмрдВрдзреА рдорд╛рдорд▓реЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдУрдУрдПрдо рдорд╛рдорд▓реЛрдВ рдХреЛ рдорд╛рд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ (@ronjouch) рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ; рдЗрдирдкреБрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ _cache_ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЯреЙрдЧрд▓ рдХрд░реЗрдВ: cache: input.length >= 250000

рдЗрд╕рдХреЗ рдмрд╛рдж (рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ), рдореИрдВ рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реЛрдЧ рд╕рдВрдмрдВрдзреА рдорд╛рдорд▓реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдУрдПрдо рдорд╛рдорд▓реЛрдВ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдУрдУрдПрдо рдорд╛рдорд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХреЗрдВред рдЕрдкрдиреЗ рдРрдк рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдУрдУрдПрдо рдорд╛рдорд▓реЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рдЯреВрд▓рдЪреЗрди рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд╛рд╕ (рдпрд╛ рдХреБрдЫ) рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛:

  • рдмрдбрд╝реЗ рдЗрдирдкреБрдЯ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛, рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдЖрдВрд╢рд┐рдХ рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдлрд┐рд░ рдЬрдм рд╕рднреА рдЗрдирдкреБрдЯ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ (рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗрд╡рд▓ рддрднреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ рдЬрдм рдЖрдкрдХрд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рд░реНрд╕рд░ рдПрдПрд╕рдЯреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ)
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЧреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЗрд╕реЗ 2 рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкрд╛рд░реНрд╕рд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рд░реНрд╕рд░ рдФрд░ рджреВрд╕рд░рд╛ рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП
  • рдЖрдк рд╣рдореЗрд╢рд╛ PEG.js рд╡реНрдпрд╛рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЯреЛрдХрдирдирд╛рдЗрдЬрд╝рд░ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдРрд╕рд╛ рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ рджреЛрдиреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрдирдкреБрдЯ рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ (рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рдордп рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛, рдФрд░ рдПрдХ рддрд░рд╣ рд╕реЗ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди _ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ_)

@ polkovnikov-ph @futagoza рд╕рд▓рд╛рд╣ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рджреЛрдиреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж ! рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЖрдХрд╛рд░ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рднреА рд╕рдорд╕реНрдпрд╛ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рджрд╕реНрддрдХ рджреЗрдЧреА, рддреЛ рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЕрдЪреНрдЫрд╛ рджрд┐рди; рдкреНрд░рд╢реНрди рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Coffee2CodeNL picture Coffee2CodeNL  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alanmimms picture alanmimms  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

marek-baranowski picture marek-baranowski  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

audinue picture audinue  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

doersino picture doersino  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ