рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рдореА рдорд╛рдЭреНрдпрд╛ IT рдХрд░рд┐рдЕрд░рдордзреНрдпреЗ рд╕рд╣рдХрд╛рд▒реНрдпрд╛рдВрдирд╛, рдХреНрд▓рд╛рдпрдВрдЯрдирд╛ рдЖрдгрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреЛрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдбрдЭрдирднрд░ рд╕рд╛рджрд░реАрдХрд░рдгреЗ рджрд┐рд▓реА рдЖрд╣реЗрдд. рдмрд░реНтАНрдпрд╛рдЪ рд╡рд░реНрд╖рд╛рдВрдкрд╛рд╕реВрди, рдкреЙрд╡рд░рдкреЙрдЗрдВрдЯ рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рд╕реНрд▓рд╛рдЗрдб рдЙрддреНрдкрд╛рджрди рд╕рд╛рдзрди рдореНрд╣рдгреВрди рдПрдХ рдиреИрд╕рд░реНрдЧрд┐рдХ рдЖрдгрд┐ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдирд┐рд╡рдб рдЖрд╣реЗ. рдорд╛рддреНрд░ рдпрдВрджрд╛ рд╕реНрдерд┐рддреА рдЧреБрдгрд╛рддреНрдордХ рдмрджрд▓рд▓реА рдЖрд╣реЗ. рдлреЗрдмреНрд░реБрд╡рд╛рд░реА рддреЗ рдореЗ рдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдд рдорд▓рд╛ рдкрд╛рдЪ рдкрд░рд┐рд╖рджрд╛рдВрдордзреНрдпреЗ рдмреЛрд▓рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдорд┐рд│рд╛рд▓реА рдЖрдгрд┐ рдЕрд╣рд╡рд╛рд▓рд╛рдВрдЪреНрдпрд╛ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХрдореА рд╡реЗрд│рд╛рдд, рдкрдг рдЙрдЪреНрдЪ рджрд░реНрдЬрд╛рдЪреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреНрдпрд╛ рд╣реЛрддреНрдпрд╛. рд╕реНрд▓рд╛рдЗрдбреНрд╕рдЪреНрдпрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рдбрд┐рдЭрд╛рдЗрдирдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рддреЛ рднрд╛рдЧ рдЗрддрд░ рд▓реЛрдХрд╛рдВрдирд╛ рд╕реЛрдкрд╡рдгреНрдпрд╛рдмрджреНрджрд▓ рдкреНрд░рд╢реНрди рдЙрджреНрднрд╡рд▓рд╛. рдореА рдПрдХрджрд╛ рдПрдХрд╛ рдбрд┐рдЭрд╛рдпрдирд░рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛, рдореЗрд▓рджреНрд╡рд╛рд░реЗ .pptx рдлрд╛рдЗрд▓реНрд╕ рдкрд╛рдард╡рд▓реНрдпрд╛, рдкрд░рдВрддреБ рдХрд╛рдо рдЧреЛрдВрдзрд│рд╛рдд рдмрджрд▓рд▓реЗ: рд╕реНрд▓рд╛рдЗрдбреНрд╕рдЪреА рдХреЛрдгрддреА рдЖрд╡реГрддреНрддреА "рдирд╡реАрди" рдЖрд╣реЗ рд╣реЗ рдХреЛрдгрд╛рд▓рд╛рд╣реА рдорд╛рд╣рд┐рддреА рдирд╡реНрд╣рддреЗ рдЖрдгрд┐ рдкреЙрд╡рд░рдкреЙрдЗрдВрдЯрдордзреАрд▓ рдлрд░рдХрд╛рдореБрд│реЗ рд▓реЗрдЖрдЙрдЯ "рд╣рд▓рд╡рдд" рд╣реЛрддрд╛. рдЖрдордЪреНрдпрд╛ рдорд╢реАрдирд╡рд░ рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрдгрд┐ рдлреЙрдиреНрдЯ. рдЖрдгрд┐ рдореА рдХрд╛рд╣реАрддрд░реА рдирд╡реАрди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдореА рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЖрдгрд┐ рддреЗрд╡реНрд╣рд╛рдкрд╛рд╕реВрди рдореА рдкреЙрд╡рд░рдкреЙрдЗрдВрдЯрд╡рд░ рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдирд╛рд╣реА.
рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд╣рд╡реЗ рдЖрд╣реЗ
рд╕реБрдорд╛рд░реЗ рджреАрдб рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА, рдЖрдордЪреНрдпрд╛ рдХрдВрдкрдиреАрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЙрдХреНрдпреБрдореЗрдВрдЯреЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд░реНрдб рд╡рд╛рдкрд░рдгреЗ рдмрдВрдж рдХреЗрд▓реЗ, рддреНрдпрд╛рдЪ рд╕рдорд╕реНрдпрд╛ рдЖрд▓реНрдпрд╛: рд╢рдмреНрдж рд▓рд╣рд╛рди рдХрд╛рдЧрджрдкрддреНрд░ рдЯрд╛рдЗрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рд╛ рдЕрд╕рд▓рд╛ рддрд░реА, рд╡реНрд╣реЙрд▓реНрдпреВрдо рдЬрд╕рдЬрд╕рд╛ рд╡рд╛рдврдд рдЬрд╛рддреЛ, рд╕рд╣рдХрд╛рд░реНрдпрд╛рдд рдЕрдбрдЪрдгреА рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛рдд рдЖрдгрд┐ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддреЗрдЪреА рдкреНрд░рд╛рдкреНрддреА рд╣реЛрддреЗ. рдпреБрдирд┐рдлрд╛рдЗрдб рдбрд┐рдЭрд╛рдЗрди. рдЖрдордЪреА рдирд┐рд╡рдб рдкрдбрд▓реА
- рд╕рд╛рджрд░реАрдХрд░рдг рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖реЗрдд рдПрдХ рд╕рд╛рдзрд╛ рдордЬрдХреВрд░ рдлрд╛рдЗрд▓ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
- рдЖрдордЪреНрдпрд╛ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдмрджреНрджрд▓ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рдорд╛рд░реНрдХрдЕрдкрдиреЗ рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реАрдВрдЪрд╛ рдЕрд╡рд▓рдВрдм рди рдХрд░рддрд╛ рддреЗ рдШрд╛рд▓рдгреЗ рд╕реЛрдкреЗ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ
- рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╣рд╛рдпрд▓рд╛рдЗрдЯрд┐рдВрдЧрд╕рд╣ рдХреЛрдбрдЪреЗ рддреБрдХрдбреЗ,
- рдмрд╛рдгрд╛рдВрдиреА рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рднреМрдорд┐рддрд┐рдХ рдЖрдХрд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рд╛рдзреЗ рдЖрдХреГрддреА,
- 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 рд╣рд╛ рд░реБрдмреАрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ рдЖрдгрд┐ рддреЛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд. рдкреНрд░рдердо, рдЖрдкрдг рд░реБрдмреА рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдереЗрдЯ asciidoctor рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛, рдЬреА рдХрджрд╛рдЪрд┐рдд рд░реБрдмреА рд╡рд┐рдХрд╕рдХрд╛рдВрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреА рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ.
рддреБрдореНрд╣рд╛рд▓рд╛ рд░реБрдмреА рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛рдирд╛ рдЧреЛрдВрдзрд│ рдШрд╛рд▓рд╛рдпрдЪрд╛ рдирд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рдбреЙрдХрд░ рдЗрдореЗрдЬ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛
рдореА рдирд┐рд╡рдбрд▓реЗрд▓рд╛ рдкрд░реНрдпрд╛рдп рдХрд╛рд╣реАрд╕рд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд╛рдЯреВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ Java рд╡рд┐рдХрд╕рдХ рдореНрд╣рдгреВрди рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рддреЛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдпреАрдЪрд╛ рдЖрд╣реЗ. рдпрд╛рд╕рд╛рдареА рд░реБрдмреА рдХрд┐рдВрд╡рд╛ рдбреЙрдХрд░рдЪреНрдпрд╛ рд╕реНрдерд╛рдкрдиреЗрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╡реЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рд╕реНрд▓рд╛рдЗрдбреНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
рдореБрджреНрджрд╛ рдЕрд╕рд╛ рдХреА рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛
рдЙрдкрд▓рдмреНрдзрддрд╛ graphviz
, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ GraphViz рдХрд┐рдВрд╡рд╛ PlantUML рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.) рдлрдХреНрдд рддреБрдордЪреНрдпрд╛ .adoc рдлрд╛рдЗрд▓реНрд╕ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдареЗрд╡рд╛. src/main/asciidoc/
. рдпреЗрдереЗ
рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдкреАрдбреАрдПрдлрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛
рдЬрд░реА рд╕реНрд▓рд╛рдЗрдбреНрд╕рдЪреА 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 рдкреГрд╖реНрда рддрдпрд╛рд░ рдХрд░реЗрд▓ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкрд╛рдЪ рдмреБрд▓реЗрдЯ рдкреЙрдЗрдВрдЯрд╕рд╛рдареА рдкрд╛рдЪ рдкреГрд╖реНрдареЗ рдПрдХрд╛рдорд╛рдЧреВрди рдПрдХ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рд╕). рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╣рд╡рд╛рд▓рд╛рджрд░рдореНрдпрд╛рди рд╕рд╛рджрд░реАрдХрд░рдг рдореНрд╣рдгреВрди рдЕрд╢рд╛ рдкреАрдбреАрдПрдлрдЪрд╛ рд╕реНрд╡рддрдГрд╣реВрди рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.
рд╡реЗрдмрд╡рд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЕрд╕реЗрдВрдмреНрд▓реА рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рди
рдЬреЗрд╡реНрд╣рд╛ рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдмрджрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЗ рд╕реЛрдпреАрд╕реНрдХрд░ рдЕрд╕рддреЗ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрд▓рд╛рдЗрдб рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдкреЛрд╕реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЗ рдЕрдзрд┐рдХ рд╕реЛрдпреАрдЪреЗ рдЕрд╕рддреЗ. рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реАрд▓ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдЗрдВрдЯрд░рдиреЗрдЯрд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдорд╢реАрди рдЖрдгрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░рдордзреВрди рдкреНрд░реЗрдХреНрд╖рдХрд╛рдВрд╕рдореЛрд░ рд╕рд╣рдЬрдкрдгреЗ "рдкреНрд▓реЗ" рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдХрд╛рдорд╛рдд 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 рд╡рд░реАрд▓ рд╕рд╛рджрд░реАрдХрд░рдг рдХреЛрдбрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдЖрдкреЛрдЖрдк рдПрдЪрдЯреАрдПрдордПрд▓ рдЖрдгрд┐ рдкреАрдбреАрдПрдл рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ github.io рд╡рд░ рдкреБрдиреНрд╣рд╛ рдЕрдкрд▓реЛрдб рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. (рдЕрд░реНрдерд╛рдд, рддреБрдореНрд╣реА рдлрдХреНрдд github.io рд╡рд░ рддреАрдЪ рд╕рд╛рджрд░реАрдХрд░рдгреЗ рдЕрдкрд▓реЛрдб рдХрд░рд╛рд╡реА рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╢реЗрд╡рдЯреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗрдд.)
рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреА рдЙрджрд╛рд╣рд░рдгреЗ
рд╢реЗрд╡рдЯреА, рдпреЗрдереЗ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдорд╛рд╡реЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЖрдгрд┐ рдЯреНрд░реЕрд╡реНрд╣рд┐рд╕-рд╕реАрдЖрдпрд╕рд╛рдареА рд╕реАрдЖрдп рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рд╕рд╛рджрд░реАрдХрд░рдг рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪреЗ рджреБрд╡реЗ рдЖрд╣реЗрдд, рдЬреЗ рдХреНрд▓реЛрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╕рд╛рджрд░реАрдХрд░рдг рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд:
-
https://github.com/inponomarev/kstreams-examples (JPoint 2019 рд╕рд╛рдареА рдорд╛рдЭреЗ рдмреЛрд▓рдгреЗ) -
https://github.com/inponomarev/csa-hb (рд╣рд╛рдпрд╕реЗрдирдмрдЧ 2019 рд╕рд╛рдареА рдорд╛рдЭрд╛ рдЕрд╣рд╡рд╛рд▓)
рдЧреБрдбрдмрд╛рдп рдкреЙрд╡рд░рдкреЙрдИрдВрдЯ! рддрд╛рдВрддреНрд░рд┐рдХ рд╕рд╛рджрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдорд▓рд╛ рддреБрдордЪреА рдЧрд░рдЬ рднрд╛рд╕реЗрд▓ рдЕрд╕реЗ рд╡рд╛рдЯрдд рдирд╛рд╣реА :)
рд╕реНрддреНрд░реЛрдд: www.habr.com