рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдИрдЯреА рдХрд░рд┐рдпрд░ рдореЗрдВ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджрд░реНрдЬрдиреЛрдВ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рджреА рд╣реИрдВред рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ, рд╕реНрд▓рд╛рдЗрдб рдЙрддреНрдкрд╛рджрди рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рд╛рд▓ рд╕реНрдерд┐рддрд┐ рдЧреБрдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдпреА рд╣реИ. рдлрд░рд╡рд░реА рд╕реЗ рдордИ рддрдХ, рдореБрдЭреЗ рдкрд╛рдБрдЪ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдмреЛрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд▓рд╛рдЗрдбреЗрдВ рдХрдо рд╕рдордп рдореЗрдВ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХрд░рдиреА рдкрдбрд╝реАрдВред рд╕реНрд▓рд╛рдЗрдб рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп рдХреЗ рдЙрд╕ рднрд╛рдЧ рдХреЛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдЙрдард╛ред рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ .pptx рдлрд╝рд╛рдЗрд▓реЗрдВ рднреЗрдЬрдХрд░ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХрд╛рдо рдЕрд░рд╛рдЬрдХрддрд╛ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛: рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рд╕реНрд▓рд╛рдЗрдб рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг "рдирд╡реАрдирддрдо" рдерд╛, рдФрд░ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд▓реЗрдЖрдЙрдЯ "рдЪрд▓ рд░рд╣рд╛ рдерд╛" рд╣рдорд╛рд░реА рдорд╢реАрдиреЛрдВ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдлрд╝реЙрдиреНрдЯред рдФрд░ рдореИрдВрдиреЗ рдХреБрдЫ рдирдпрд╛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛, рдФрд░ рддрдм рд╕реЗ рдореИрдВрдиреЗ рдкрд╛рд╡рд░рдкреЙрдЗрдВрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред
рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдиреЗ рдЙрдиреНрд╣реАрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛: рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд░реНрдб рдПрдХ рдЫреЛрдЯреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдмрдврд╝рддрд╛ рд╣реИ, рд╕рд╣рдпреЛрдЧ рдФрд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдПрдХреАрдХреГрдд рдбрд┐рдЬрд╝рд╛рдЗрди. рд╣рдорд╛рд░реА рдкрд╕рдВрдж рдЧрд┐рд░ рдЧрдИ
- рдкреНрд░рд╕реНрддреБрддрд┐рдХрд░рдг рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╕рд╛рджрд╛ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- рд╣рдорд╛рд░реА рд╕реНрд▓рд╛рдЗрдбреНрд╕ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдб рдЯреБрдХрдбрд╝реЗ,
- рддреАрд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рдЖрд░реЗрдЦ,
- рдпреВрдПрдордПрд▓ рдЖрд░реЗрдЦ, рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
- рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдбреНрд░рд╛рдлреНрдЯ рдХреЛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рддреИрдпрд╛рд░ рд╕реНрд▓рд╛рдЗрдбреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдФрд░ рд╕рдВрдпреЛрдЬрди рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЬ, рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрд▓рд╛рдЗрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдкреИрдХреЗрдЬ
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЗрд░реА рдЖрддреНрдорд╛ 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреМрд╢рд▓ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ HTML рдкреЗрдЬ рдмрдирд╛рдирд╛
рд╕рд╛рджрд╛ рдкрд╛рда рд╕реНрд░реЛрдд рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдореЗрдВ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ?
AsciiDoctor рд░реВрдмреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рд░реВрдмреА рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдПрд╕реНрд╕реАрдбреЙрдХреНрдЯрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рд░реВрдмреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрд░реАрдмреА рдЪреАрдЬрд╝ рд╣реИред
рдпрджрд┐ рдЖрдк рд░реВрдмреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝реА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк рдХреБрдЫ рд╣рдж рддрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реВрдмреА рдпрд╛ рдбреЙрдХрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдорд╛рд╡реЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд▓рд╛рдЗрдб рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдЙрдкрд▓рдмреНрдзрддрд╛ graphviz
, рдпрджрд┐ рдЖрдк рдЧреНрд░рд╛рдлрд╡рд┐рдЬрд╝ рдпрд╛ рдкреНрд▓рд╛рдВрдЯрдпреВрдПрдордПрд▓ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред) рдмрд╕ рдЕрдкрдиреА .adoc рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ src/main/asciidoc/
ред рдпрд╣рд╛рдВ
рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХреЛ рдкреАрдбреАрдПрдл рдореЗрдВ рдмрджрд▓реЗрдВ
рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХрд╛ HTML рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдлреА рдЖрддреНрдордирд┐рд░реНрднрд░ рд╣реИ, рдлрд┐рд░ рднреА рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХрд╛ рдкреАрдбреАрдПрдл рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдЬреЛ рд╡рдХреНрддрд╛ рдХреЛ рдЕрдкрдирд╛ рд▓реИрдкрдЯреЙрдк рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ "рдХрдбрд╝рд╛рдИ рд╕реЗ рдкреАрдкреАрдЯреАрдПрдХреНрд╕ рдпрд╛ рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ" рд╕реНрд▓рд╛рдЗрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд┐рдирд╛ рдпрд╣ рдЙрдореНрдореАрдж рдХрд┐рдП рдХрд┐ рд╡реЗ HTML рдореЗрдВ рднреА рд╣реИрдВред рджреВрд╕рд░реЗ, рд╕рдореНрдореЗрд▓рди рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрдХреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕реНрд▓рд╛рдЗрдбреЛрдВ рдХрд╛ рдПрдХ рдЕрд╕рдВрдкрд╛рджрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднреЗрдЬрдирд╛ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Node.js рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИред
node decktape.js -s 3200x1800 --slides 1-500
reveal "file:///index.html?fragments=true" slides.pdf
рдбреЗрдХрдЯреЗрдк рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп рджреЛ рддрд░рдХреАрдмреЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдордиреЗ рд▓рд╛рдирд╛ рдерд╛:
-
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХрд▓реНрдк
-s
рджреЛрд╣рд░реЗ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд░реВрдкрд╛рдВрддрд░рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ -
рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдХреЗ HTML рд╕рдВрд╕реНрдХрд░рдг рдХреЗ URL рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
?fragments=true
, рдЬреЛ рдЖрдкрдХреА рд╕реНрд▓рд╛рдЗрдб рдХреА рдкреНрд░рддреНрдпреЗрдХ рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреАрдбреАрдПрдл рдкреЗрдЬ рдмрдирд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдВрдЪ рдмреБрд▓реЗрдЯ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдВрдЪ рдкреЗрдЬ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдкреАрдбреАрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╡реЗрдм рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкреНрд░рдХрд╛рд╢рди
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╕реНрд▓рд╛рдЗрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдпрд╣ рддрдм рдФрд░ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕реНрд▓рд╛рдЗрдб рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реНрд▓рд╛рдЗрдб рдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдХрд┐рд╕реА рднреА рдорд╢реАрди рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░ рд╕реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ "рдЦреЗрд▓рд╛" рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪреВрдБрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ GitHub рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП CI рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ gh-pages
рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ <╨▓╨░╤И╨╡ ╨╕╨╝╤П>.gihub.io/<╨▓╨░╤И ╨┐╤А╨╛╨╡╨║╤В>
.
рдкреВрд░реНрдг рдЯреНрд░реИрд╡рд┐рд╕рд╕реАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓, рдЬрд┐рд╕рдореЗрдВ рдореЗрд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрда рдХреЗ HTML рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛, рдбреЗрдХрдЯреЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреАрдбреАрдПрдл рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдереНрд░реЗрдб рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред gh-pages
github.io рдкрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
рдЯреНрд░реИрд╡рд┐рд╕реАрд╕реАрдЖрдИ рдХреА рдУрд░ рд╕реЗ рдРрд╕рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
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 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдВрддрддрдГ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред)
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рдЕрдВрдд рдореЗрдВ, рдпрд╣рд╛рдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдорд╛рд╡реЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯреНрд░реИрд╡рд┐рд╕-рд╕реАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕реАрдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреА рдЦреБрдж рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
-
https://github.com/inponomarev/kstreams-examples (JPoint 2019 рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдмрд╛рдд) -
https://github.com/inponomarev/csa-hb (рд╣реЗрдЗрдЬрд╝рдирдмрдЧ 2019 рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ)
рдЕрд▓рд╡рд┐рджрд╛ рдкрд╛рд╡рд░рдкреНрд╡рд╛рдЗрдВрдЯ! рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореБрдЭреЗ рддрдХрдиреАрдХреА рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрднреА рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА :)
рд╕реНрд░реЛрдд: www.habr.com