рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдореИрд▓реЗ рдореЗрд░реЛ IT рдХреНрдпрд╛рд░рд┐рдпрд░рдорд╛ рд╕рд╣рдХрд░реНрдореАрд╣рд░реВ, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ, рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреЛрд▓реНрдиреЗрд╣рд░реВрд▓рд╛рдИ рджрд░реНрдЬрдиреМрдВ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВ рджрд┐рдПрдХреЛ рдЫреБред рдзреЗрд░реИ рд╡рд░реНрд╖рджреЗрдЦрд┐, PowerPoint рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рд╕реНрд▓рд╛рдЗрдб рдЙрддреНрдкрд╛рджрди рдЙрдкрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░ рднрд░рдкрд░реНрджреЛ рдЫрдиреЛрдЯ рднрдПрдХреЛ рдЫред рддрд░ рдпреЛ рд╡рд░реНрд╖ рд╕реНрдерд┐рддрд┐ рдЧреБрдгрд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫред рдлреЗрдмреНрд░реБрдЕрд░реА рджреЗрдЦрд┐ рдореЗ рд╕рдореНрдо, рдореИрд▓реЗ рдкрд╛рдБрдЪрд╡рдЯрд╛ рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдорд╛ рдмреЛрд▓реНрдиреЗ рдореМрдХрд╛ рдкрд╛рдПрдБ, рд░ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЫреЛрдЯреЛ рд╕рдордпрдорд╛ рддрд░ рдЙрдЪреНрдЪ рдЧреБрдгрд╕реНрддрд░рдХреЛ рд╕рд╛рде рддрдпрд╛рд░ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред рд╕реНрд▓рд╛рдЗрдбрдХреЛ рднрд┐рдЬреБрдЕрд▓ рдбрд┐рдЬрд╛рдЗрдирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рдордХреЛ рддреНрдпреЛ рднрд╛рдЧ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓рд╛рдИ рд╕реБрдореНрдкрдиреЗ рдмрд╛рд░реЗрдорд╛ рдкреНрд░рд╢реНрди рдЙрдареНрдпреЛред рдореИрд▓реЗ рдПрдХ рдкрдЯрдХ рдбрд┐рдЬрд╛рдЗрдирд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рдореЗрд▓рдмрд╛рдЯ .pptx рдлрд╛рдЗрд▓рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ, рддрд░ рдХрд╛рдо рдЕрд░рд╛рдЬрдХрддрд╛рдорд╛ рдкрд░рд┐рдгрдд рднрдпреЛ: рдХрд╕реИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдерд┐рдПрди рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрдХреЛ рдХреБрди рд╕рдВрд╕реНрдХрд░рдг "рдирдпрд╛рдБ" рд╣реЛ, рд░ рдкрд╛рд╡рд░рдкреЛрдЗрдиреНрдЯрдорд╛ рднрд┐рдиреНрдирддрд╛рдХреЛ рдХрд╛рд░рдг рд▓реЗрдЖрдЙрдЯ "рдЪрд▓рд┐рд░рд╣реЗрдХреЛ" рдерд┐рдпреЛред рд╣рд╛рдореНрд░рд╛ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд░ рдлрдиреНрдЯрд╣рд░реВред рд░ рдореИрд▓реЗ рдХреЗрд╣рд┐ рдирдпрд╛рдБ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред рдореИрд▓реЗ рдпреЛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рд░ рддреНрдпрд╕рдмреЗрд▓рд╛рджреЗрдЦрд┐ рдореИрд▓реЗ PowerPoint рдорд╛ рдлрд░реНрдХрд┐рдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреЗрдХреЛ рдЫреИрдиред

рд╣рд╛рдореА рдХреЗ рдЪрд╛рд╣рдиреНрдЫреМрдВ

рд▓рдЧрднрдЧ рдбреЗрдв рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди Word рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдмрдиреНрдж рдЧрд░реНрдпреЛ, рдЙрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд╛рдордирд╛ рдЧрд░реЗ: рдпрджреНрдпрдкрд┐ рд╢рдмреНрдж рд╕рд╛рдиреЛ рдХрд╛рдЧрдЬрд╛рдд рдЯрд╛рдЗрдк рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛ рдЫ, рднреЛрд▓реНрдпреБрдо рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛, рд╕рд╣рдХрд╛рд░реНрдп рд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╕реНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫрдиреНред рдПрдХреАрдХреГрдд рдбрд┐рдЬрд╛рдЗрдиред рд╣рд╛рдореНрд░реЛ рд░реЛрдЬрд╛рдЗрдорд╛ рдкрд░реНрдпреЛ Ascii рдбрдХреНрдЯрд░, рд░ рд╣рд╛рдореА рдпреЛ рдЫрдиреЛрдЯрдорд╛ рд░рдорд╛рдЙрди рдХрд╣рд┐рд▓реНрдпреИ рдмрдиреНрдж рдЧрд░реНрджреИрдиреМрдВ, рддрд░ рдпреЛ рдЫреБрдЯреНрдЯреИ рд▓реЗрдЦрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╖рдп рд╣реЛред рдПрдХреИ рд╕рдордпрдорд╛, рд╣рд╛рдореАрд▓реЗ "рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рд╕рдмреИ рдХреБрд░рд╛" рдХреЛ DevOps рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░рд┐рддрд╛ рд╕рд┐рдХреНрдпреМрдВ, рддреНрдпрд╕реИрд▓реЗ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдирдпрд╛рдБ рдкреНрд░рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рдЫрдиреМрдЯ рдПрдХрджрдо рд╕реНрдкрд╖реНрдЯ рдерд┐рдпреЛ:

  1. рдкреНрд░рд╕реНрддреБрддрд┐ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдорд╛ рд╕рд╛рджрд╛ рдкрд╛рда рдлрд╛рдЗрд▓ рд╣реБрдиреБрдкрд░реНрдЫред
  2. рд╣рд╛рдореНрд░рд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХрд╛ рдмрд╛рд░реЗрдорд╛ рд╣реБрдиреН, рддреНрдпрд╕реИрд▓реЗ рдорд╛рд░реНрдХрдЕрдкрд▓реЗ рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╕рд╣рд╛рд░рд╛ рдирдЧрд░реА рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдиреБрдкрд░реНрдЫред
    • рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рд╕рд╛рде рдХреЛрдб рдЯреБрдХреНрд░рд╛рд╣рд░реВ,
    • рддреАрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХрд╛рд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╕рд░рд▓ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд╣рд░реВ,
    • UML рд░реЗрдЦрд╛рдЪрд┐рддреНрд░, рдлреНрд▓реЛрдЪрд╛рд░реНрдЯ рд░ рдердкред
  3. рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдорд╕реНрдпреМрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рд╣реБрдиреБрдкрд░реНрдЫред
  4. рд╕рдорд╛рдкреНрдд рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рд╕рдВрдпреЛрдЬрди рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЧрд░рд┐рдиреБ рдкрд░реНрдЫред

рдЖрдЬ, рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рджреБрдИ рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН: рдкреНрдпрд╛рдХреЗрдЬ рдмреАрдорд░ LaTeX рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛ HTML/CSS рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ (RevalJS, рдЯрд┐рдкреНрдкрдгреА, deck.js рд░ рдзреЗрд░реИ рдЕрдиреНрдп)ред

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

рдпрджреНрдпрдкрд┐, HTML/CSS рдХреЛ рдирд┐рдкреБрдгрддрд╛ рдареНрдпрд╛рдХреНрдХреИ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реАрдк рд╣реЛрдЗрди: рдо, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рдорд╛ рдкреВрд░реНрдгрддрдпрд╛ рдирд┐рдкреБрдг рдЫреБред рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рдЪрд┐рдд AsciiDoctor рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрдБрдЫ: рдПрдХ рдХрдирд╡рд░реНрдЯрд░ asciidoctor-revealjs рддрдкрд╛рдИрдВрд▓рд╛рдИ AsciiDoctor рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ RevealJS рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд░ рдпреЛ рд╕рд┐рдХреНрди рд╕рдЬрд┐рд▓реЛ рд░ рд╕рдмреИрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рдЫ!

рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдХрд╕рд░реА рдХреЛрдб рдЧрд░реНрдиреЗ

AsciiDoctor рдорд╛ рдХреЛрдбрд┐рдЩ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рд╕рд╛рд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджрд┐рдиреБ рд╣реЛред рдпреА рд╕рдмреИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдмрд╛рдЯ рд╣реБрдиреН рдЬреБрди рдореИрд▓реЗ рдпрд╕ рд╡рд░реНрд╖ рдореЗрд░реЛ рд╕рдореНрдореЗрд▓рди рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдирд╛рдПрдХреЛ рдЫреБред

рд╢реАрд░реНрд╖рдХ рд╕рд╣рд┐рддрдХреЛ рд╕реНрд▓рд╛рдЗрдб рд░ рдПрдХрдкрдЫрд┐ рдЕрд░реНрдХреЛ рдЦреЛрд▓рд┐рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рд╕реВрдЪреА:

== ╨Ч╨░╤З╨╡╨╝ ╨╜╨░╨╝ Streams API?

[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* ╨Я╨╛╨┤ ╨║╨░╨┐╨╛╤В╨╛╨╝:
** ╨Р╨▓╤В╨╛╨╝╨░╤В╨╕╤З╨╡╤Б╨║╨╕╨╣ offset commit
** ╨а╨╡╨▒╨░╨╗╨░╨╜╤Б╨╕╤А╨╛╨▓╨║╨░
** ╨Т╨╜╤Г╤В╤А╨╡╨╜╨╜╨╡╨╡ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╨╡ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╛╨▓
** ╨Ы╨╡╨│╨║╨╛╨╡ ╨╝╨░╤Б╤И╤В╨░╨▒╨╕╤А╨╛╨▓╨░╨╜╨╕╨╡

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рд╕рд╛рде рд╣реЗрдбрд░ рд░ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ:

== Kafka Streams API: ╨╛╨▒╤Й╨░╤П ╤Б╤В╤А╤Г╨║╤В╤Г╤А╨░ KStreams-╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╤П

[source,java]
----
StreamsConfig config = ...;
//╨Ч╨┤╨╡╤Б╤М ╤Г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╨▓╤Б╤П╨║╨╕╨╡ ╨╛╨┐╤Ж╨╕╨╕

Topology topology = new StreamsBuilder()
//╨Ч╨┤╨╡╤Б╤М ╤Б╤В╤А╨╛╨╕╨╝ ╤В╨╛╨┐╨╛╨╗╨╛╨│╨╕╤О
....build();
----

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рд╡рд╛рд░реНрддрд╛рдХреЛ рддрдпрд╛рд░реАрдорд╛, рдХреЛрдб рдбреЗрдореЛрд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рд╕рдВрд╢реЛрдзрди рд░ рд╕реБрдзрд╛рд░рд╣рд░реВрдмрд╛рдЯ рдЧреБрдЬреНрд░рд┐рдиреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рдЪрд┐рдиреНрддрд╛ рдирдЧрд░рд┐рдХрди рдбреЗрдореЛ рдЕрдк рдЯреБ рдбреЗрдЯ рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджреИ, "рдХрдЪреНрдЪрд╛ рдХреЛрдб" рд▓рд╛рдИ рд╕рд┐рдзрд╛ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЕрдореВрд▓реНрдп рдЫред

рд╢реАрд░реНрд╖рдХ, рдЪрд┐рддреНрд░рдг рд░ рдкрд╛рда (рд╕реНрд▓рд╛рдЗрдбрдорд╛ рд▓реЗрдЖрдЙрдЯ рдХрдХреНрд╖рд╣рд░реВрдорд╛ рдЧрд░рд┐рдиреНрдЫ AsciiDoctor рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ):

== Kafka Streams in Action

[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
тАЬKafka Streams in ActionтАЭ, November 2018
* ╨Я╤А╨╕╨╝╨╡╤А╤Л ╨║╨╛╨┤╨░ ╨┤╨╗╤П Kafka 1.0
|===

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╢реАрд░реНрд╖рдХ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рд░ рддрдкрд╛рдЗрдБрдХреЛ рдмрд┐рдиреНрджреБрд▓рд╛рдИ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреВрд░реНрдг-рд╕реНрдХреНрд░рд┐рди рдЫрд╡рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ:

[%notitle]
== ╨Ц╨╕╤В╤М ╨▓ ╨╗╨╡╨│╨░╤Б╨╕ ╨╜╨╡╨╗╨╡╨│╨║╨╛

image::swampman.jpg[canvas, size=cover]

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдкреНрд░рд╛рдп: рдПрдЙрдЯрд╛ рд╡рд┐рдЪрд╛рд░рд▓рд╛рдИ "рддреАрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рд╡рд░реНрдЧрд╣рд░реВ" рдХреЛ рд░реВрдкрдорд╛ рд╕рд╛рдзрд╛рд░рдг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, AsciiDoctor рдкреНрд░рдгрд╛рд▓реА рд╕рдВрдЧ рдПрдХреАрдХреГрдд рдЫ Graphviz тАФ рдПрдЙрдЯрд╛ рднрд╛рд╖рд╛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЧреНрд░рд╛рдл рдЖрд░реЗрдЦрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВ рдмреАрдЪрдХреЛ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдгрдХреЛ рдЖрдзрд╛рд░рдорд╛ред Graphviz рд▓реЗ рд╕рд┐рдХреНрдиреЗ рд╡рдХреНрд░ рд▓рд┐рдиреНрдЫ, рддрд░ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдпреЛ рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫ! рдпреЛ рдХреЗ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

== ╨Я╨╕╤И╨╡╨╝ тАЬBet Totalling AppтАЭ

╨Ъ╨░╨║╨╛╨▓╨░ ╤Б╤Г╨╝╨╝╨░ ╨▓╤Л╨┐╨╗╨░╤В ╨┐╨╛ ╤Б╨┤╨╡╨╗╨░╨╜╨╜╤Л╨╝ ╤Б╤В╨░╨▓╨║╨░╨╝, ╨╡╤Б╨╗╨╕ ╤Б╤Л╨│╤А╨░╨╡╤В ╨╕╤Б╤Е╨╛╨┤?

[graphviz, "counting-topology.png"]
-----
digraph G {
graph [ dpi = 150 ];
rankdir="LR";
node [fontsize=18; shape="circle"; fixedsize="true"; width="1.1"];
Store [shape="cylinder"; label="Local Store"; fixedsize="true"; width="1.5"]
Source -> MapVal -> Sum -> Sink
Sum -> Store [dir=both; label=" n "]
{rank = same; Store; Sum;}
}
-----

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдпрджрд┐ рдпреЛ рдЪрд┐рддреНрд░рдорд╛ рдХреНрдпрд╛рдкреНрд╕рди рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреАрд░рдХреЛ рджрд┐рд╢рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЗрддреНрдпрд╛рджрд┐, рдпреЛ рд╕рд┐рдзреИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдХреЛрдбрдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЪрд┐рддреНрд░рд▓рд╛рдИ рдХрддреИ рдкреБрди: рдХреЛрд░реЗрд░ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдкреБрди: рдШреБрд╕рд╛рдЙрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред рдпрд╕рд▓реЗ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЧрддрд┐рд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдврд╛рдЙрдБрдЫред

рдердк рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг:

== ╨Э╨╡╨▓╨╛╤Б╨┐╤А╨╛╨╕╨╖╨▓╨╛╨┤╨╕╨╝╨░╤П ╤Б╨▒╨╛╤А╨║╨░
[graphviz, "unstable-update.png"]
-----
digraph G {
  rankdir="LR";
  graph [ dpi = 150 ];
  u -> r0;
  u[shape=plaintext; label="linter updaten+ 13 warnings"]
  r0[shape=point, width = 0]
  r1 -> r0[ arrowhead = none, label="master branch" ];
  r0-> r2 [];   b1 -> b4;  r1->b1
  r1[label="150nwarnings"]
  b1[label="┬▒ 0nwarnings"]
  b4[label="┬▒ 0nwarnings"]
  b4->r2
  r2[label="163nwarnings", color="red", xlabel=<<font color="red">merge blocked</font>>]
  {rank = same; u; r0; b4;}
}
-----

рдкрд░рд┐рдгрд╛рдо

рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрддрд┐, рд╡рд╛ рдХрд┐рди рдо рдЕрдм PowerPoint рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди

рдЦреИрд░, рдпреЛ рдкреГрд╖реНрдардорд╛ рдЧреНрд░рд╛рдлрднрд┐рдЬ рд░ рдбрд┐рдмрдЧ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ Graphviz рдЕрдирд▓рд╛рдЗрди.

рдЕрдиреНрддрдорд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдлреНрд▓реЛрдЪрд╛рд░реНрдЯ, рд╡рд░реНрдЧ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╡рд╛ рдЕрдиреНрдп рдорд╛рдирдХреАрдХреГрдд рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ AsciiDoctor рд╕рдБрдЧ рдПрдХреАрдХреГрдд рдЕрд░реНрдХреЛ рдкреНрд░рдгрд╛рд▓реА рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрди рд╕рдХреНрдЫ, PlantUMLред рдореЗрд░реЛ рд╕рд╣рдХрд░реНрдореА рдирд┐рдХреЛрд▓рд╛рдИ рдкреЛрдЯрд╛рд╢реНрдирд┐рдХреЛрднрд▓реЗ PlantUML рдХреЛ рд╡реНрдпрд╛рдкрдХ рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓реЗрдЦреЗред рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ.

рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдХреЛрдбрдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрдирд╛рд▓реЗ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдорд╛ рд╕рдВрдпреБрдХреНрдд рдХрд╛рд░реНрдпрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫ, рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рд╕рд╛рдордЧреНрд░реА рд░ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрд▓рдЧ рдЧрд░реНрдиред RevealJS рдорд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ (рдлрдиреНрдЯрд╣рд░реВ, рдкреГрд╖реНрдарднреВрдорд┐рд╣рд░реВ, рдЗрдиреНрдбреЗрдиреНрдЯрд╣рд░реВ) рдХреЛ рдбрд┐рдЬрд╛рдЗрди CSS рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред CSS рдХреЛ рд╕рд╛рде рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реАрдк рд╕рдмреИ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рдпреЛ gif - рддрд░ рдпреЛ рдбрд░рд▓рд╛рдЧреНрджреЛ рдЫреИрди рдЬрдм рддреНрдпрд╣рд╛рдБ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ CSS рдорд╛ рдо рднрдиреНрджрд╛ рдзреЗрд░реИ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░ рдЫрд┐рдЯреЛ рдХрд╛рдо рдЧрд░реНрдЫрдиреНред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдирдЬрд┐рдХрдХреЛ рд╕рдордпрд╕реАрдорд╛рдХреЛ рд╕рд╛рде, рд╣рд╛рдореА Git рдорд╛рд░реНрдлрдд рд╡рд┐рднрд┐рдиреНрди рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд░ рдореЗрд▓ рдорд╛рд░реНрдлрдд .pptx рдлрд╛рдЗрд▓рд╣рд░реВ рдкрдард╛рдЙрдБрджрд╛ рдЕрд╕рдореНрднрд╡ рд╣реБрдиреЗ рд╕рд╣рдХрд╛рд░реНрдпрдХреЛ рдЧрддрд┐ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрд╕рдБрдЧ HTML рдкреГрд╖реНрда рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИ

рд╕рд╛рджрд╛ рдкрд╛рда рд╕реНрд░реЛрддрд╣рд░реВ рдЙрддреНрдХреГрд╖реНрдЯ рдЫрдиреН, рддрд░ рддрдкрд╛рдЗрдБ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдорд╛ рдХрд╕рд░реА рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

AsciiDoctor Ruby рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ, рд░ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрди рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рдкрд╣рд┐рд▓реЗ, рддрдкрд╛рдИрдВ рд░реБрдмреА рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ asciidoctor рд╕реАрдзрд╛ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬреБрди рд╕рдореНрднрд╡рддрдГ рд░реБрдмреА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдирдЬрд┐рдХрдХреЛ рдХреБрд░рд╛ рд╣реЛред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рд░реБрдмреА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЧрдбрдмрдб рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдбрдХрд░ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ asciidoctor/docker-asciidoctor, рдЬрд╕рдорд╛, рдЬрдм рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рддрдкрд╛рдИрдВрд▓реЗ VOLUME рдорд╛рд░реНрдлрдд рдлреЛрд▓реНрдбрд░рд▓рд╛рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрддрд╣рд░реВрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рджрд┐рдЗрдПрдХреЛ рд╕реНрдерд╛рдирдорд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдореИрд▓реЗ рд░реЛрдЬреЗрдХреЛ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╣реА рд╣рджрд╕рдореНрдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд▓рд╛рдЧреНрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рдЬрд╛рднрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдпрд╕рд▓рд╛рдИ рд░реБрдмреА рд╡рд╛ рдбрдХрд░рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рддрд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ Maven рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдмрд┐рдиреНрджреБ рдпреЛ рд╣реЛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреЗрд░реБрдмреА - рд░реБрдмреА рднрд╛рд╖рд╛рдХреЛ рдЬрд╛рднрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрддрд┐ рд░рд╛рдореНрд░реЛ рдЫ рдХрд┐ рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЬрд╛рднрд╛ рдореЗрд╕рд┐рдирдорд╛ рд░реБрдмреАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд▓рдЧрднрдЧ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ AsciiDoctor рдЪрд▓рд╛рдЙрдиреБ JRuby рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред

рдЙрдкрд▓рдмреНрдзрддрд╛ asciidoctor-maven-plugin рддрдкрд╛рдИрдВрд▓рд╛рдИ AsciiDoctor рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди Java рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЕрдВрд╢ рд╣реЛ (рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореА рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ)ред рдПрдХреИ рд╕рдордпрдорд╛, AsciiDoctor рд░ JRuby Maven рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдиреНрдЫ, рд░ AsciiDoctor JRuby рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЪрд▓реНрдЫ: рдореЗрд╕рд┐рдирдорд╛ рдХреЗрд╣рд┐ рдкрдирд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди! (рдкреНрдпрд╛рдХреЗрдЬ рдмрд╛рд╣реЗрдХ graphviz, рдЬреБрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдпрджрд┐ рддрдкрд╛рдЗрдБ GraphViz рд╡рд╛ PlantUML рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред) рдХреЗрд╡рд▓ рдЖрдлреНрдиреЛ .adoc рдлрд╛рдЗрд▓рд╣рд░реВ рдлреЛрд▓реНрдбрд░рдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред src/main/asciidoc/ред рдпрд╣рд╛рдБ рдкреЛрдордирд┐рдХрдХреЛ рдЙрджрд╛рд╣рд░рдгрд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рд╕рд╛рде рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджреИред

рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрд▓рд╛рдИ PDF рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдпрджреНрдпрдкрд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ HTML рд╕рдВрд╕реНрдХрд░рдг рдПрдХрджрдо рдЖрддреНрдо-рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рдпреЛ рдЕрдЭреИ рдкрдирд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ PDF рд╕рдВрд╕реНрдХрд░рдг рд╣реБрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫред рдкрд╣рд┐рд▓реЛ, рдпреЛ рд╣реБрдиреНрдЫ рдХрд┐ рдХреЗрд╣рд┐ рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдорд╛ рдЬрд╕рд▓реЗ рд╕реНрдкрд┐рдХрд░рд▓рд╛рдИ рдЖрдлреНрдиреИ рд▓реНрдпрд╛рдкрдЯрдк рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрди, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ HTML рдорд╛ рдкрдирд┐ рдЫрдиреН рднрдиреНрдиреЗ рдЖрд╢рд╛ рдирдЧрд░реА "рдХрдбрд╛ рд░реВрдкрдорд╛ pptx рд╡рд╛ pdf рдврд╛рдБрдЪрд╛рдорд╛" рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫред рджреЛрд╕реНрд░реЛ, рд╕рдореНрдореЗрд▓рди рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдорд╛ рдлрд╛рдЗрд▓рдХреЛ рдкреНрд░рдХрд╛рд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреАрдбреАрдПрдл рдврд╛рдБрдЪрд╛рдорд╛ рд░рд┐рдкреЛрд░реНрдЯрдорд╛ рджреЗрдЦрд╛рдЗрдПрдХрд╛ рд░реВрдкрдорд╛ рдЖрдпреЛрдЬрдХрд╣рд░реВрд▓рд╛рдИ рддрдкрд╛рдИрдВрдХреЛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рд╕рдореНрдкрд╛рджрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкрдард╛рдЙрдиреБ рд░рд╛рдореНрд░реЛ рд╣реЛред

рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, Node.js рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдпреЛ рдХрд╛рд░реНрдп рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫред рдбреЗрдХрдЯреЗрдкрдЖрдзрд╛рд░рдорд╛ рдирд┐рд░реНрдорд┐рдд рдХрдардкреБрддрд▓реА - рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд░ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рдгрд╛рд▓реАред рддрдкрд╛рдИрд▓реЗ RevealJS рдкреНрд░рд╕реНрддреБрддрд┐рд▓рд╛рдИ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде PDF рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

node decktape.js -s 3200x1800 --slides 1-500 
  reveal "file:///index.html?fragments=true" slides.pdf  

рдбреЗрдХрдЯреЗрдк рд╕реБрд░реБ рдЧрд░реНрджрд╛ рджреБрдИ рдЪрд╛рд▓рд╣рд░реВ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд░ рддреНрд░реБрдЯрд┐ рдорд╛рд░реНрдлрдд рдЖрдЙрдиреБрдкрд░реНтАНрдпреЛ:

  • рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛рд░реНрдлрдд рд╕рдВрдХрд▓реНрдк -s рджреБрдИ рдЧреБрдгрд╛ рдорд╛рд░реНрдЬрд┐рди рд╕рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реБрдиреБрдкрд░реНрдЫ, рдЕрдиреНрдпрдерд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдкрд░рд┐рдгрд╛рдо рд╕рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реБрди рд╕рдХреНрдЫ

  • рдкреНрд░рд╕реНрддреБрддрд┐рдХреЛ HTML рд╕рдВрд╕реНрдХрд░рдгрдХреЛ URL рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ ?fragments=true, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рд╕реНрд▓рд╛рдЗрдбрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдордзреНрдпрд╡рд░реНрддреА рдЕрд╡рд╕реНрдерд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯреИ PDF рдкреГрд╖реНрда рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд╛рдБрдЪ рдмреБрд▓реЗрдЯ рдкреЛрдЗрдиреНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рдБрдЪ рдкреГрд╖реНрдард╣рд░реВ рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдПрдХ рдкрдЫрд┐ рдЕрд░реНрдХреЛ рджреЗрдЦрд╛рдЗрдиреНрдЫ)ред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рд╕рдордпрдорд╛ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдпрд╕реНрддреЛ PDF рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

рд╡реЗрдмрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рд░ рдкреНрд░рдХрд╛рд╢рди

рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрджрд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рд╣реБрдБрджрд╛ рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реБрдиреНрдЫ, рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдкреЛрд╕реНрдЯ рдЧрд░реНрджрд╛ рдЕрдЭ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реБрдиреНрдЫред рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рдХреБрдиреИ рдкрдирд┐ рдореЗрд╕рд┐рди рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░рдмрд╛рдЯ рджрд░реНрд╢рдХрд╣рд░реВрдХреЛ рдЕрдЧрд╛рдбрд┐ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ "рдкреНрд▓реЗ" рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдХрд╛рдордорд╛ GitHub рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╣реБрдирд╛рд▓реЗ, CI рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЫрдиреЛрдЯ рд╣реЛ TravisCI, рд░ рддрдпрд╛рд░ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреА - github.ioред github.io рдкрдЫрд┐рдХреЛ рд╡рд┐рдЪрд╛рд░ рднрдиреЗрдХреЛ рд╢рд╛рдЦрд╛рдорд╛ рдкреЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдХреБрдиреИ рдкрдирд┐ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╣реЛ gh-pages GitHub рдорд╛ рддрдкрд╛рдЗрдБрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ, рдорд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫ <╨▓╨░╤И╨╡ ╨╕╨╝╤П>.gihub.io/<╨▓╨░╤И ╨┐╤А╨╛╨╡╨║╤В>.

TravisCI рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, Maven рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреГрд╖реНрдардХреЛ HTML рд╕рдВрд╕реНрдХрд░рдг рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреЗ, рдбреЗрдХрдЯреЗрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ PDF рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ, рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрд▓рд╛рдИ рдереНрд░реЗрдбрдорд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреЗ рд╕рд╣рд┐рддред gh-pages github.io рдорд╛ рдкреНрд░рдХрд╛рд╢рдирдХреЛ рд▓рд╛рдЧрд┐, рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рддреНрдпрд╕реИрд▓реЗ.

TravisCI рдЫреЗрдЙрдорд╛ рдпрд╕реНрддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ

  • GH_REF тАФ github.com/inponomarev/csa-hb рдЬрд╕реНрддреИ рдорд╛рди
  • GH_TOKEN - GitHub рдкрд╣реБрдБрдЪ рдЯреЛрдХрдиред рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ -> рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╣реБрдБрдЪ рдЯреЛрдХрдирд╣рд░реВрдорд╛ GitHub рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдгреНрдбрд╛рд░рдорд╛ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдЯреЛрдХрдирдХреЛ рд▓рд╛рдЧрд┐ "рдкрдмреНрд▓рд┐рдХ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ" рдорд╛рддреНрд░ рдкрд╣реБрдБрдЪ рд╕реНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред
  • GH_USER_EMAIL / GH_USER_NAME тАФ рдирд╛рдо/рдЗрдореЗрд▓ рдЬреЛрдбреА рдЬрд╕рдХреЛ рддрд░реНрдлрдмрд╛рдЯ рдереНрд░реЗрдбрдорд╛ рдкреБрд╢ рдЧрд░рд┐рдиреЗрдЫ gh-pages.

рдпрд╕рд░реА, GitHub рдорд╛ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдХреЛрдбрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рд▓реЗ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ HTML рд░ PDF рдврд╛рдБрдЪрд╛рд╣рд░реВрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░реА github.io рдорд╛ рдкреБрди: рдЕрдкрд▓реЛрдб рдЧрд░рд┐рдиреНрдЫред (рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддрдкрд╛рдИрд▓реЗ github.io рдорд╛ рддреА рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрдкрд░реНрдЫ рдЬреБрди рддрдкрд╛рдИрд▓реЗ рдЕрдиреНрддрддрдГ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЧрд░реНрди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫред)

рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ

рдЕрдиреНрддрдорд╛, рдпрд╣рд╛рдБ рдЯреНрд░рд╛рднрд┐рд╕-рд╕реАрдЖрдИрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╛рднреЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд░ CI рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдЫрдиреН, рдЬреБрди рдХреНрд▓реЛрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

рдЕрд▓рд╡рд┐рджрд╛ PowerPoint! рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдкреНрд░рд╕реНрддреБрддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрджреИрди рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрджреИрди :)

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди