рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдореИрд▓реЗ рдореЗрд░реЛ IT рдХреНрдпрд╛рд░рд┐рдпрд░рдорд╛ рд╕рд╣рдХрд░реНрдореАрд╣рд░реВ, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ, рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреЛрд▓реНрдиреЗрд╣рд░реВрд▓рд╛рдИ рджрд░реНрдЬрдиреМрдВ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВ рджрд┐рдПрдХреЛ рдЫреБред рдзреЗрд░реИ рд╡рд░реНрд╖рджреЗрдЦрд┐, PowerPoint рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рд╕реНрд▓рд╛рдЗрдб рдЙрддреНрдкрд╛рджрди рдЙрдкрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░ рднрд░рдкрд░реНрджреЛ рдЫрдиреЛрдЯ рднрдПрдХреЛ рдЫред рддрд░ рдпреЛ рд╡рд░реНрд╖ рд╕реНрдерд┐рддрд┐ рдЧреБрдгрд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫред рдлреЗрдмреНрд░реБрдЕрд░реА рджреЗрдЦрд┐ рдореЗ рд╕рдореНрдо, рдореИрд▓реЗ рдкрд╛рдБрдЪрд╡рдЯрд╛ рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдорд╛ рдмреЛрд▓реНрдиреЗ рдореМрдХрд╛ рдкрд╛рдПрдБ, рд░ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЫреЛрдЯреЛ рд╕рдордпрдорд╛ рддрд░ рдЙрдЪреНрдЪ рдЧреБрдгрд╕реНрддрд░рдХреЛ рд╕рд╛рде рддрдпрд╛рд░ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред рд╕реНрд▓рд╛рдЗрдбрдХреЛ рднрд┐рдЬреБрдЕрд▓ рдбрд┐рдЬрд╛рдЗрдирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рдордХреЛ рддреНрдпреЛ рднрд╛рдЧ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓рд╛рдИ рд╕реБрдореНрдкрдиреЗ рдмрд╛рд░реЗрдорд╛ рдкреНрд░рд╢реНрди рдЙрдареНрдпреЛред рдореИрд▓реЗ рдПрдХ рдкрдЯрдХ рдбрд┐рдЬрд╛рдЗрдирд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рдореЗрд▓рдмрд╛рдЯ .pptx рдлрд╛рдЗрд▓рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ, рддрд░ рдХрд╛рдо рдЕрд░рд╛рдЬрдХрддрд╛рдорд╛ рдкрд░рд┐рдгрдд рднрдпреЛ: рдХрд╕реИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдерд┐рдПрди рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрдХреЛ рдХреБрди рд╕рдВрд╕реНрдХрд░рдг "рдирдпрд╛рдБ" рд╣реЛ, рд░ рдкрд╛рд╡рд░рдкреЛрдЗрдиреНрдЯрдорд╛ рднрд┐рдиреНрдирддрд╛рдХреЛ рдХрд╛рд░рдг рд▓реЗрдЖрдЙрдЯ "рдЪрд▓рд┐рд░рд╣реЗрдХреЛ" рдерд┐рдпреЛред рд╣рд╛рдореНрд░рд╛ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд░ рдлрдиреНрдЯрд╣рд░реВред рд░ рдореИрд▓реЗ рдХреЗрд╣рд┐ рдирдпрд╛рдБ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред рдореИрд▓реЗ рдпреЛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рд░ рддреНрдпрд╕рдмреЗрд▓рд╛рджреЗрдЦрд┐ рдореИрд▓реЗ PowerPoint рдорд╛ рдлрд░реНрдХрд┐рдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреЗрдХреЛ рдЫреИрдиред
рд╣рд╛рдореА рдХреЗ рдЪрд╛рд╣рдиреНрдЫреМрдВ
рд▓рдЧрднрдЧ рдбреЗрдв рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди Word рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдмрдиреНрдж рдЧрд░реНрдпреЛ, рдЙрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд╛рдордирд╛ рдЧрд░реЗ: рдпрджреНрдпрдкрд┐ рд╢рдмреНрдж рд╕рд╛рдиреЛ рдХрд╛рдЧрдЬрд╛рдд рдЯрд╛рдЗрдк рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛ рдЫ, рднреЛрд▓реНрдпреБрдо рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛, рд╕рд╣рдХрд╛рд░реНрдп рд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╕реНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫрдиреНред рдПрдХреАрдХреГрдд рдбрд┐рдЬрд╛рдЗрдиред рд╣рд╛рдореНрд░реЛ рд░реЛрдЬрд╛рдЗрдорд╛ рдкрд░реНрдпреЛ
- рдкреНрд░рд╕реНрддреБрддрд┐ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдорд╛ рд╕рд╛рджрд╛ рдкрд╛рда рдлрд╛рдЗрд▓ рд╣реБрдиреБрдкрд░реНрдЫред
- рд╣рд╛рдореНрд░рд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХрд╛ рдмрд╛рд░реЗрдорд╛ рд╣реБрдиреН, рддреНрдпрд╕реИрд▓реЗ рдорд╛рд░реНрдХрдЕрдкрд▓реЗ рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╕рд╣рд╛рд░рд╛ рдирдЧрд░реА рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдиреБрдкрд░реНрдЫред
- рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рд╕рд╛рде рдХреЛрдб рдЯреБрдХреНрд░рд╛рд╣рд░реВ,
- рддреАрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХрд╛рд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╕рд░рд▓ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд╣рд░реВ,
- UML рд░реЗрдЦрд╛рдЪрд┐рддреНрд░, рдлреНрд▓реЛрдЪрд╛рд░реНрдЯ рд░ рдердкред
- рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдорд╕реНрдпреМрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рд╣реБрдиреБрдкрд░реНрдЫред
- рд╕рдорд╛рдкреНрдд рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рд╕рдВрдпреЛрдЬрди рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЧрд░рд┐рдиреБ рдкрд░реНрдЫред
рдЖрдЬ, рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рджреБрдИ рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН: рдкреНрдпрд╛рдХреЗрдЬ
рдпрджреНрдпрдкрд┐ рдореЗрд░реЛ рдЖрддреНрдорд╛ LaTeX рдорд╛ рдирд┐рд╣рд┐рдд рдЫ, рдореЗрд░реЛ рджрд┐рдорд╛рдЧрд▓реЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреЛ рдХрд┐ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЫрдиреЛрдЯ рдЬреБрди рдо рдПрдХреНрд▓реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЫреИрди рднрдиреНрдиреЗ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЫреЗрдЙрдорд╛ рдорд╛рдирд┐рд╕рд╣рд░реВрдХреЛ рдлрд░рд╛рдХрд┐рд▓реЛ рд╕рд░реНрдХрд▓рдорд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рд╕рдмреИрд▓рд╛рдИ LaTeX рдерд╛рд╣рд╛ рдЫреИрди, рд░ рдпрджрд┐ рддрдкрд╛рдИрдВрдХреЛ рджреИрдирд┐рдХ рдЕрднреНрдпрд╛рд╕ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд▓реЗрдЦрд╣рд░реВ рд▓реЗрдЦреНрдиреЗрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫреИрди рднрдиреЗ, рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрдВрд╕рдБрдЧ рдпрд╕ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╡рд┐рд╢рд╛рд▓, рдЬрдЯрд┐рд▓ рд╕рдВрд╕рд╛рд░рдорд╛ рдЖрдлреВрд▓рд╛рдИ рдбреБрдмрд╛рдЙрдиреЗ рд╕рдордп рд╣реБрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫреИрдиред
рдпрджреНрдпрдкрд┐, HTML/CSS рдХреЛ рдирд┐рдкреБрдгрддрд╛ рдареНрдпрд╛рдХреНрдХреИ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реАрдк рд╣реЛрдЗрди: рдо, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рдорд╛ рдкреВрд░реНрдгрддрдпрд╛ рдирд┐рдкреБрдг рдЫреБред рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рдЪрд┐рдд AsciiDoctor рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрдБрдЫ: рдПрдХ рдХрдирд╡рд░реНрдЯрд░
рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдХрд╕рд░реА рдХреЛрдб рдЧрд░реНрдиреЗ
AsciiDoctor рдорд╛ рдХреЛрдбрд┐рдЩ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рд╕рд╛рд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджрд┐рдиреБ рд╣реЛред рдпреА рд╕рдмреИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдмрд╛рдЯ рд╣реБрдиреН рдЬреБрди рдореИрд▓реЗ рдпрд╕ рд╡рд░реНрд╖ рдореЗрд░реЛ рд╕рдореНрдореЗрд▓рди рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдирд╛рдПрдХреЛ рдЫреБред
рд╢реАрд░реНрд╖рдХ рд╕рд╣рд┐рддрдХреЛ рд╕реНрд▓рд╛рдЗрдб рд░ рдПрдХрдкрдЫрд┐ рдЕрд░реНрдХреЛ рдЦреЛрд▓рд┐рдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рд╕реВрдЪреА:
== ╨Ч╨░╤З╨╡╨╝ ╨╜╨░╨╝ Streams API?
[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* ╨Я╨╛╨┤ ╨║╨░╨┐╨╛╤В╨╛╨╝:
** ╨Р╨▓╤В╨╛╨╝╨░╤В╨╕╤З╨╡╤Б╨║╨╕╨╣ offset commit
** ╨а╨╡╨▒╨░╨╗╨░╨╜╤Б╨╕╤А╨╛╨▓╨║╨░
** ╨Т╨╜╤Г╤В╤А╨╡╨╜╨╜╨╡╨╡ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╨╡ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╛╨▓
** ╨Ы╨╡╨│╨║╨╛╨╡ ╨╝╨░╤Б╤И╤В╨░╨▒╨╕╤А╨╛╨▓╨░╨╜╨╕╨╡
рдкрд░рд┐рдгрд╛рдо
рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рд╕рд╛рде рд╣реЗрдбрд░ рд░ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ:
== Kafka Streams API: ╨╛╨▒╤Й╨░╤П ╤Б╤В╤А╤Г╨║╤В╤Г╤А╨░ KStreams-╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╤П
[source,java]
----
StreamsConfig config = ...;
//╨Ч╨┤╨╡╤Б╤М ╤Г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╨▓╤Б╤П╨║╨╕╨╡ ╨╛╨┐╤Ж╨╕╨╕
Topology topology = new StreamsBuilder()
//╨Ч╨┤╨╡╤Б╤М ╤Б╤В╤А╨╛╨╕╨╝ ╤В╨╛╨┐╨╛╨╗╨╛╨│╨╕╤О
....build();
----
рдкрд░рд┐рдгрд╛рдо
рд╡рд╛рд░реНрддрд╛рдХреЛ рддрдпрд╛рд░реАрдорд╛, рдХреЛрдб рдбреЗрдореЛрд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рд╕рдВрд╢реЛрдзрди рд░ рд╕реБрдзрд╛рд░рд╣рд░реВрдмрд╛рдЯ рдЧреБрдЬреНрд░рд┐рдиреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩрдХреЛ рдЪрд┐рдиреНрддрд╛ рдирдЧрд░рд┐рдХрди рдбреЗрдореЛ рдЕрдк рдЯреБ рдбреЗрдЯ рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджреИ, "рдХрдЪреНрдЪрд╛ рдХреЛрдб" рд▓рд╛рдИ рд╕рд┐рдзрд╛ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЕрдореВрд▓реНрдп рдЫред
рд╢реАрд░реНрд╖рдХ, рдЪрд┐рддреНрд░рдг рд░ рдкрд╛рда (рд╕реНрд▓рд╛рдЗрдбрдорд╛ рд▓реЗрдЖрдЙрдЯ рдХрдХреНрд╖рд╣рд░реВрдорд╛ рдЧрд░рд┐рдиреНрдЫ
== Kafka Streams in Action
[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
тАЬKafka Streams in ActionтАЭ, November 2018
* ╨Я╤А╨╕╨╝╨╡╤А╤Л ╨║╨╛╨┤╨░ ╨┤╨╗╤П Kafka 1.0
|===
рдкрд░рд┐рдгрд╛рдо
рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╢реАрд░реНрд╖рдХ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рд░ рддрдкрд╛рдЗрдБрдХреЛ рдмрд┐рдиреНрджреБрд▓рд╛рдИ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреВрд░реНрдг-рд╕реНрдХреНрд░рд┐рди рдЫрд╡рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ:
[%notitle]
== ╨Ц╨╕╤В╤М ╨▓ ╨╗╨╡╨│╨░╤Б╨╕ ╨╜╨╡╨╗╨╡╨│╨║╨╛
image::swampman.jpg[canvas, size=cover]
рдкрд░рд┐рдгрд╛рдо
рдкреНрд░рд╛рдп: рдПрдЙрдЯрд╛ рд╡рд┐рдЪрд╛рд░рд▓рд╛рдИ "рддреАрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рд╡рд░реНрдЧрд╣рд░реВ" рдХреЛ рд░реВрдкрдорд╛ рд╕рд╛рдзрд╛рд░рдг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, AsciiDoctor рдкреНрд░рдгрд╛рд▓реА рд╕рдВрдЧ рдПрдХреАрдХреГрдд рдЫ
== ╨Я╨╕╤И╨╡╨╝ тАЬ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;}
}
-----
рдкрд░рд┐рдгрд╛рдо
рдпрджрд┐ рдпреЛ рдЪрд┐рддреНрд░рдорд╛ рдХреНрдпрд╛рдкреНрд╕рди рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреАрд░рдХреЛ рджрд┐рд╢рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЗрддреНрдпрд╛рджрд┐, рдпреЛ рд╕рд┐рдзреИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдХреЛрдбрдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЪрд┐рддреНрд░рд▓рд╛рдИ рдХрддреИ рдкреБрди: рдХреЛрд░реЗрд░ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдкреБрди: рдШреБрд╕рд╛рдЙрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред рдпрд╕рд▓реЗ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЧрддрд┐рд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдврд╛рдЙрдБрдЫред
рдердк рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг:
== ╨Э╨╡╨▓╨╛╤Б╨┐╤А╨╛╨╕╨╖╨▓╨╛╨┤╨╕╨╝╨░╤П ╤Б╨▒╨╛╤А╨║╨░
[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;}
}
-----
рдкрд░рд┐рдгрд╛рдо
рдЦреИрд░, рдпреЛ рдкреГрд╖реНрдардорд╛ рдЧреНрд░рд╛рдлрднрд┐рдЬ рд░ рдбрд┐рдмрдЧ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ
рдЕрдиреНрддрдорд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕реНрд▓рд╛рдЗрдбрдорд╛ рдлреНрд▓реЛрдЪрд╛рд░реНрдЯ, рд╡рд░реНрдЧ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╡рд╛ рдЕрдиреНрдп рдорд╛рдирдХреАрдХреГрдд рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ AsciiDoctor рд╕рдБрдЧ рдПрдХреАрдХреГрдд рдЕрд░реНрдХреЛ рдкреНрд░рдгрд╛рд▓реА рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрди рд╕рдХреНрдЫ,
рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдХреЛрдбрдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрдирд╛рд▓реЗ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдорд╛ рд╕рдВрдпреБрдХреНрдд рдХрд╛рд░реНрдпрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫ, рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рд╕рд╛рдордЧреНрд░реА рд░ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрд▓рдЧ рдЧрд░реНрдиред RevealJS рдорд╛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ (рдлрдиреНрдЯрд╣рд░реВ, рдкреГрд╖реНрдарднреВрдорд┐рд╣рд░реВ, рдЗрдиреНрдбреЗрдиреНрдЯрд╣рд░реВ) рдХреЛ рдбрд┐рдЬрд╛рдЗрди CSS рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред CSS рдХреЛ рд╕рд╛рде рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реАрдк рд╕рдмреИ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдЧрд░рд┐рдПрдХреЛ рдЫ
рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрд╕рдБрдЧ HTML рдкреГрд╖реНрда рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИ
рд╕рд╛рджрд╛ рдкрд╛рда рд╕реНрд░реЛрддрд╣рд░реВ рдЙрддреНрдХреГрд╖реНрдЯ рдЫрдиреН, рддрд░ рддрдкрд╛рдЗрдБ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдорд╛ рдХрд╕рд░реА рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?
AsciiDoctor Ruby рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ, рд░ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрди рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рдкрд╣рд┐рд▓реЗ, рддрдкрд╛рдИрдВ рд░реБрдмреА рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ asciidoctor рд╕реАрдзрд╛ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬреБрди рд╕рдореНрднрд╡рддрдГ рд░реБрдмреА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдирдЬрд┐рдХрдХреЛ рдХреБрд░рд╛ рд╣реЛред
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд░реБрдмреА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЧрдбрдмрдб рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдбрдХрд░ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдореИрд▓реЗ рд░реЛрдЬреЗрдХреЛ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╣реА рд╣рджрд╕рдореНрдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд▓рд╛рдЧреНрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рдЬрд╛рднрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдпрд╕рд▓рд╛рдИ рд░реБрдмреА рд╡рд╛ рдбрдХрд░рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рддрд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ Maven рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдмрд┐рдиреНрджреБ рдпреЛ рд╣реЛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдЙрдкрд▓рдмреНрдзрддрд╛ graphviz
, рдЬреБрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдпрджрд┐ рддрдкрд╛рдЗрдБ GraphViz рд╡рд╛ PlantUML рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред) рдХреЗрд╡рд▓ рдЖрдлреНрдиреЛ .adoc рдлрд╛рдЗрд▓рд╣рд░реВ рдлреЛрд▓реНрдбрд░рдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред src/main/asciidoc/
ред рдпрд╣рд╛рдБ
рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрд▓рд╛рдИ PDF рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдпрджреНрдпрдкрд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ HTML рд╕рдВрд╕реНрдХрд░рдг рдПрдХрджрдо рдЖрддреНрдо-рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рдпреЛ рдЕрдЭреИ рдкрдирд┐ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ PDF рд╕рдВрд╕реНрдХрд░рдг рд╣реБрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫред рдкрд╣рд┐рд▓реЛ, рдпреЛ рд╣реБрдиреНрдЫ рдХрд┐ рдХреЗрд╣рд┐ рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдорд╛ рдЬрд╕рд▓реЗ рд╕реНрдкрд┐рдХрд░рд▓рд╛рдИ рдЖрдлреНрдиреИ рд▓реНрдпрд╛рдкрдЯрдк рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрди, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ HTML рдорд╛ рдкрдирд┐ рдЫрдиреН рднрдиреНрдиреЗ рдЖрд╢рд╛ рдирдЧрд░реА "рдХрдбрд╛ рд░реВрдкрдорд╛ pptx рд╡рд╛ pdf рдврд╛рдБрдЪрд╛рдорд╛" рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫред рджреЛрд╕реНрд░реЛ, рд╕рдореНрдореЗрд▓рди рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдорд╛ рдлрд╛рдЗрд▓рдХреЛ рдкреНрд░рдХрд╛рд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреАрдбреАрдПрдл рдврд╛рдБрдЪрд╛рдорд╛ рд░рд┐рдкреЛрд░реНрдЯрдорд╛ рджреЗрдЦрд╛рдЗрдПрдХрд╛ рд░реВрдкрдорд╛ рдЖрдпреЛрдЬрдХрд╣рд░реВрд▓рд╛рдИ рддрдкрд╛рдИрдВрдХреЛ рд╕реНрд▓рд╛рдЗрдбрд╣рд░реВрдХреЛ рд╕рдореНрдкрд╛рджрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкрдард╛рдЙрдиреБ рд░рд╛рдореНрд░реЛ рд╣реЛред
рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, Node.js рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдпреЛ рдХрд╛рд░реНрдп рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫред
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 рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЫрдиреЛрдЯ рд╣реЛ 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 рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдЫрдиреН, рдЬреБрди рдХреНрд▓реЛрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:
-
https://github.com/inponomarev/kstreams-examples (JPoint 2019 рдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд░реЛ рдХреБрд░рд╛рдХрд╛рдиреА) -
https://github.com/inponomarev/csa-hb (рд╣реЗрдЗрд╕реЗрдирдмрдЧ реирежрезреп рдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд░реЛ рд░рд┐рдкреЛрд░реНрдЯ)
рдЕрд▓рд╡рд┐рджрд╛ PowerPoint! рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдкреНрд░рд╕реНрддреБрддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрджреИрди рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрджреИрди :)
рд╕реНрд░реЛрдд: www.habr.com