เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟ, เช…เชฅเชตเชพ เชถเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชนเชตเซ‡ เชชเชพเชตเชฐเชชเซ‹เชˆเชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€

เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟ, เช…เชฅเชตเชพ เชถเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชนเชตเซ‡ เชชเชพเชตเชฐเชชเซ‹เชˆเชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€

เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชฎเซ‡เช‚ เชฎเชพเชฐเซ€ IT เช•เชพเชฐเช•เชฟเชฐเซเชฆเซ€เชฎเชพเช‚ เชธเชนเช•เชฐเซเชฎเซ€เช“, เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธ เช…เชจเซ‡ เชœเชพเชนเซ‡เชฐ เชฌเซ‹เชฒเชคเชพเช“เชจเซ‡ เชกเชเชจเซ‡เช• เชชเซเชฐเชธเซเชคเซเชคเชฟเช“ เช†เชชเซ€ เช›เซ‡. เช˜เชฃเชพ เชตเชฐเซเชทเซ‹เชฅเซ€, เชชเชพเชตเชฐเชชเซ‹เช‡เชจเซเชŸ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเซเชฒเชพเช‡เชก เช‰เชคเซเชชเชพเชฆเชจ เชธเชพเชงเชจ เชคเชฐเซ€เช•เซ‡ เช•เซเชฆเชฐเชคเซ€ เช…เชจเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชชเชธเช‚เชฆเช—เซ€ เชฐเชนเซ€ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† เชตเชฐเซเชทเซ‡ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เช—เซเชฃเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เชฌเชฆเชฒเชพเชˆ เช—เชˆ เช›เซ‡. เชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€เชฅเซ€ เชฎเซ‡ เชธเซเชงเซ€, เชฎเชจเซ‡ เชชเชพเช‚เชš เช•เซ‹เชจเซเชซเชฐเชจเซเชธเชฎเชพเช‚ เชฌเซ‹เชฒเชตเชพเชจเซ€ เชคเช• เชฎเชณเซ€, เช…เชจเซ‡ เชฐเชฟเชชเซ‹เชฐเซเชŸเซเชธ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซเชฒเชพเช‡เชกเซเชธ เชŸเซ‚เช‚เช•เชพ เชธเชฎเชฏเชฎเชพเช‚ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เช‰เชšเซเชš เช—เซเชฃเชตเชคเซเชคเชพ เชธเชพเชฅเซ‡. เชธเซเชฒเชพเช‡เชกเซเชธเชจเซ€ เชตเชฟเชเซเชฏเซเช…เชฒ เชกเชฟเชเชพเช‡เชจ เชธเช‚เชฌเช‚เชงเชฟเชค เช•เชพเชฎเชจเชพ เชคเซ‡ เชญเชพเช—เชจเซ‡ เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹เชจเซ‡ เชธเซ‹เช‚เชชเชตเชพ เช…เช‚เช—เซ‡ เชชเซเชฐเชถเซเชจ เชŠเชญเซ‹ เชฅเชฏเซ‹. เชฎเซ‡เช‚ เชเช•เชตเชพเชฐ เชกเชฟเชเชพเช‡เชจเชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เชฎเซ‡เชฒ เชฆเซเชตเชพเชฐเชพ .pptx เชซเชพเช‡เชฒเซ‹ เชฎเซ‹เช•เชฒเซ€เชจเซ‡, เชชเชฐเช‚เชคเซ เช•เชพเชฎ เช…เชฐเชพเชœเช•เชคเชพเชฎเชพเช‚ เชซเซ‡เชฐเชตเชพเชˆ เช—เชฏเซเช‚: เช•เซ‹เชˆเชจเซ‡ เช–เชฌเชฐ เชจ เชนเชคเซ€ เช•เซ‡ เชธเซเชฒเชพเช‡เชกเซเชธเชจเซเช‚ เช•เชฏเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ "เชจเชตเซเช‚" เชนเชคเซเช‚, เช…เชจเซ‡ เชชเชพเชตเชฐเชชเซ‹เช‡เชจเซเชŸเชฎเชพเช‚ เชคเชซเชพเชตเชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชฒเซ‡เช†เช‰เชŸ "เชšเชฒเชฟเชค" เชนเชคเซเช‚. เช…เชฎเชพเชฐเชพ เชฎเชถเซ€เชจเซ‹ เชชเชฐ เช†เชตเซƒเชคเซเชคเชฟเช“ เช…เชจเซ‡ เชซเซ‹เชจเซเชŸเซเชธ. เช…เชจเซ‡ เชฎเซ‡เช‚ เช•เช‚เชˆเช• เชจเชตเซเช‚ เช•เชฐเชตเชพเชจเซ‹ เชจเชฟเชฐเซเชฃเชฏ เช•เชฐเซเชฏเซ‹. เชฎเซ‡เช‚ เชคเซ‡เชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เช…เชจเซ‡ เชคเซเชฏเชพเชฐเชฅเซ€ เชฎเซ‡เช‚ เชชเชพเชตเชฐเชชเซ‹เช‡เชจเซเชŸ เชชเชฐ เชชเชพเช›เชพ เชœเชตเชพ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เชจเชฅเซ€.

เช…เชฎเชจเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡

เชฒเช—เชญเช— เชฆเซ‹เชข เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚, เช…เชฎเชพเชฐเซ€ เช•เช‚เชชเชจเซ€เช เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซ‡ เชœ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชนเชคเซ‹: เชœเซ‹ เช•เซ‡ เชตเชฐเซเชก เชจเชพเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเชจเซ‡ เชŸเชพเช‡เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฐเซเช‚ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชตเซ‹เชฒเซเชฏเซเชฎ เชตเชงเซ‡ เช›เซ‡, เชธเชนเชฏเซ‹เช— เช…เชจเซ‡ เช‰เชšเซเชš เช—เซเชฃเชตเชคเซเชคเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชŠเชญเซ€ เชฅเชพเชฏ เช›เซ‡. เชเช•เซ€เช•เซƒเชค เชกเชฟเชเชพเช‡เชจ. เช…เชฎเชพเชฐเซ€ เชชเชธเช‚เชฆเช—เซ€ เชชเชฐ เชชเชกเซ€ เชเชธเซ€เชธเซ€ เชกเซ‹เช•เซเชŸเชฐ, เช…เชจเซ‡ เช…เชฎเซ‡ เช† เชชเชธเช‚เชฆเช—เซ€ เชชเชฐ เช•เซเชฏเชพเชฐเซ‡เชฏ เช†เชจเช‚เชฆ เช•เชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช† เชเช• เช…เชฒเช— เชฒเซ‡เช– เชฎเชพเชŸเซ‡เชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เช…เชฎเซ‡ "เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชฌเชงเซเช‚ เชœ" เชจเชพ DevOps เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹เชฎเชพเช‚เชฅเซ€ เชเช•เชจเซ€ เช…เชธเชฐเช•เชพเชฐเช•เชคเชพ เชถเซ€เช–เซเชฏเชพ, เชคเซ‡เชฅเซ€ เชชเซเชฐเชธเซเชคเซเชคเชฟ เชธเซเชฒเชพเช‡เชกเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเชตเซ€ เชคเช•เชจเซ€เช• เชฎเชพเชŸเซ‡เชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพเช“เชจเซ€ เชชเชธเช‚เชฆเช—เซ€ เชเช•เชฆเชฎ เชธเซเชชเชทเซเชŸ เชนเชคเซ€:

  1. เชชเซเชฐเชธเซเชคเซเชคเชฟ เชฎเชพเชฐเซเช•เช…เชช เชญเชพเชทเชพเชฎเชพเช‚ เชธเชพเชฆเซ€ เชŸเซ‡เช•เซเชธเซเชŸ เชซเชพเช‡เชฒ เชนเซ‹เชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡.
  2. เช…เชฎเชพเชฐเซ€ เชธเซเชฒเชพเช‡เชกเซเชธ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชตเชฟเชถเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชฎเชพเชฐเซเช•เช…เชช เชฌเชพเชนเซเชฏ เชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช†เชถเชฐเซ‹ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ, เชคเซ‡เชจเซ‡ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชตเซเช‚ เชœเซ‹เชˆเช
    • เชธเชฟเชจเซเชŸเซ‡เช•เซเชธ เชนเชพเช‡เชฒเชพเช‡เชŸเชฟเช‚เช— เชธเชพเชฅเซ‡ เช•เซ‹เชก เชŸเซเช•เชกเชพเช“,
    • เชคเซ€เชฐ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เชญเซŒเชฎเชฟเชคเชฟเช• เช†เช•เชพเชฐเซ‹เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชธเชฐเชณ เช†เช•เซƒเชคเชฟเช“,
    • UML เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ, เชซเซเชฒเซ‹เชšเชพเชฐเซเชŸ เช…เชจเซ‡ เชตเชงเซ.
  3. เชชเซเชฐเชธเซเชคเซเชคเชฟ เชกเซเชฐเชพเชซเซเชŸ เชธเช‚เชธเซเช•เชฐเชฃ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชนเซ‹เชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡.
  4. เชซเชฟเชจเชฟเชถเซเชก เชธเซเชฒเชพเช‡เชกเซเชธเชจเซ€ เชฎเชพเชจเซเชฏเชคเชพ เช…เชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ CI เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชฅเชตเซ€ เชœเซ‹เชˆเช.

เช†เชœเซ‡, เชฎเชพเชฐเซเช•เช…เชช เชญเชพเชทเชพเช“เชฎเชพเช‚ เชธเซเชฒเชพเช‡เชกเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชตเชฟเช•เชฒเซเชชเซ‹ เช›เซ‡: เชชเซ‡เช•เซ‡เชœ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฐ LaTeX เชฎเชพเชŸเซ‡ เช…เชฅเชตเชพ HTML/CSS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซเชฒเชพเช‡เชกเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชเช• เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชฎเชพเชŸเซ‡ (เชฐเซ‡เชตเชฒเชœเซ‡เชเชธ, เชŸเซ€เช•เชพ, 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
** ะ ะตะฑะฐะปะฐะฝัะธั€ะพะฒะบะฐ
** ะ’ะฝัƒั‚ั€ะตะฝะฝะตะต ัะพัั‚ะพัะฝะธะต ะพะฑั€ะฐะฑะพั‚ั‡ะธะบะพะฒ
** ะ›ะตะณะบะพะต ะผะฐััˆั‚ะฐะฑะธั€ะพะฒะฐะฝะธะต

เชชเชฐเชฟเชฃเชพเชฎ

เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟ, เช…เชฅเชตเชพ เชถเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชนเชตเซ‡ เชชเชพเชตเชฐเชชเซ‹เชˆเชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€

เชธเชฟเชจเซเชŸเซ‡เช•เซเชธ เชนเชพเช‡เชฒเชพเช‡เชŸเชฟเช‚เช— เชธเชพเชฅเซ‡ เชนเซ‡เชกเชฐ เช…เชจเซ‡ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชธเซเชจเชฟเชชเซ‡เชŸ:

== Kafka Streams API: ะพะฑั‰ะฐั ัั‚ั€ัƒะบั‚ัƒั€ะฐ KStreams-ะฟั€ะธะปะพะถะตะฝะธั

[source,java]
----
StreamsConfig config = ...;
//ะ—ะดะตััŒ ัƒัั‚ะฐะฝะฐะฒะปะธะฒะฐะตะผ ะฒััะบะธะต ะพะฟั†ะธะธ

Topology topology = new StreamsBuilder()
//ะ—ะดะตััŒ ัั‚ั€ะพะธะผ ั‚ะพะฟะพะปะพะณะธัŽ
....build();
----

เชชเชฐเชฟเชฃเชพเชฎ

เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟ, เช…เชฅเชตเชพ เชถเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชนเชตเซ‡ เชชเชพเชตเชฐเชชเซ‹เชˆเชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€

เชŸเซ‹เช•เชจเซ€ เชคเซˆเชฏเชพเชฐเซ€เชฎเชพเช‚, เช•เซ‹เชก เชกเซ‡เชฎเซ‹เชฎเชพเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจเซ‹ เช…เชจเซ‡ เชธเซเชงเชพเชฐเชพเช“ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ "เช•เชพเชšเชพ เช•เซ‹เชก"เชจเซ‡ เชธเซ€เชงเชพ เชœ เชธเซเชฒเชพเช‡เชกเชฎเชพเช‚ เช•เซ‰เชชเชฟ เช…เชจเซ‡ เชชเซ‡เชธเซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช…เชฎเซ‚เชฒเซเชฏ เช›เซ‡, เชคเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชธเชฟเชจเซเชŸเซ‡เช•เซเชธ เชนเชพเช‡เชฒเชพเช‡เชŸเชฟเช‚เช— เชตเชฟเชถเซ‡ เชšเชฟเช‚เชคเชพ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชกเซ‡เชฎเซ‹ เช…เชช เชŸเซ เชกเซ‡เชŸ เช›เซ‡.

เชถเซ€เชฐเซเชทเช•, เชšเชฟเชคเซเชฐ เช…เชจเซ‡ เชŸเซ‡เช•เซเชธเซเชŸ (เชธเซเชฒเชพเช‡เชก เชชเชฐเชจเซเช‚ เชฒเซ‡เช†เช‰เชŸ เช•เซ‹เชทเซ‹เชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ AsciiDoctor เช•เซ‹เชทเซเชŸเช•เซ‹):

== 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 เชธเชพเชฅเซ‡เชจเซ€ เชฎเชพเชฐเซ€ เช…เช‚เช—เชค เช•เซŒเชถเชฒเซเชฏ เชฆเซเชตเชพเชฐเชพ เชถเซเชฐเซ‡เชทเซเช  เชฐเซ€เชคเซ‡ เช…เชญเชฟเชตเซเชฏเช•เซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช† gif - เชชเชฐเช‚เชคเซ เชคเซ‡ เชกเชฐเชพเชฎเชฃเซ€ เชจเชฅเซ€ เชœเซเชฏเชพเชฐเซ‡ เชเชตเชพ เชฒเซ‹เช•เซ‹ เชนเซ‹เชฏ เชœเซ‡ CSS เชธเชพเชฅเซ‡ เชฎเชพเชฐเชพ เช•เชฐเชคเชพ เชตเชงเซ เชšเชชเชณเชคเชพเชฅเซ€ เช…เชจเซ‡ เชเชกเชชเซ€ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเซ‡เชเชจเซเชŸเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชเชกเชชเชฅเซ€ เชจเชœเซ€เช• เช†เชตเชคเซ€ เชธเชฎเชฏเชฎเชฐเซเชฏเชพเชฆเชพ เชธเชพเชฅเซ‡, เช…เชฎเซ‡ เช—เชฟเชŸ เชฆเซเชตเชพเชฐเชพ เชเช• เชธเชพเชฅเซ‡ เชตเชฟเชตเชฟเชง เชซเชพเช‡เชฒเซ‹ เชชเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชจเซ‡ เชธเชนเชฏเซ‹เช—เชจเซ€ เช—เชคเชฟ เชตเชฟเช•เชธเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช เชœเซ‡ เชฎเซ‡เช‡เชฒ เชฆเซเชตเชพเชฐเชพ .pptx เชซเชพเช‡เชฒเซ‹ เชฎเซ‹เช•เชฒเชคเซ€ เชตเช–เชคเซ‡ เช…เชถเช•เซเชฏ เช›เซ‡.

เชธเซเชฒเชพเช‡เชกเซเชธ เชธเชพเชฅเซ‡ HTML เชชเซƒเชทเซเช  เชฌเชจเชพเชตเชตเซเช‚

เชธเชพเชฆเชพ เชŸเซ‡เช•เซเชธเซเชŸ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เชฎเชนเชพเชจ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟเชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชถเซ‹?

AsciiDoctor เช เชฐเซ‚เชฌเซ€เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชšเชฒเชพเชตเชตเชพเชจเซ€ เช˜เชฃเซ€ เชฐเซ€เชคเซ‹ เช›เซ‡. เชชเซเชฐเชฅเชฎ, เชคเชฎเซ‡ เชฐเซ‚เชฌเซ€ เชญเชพเชทเชพเชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชเชธเซ€เชกเซ‹เช•เซเชŸเชฐเชจเซ‡ เชธเซ€เชงเซเช‚ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡ เช•เชฆเชพเชš เชฐเซ‚เชฌเซ€ เชกเซ‡เชตเชฒเชชเชฐเซเชธเชจเซ€ เชธเซŒเชฅเซ€ เชจเชœเซ€เช•เชจเซ€ เชตเชธเซเชคเซ เช›เซ‡.

เชœเซ‹ เชคเชฎเซ‡ เชฐเซ‚เชฌเซ€เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช—เชกเชฌเชก เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเซ‡ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ asciidoctor/docker-asciidoctor, เชœเซ‡เชฎเชพเช‚, เชœเซเชฏเชพเชฐเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชซเซ‹เชฒเซเชกเชฐเชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เชธเชพเชฅเซ‡ VOLUME เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เช†เชชเซ‡เชฒ เชธเซเชฅเชพเชจ เชชเชฐ เชชเชฐเชฟเชฃเชพเชฎ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เชฎเซ‡เช‚ เชชเชธเช‚เชฆ เช•เชฐเซ‡เชฒเซ‹ เชตเชฟเช•เชฒเซเชช เช•เช‚เชˆเช• เช…เช‚เชถเซ‡ เช…เชฃเชงเชพเชฐเซเชฏเซ‹ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเชพเชตเชพ เชกเซ‡เชตเชฒเชชเชฐ เชคเชฐเซ€เช•เซ‡ เชคเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเซŒเชฅเซ€ เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เชคเซ‡เชจเซ‡ เชฐเซ‚เชฌเซ€ เช…เชฅเชตเชพ เชกเซ‹เช•เชฐเชจเชพ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเชฎเชจเซ‡ เชฎเซ‡เชตเซ‡เชจ เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซเชฒเชพเช‡เชกเซเชธ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชฎเซเชฆเซเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชœเซ‡เชฐเซ‚เชฌเซ€ - เชฐเซ‚เชฌเซ€ เชญเชพเชทเชพเชจเซเช‚ เชœเชพเชตเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชเชŸเชฒเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เชœเชพเชตเชพ เชฎเชถเซ€เชจเชฎเชพเช‚ เชฐเซ‚เชฌเซ€ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชฒเช—เชญเช— เช•เช‚เชˆเชชเชฃ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ AsciiDoctor เชšเชฒเชพเชตเชตเซเช‚ เช JRuby เชจเซ‹ เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เช‰เชชเชฏเซ‹เช— เช›เซ‡.

เชชเซเชฐเชพเชชเซเชฏเชคเชพ asciidoctor-maven-plugin เชคเชฎเชจเซ‡ AsciiDoctor เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซ‡ Java เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‹ เชญเชพเช— เช›เซ‡ (เชœเซ‡เชจเซ‹ เช…เชฎเซ‡ เชธเช•เซเชฐเชฟเชฏเชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช). เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, AsciiDoctor เช…เชจเซ‡ JRuby Maven เชฆเซเชตเชพเชฐเชพ เช†เชชเชฎเซ‡เชณเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ AsciiDoctor JRuby เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชšเชพเชฒเซ‡ เช›เซ‡: เชฎเชถเซ€เชจ เชชเชฐ เช•เช‚เชˆเชชเชฃ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€! (เชชเซ‡เช•เซ‡เชœ เชธเชฟเชตเชพเชฏ graphvizเชœเซ‹ เชคเชฎเซ‡ GraphViz เช…เชฅเชตเชพ PlantUML เช—เซเชฐเชพเชซเชฟเช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เชœเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.) เชซเช•เซเชค เชคเชฎเชพเชฐเซ€ .adoc เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ‹. src/main/asciidoc/. เช…เชนเซ€เช‚ เชชเซ‹เชฎเชจเซ€เช•เชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃเช†เช•เซƒเชคเชฟเช“ เชธเชพเชฅเซ‡ เชธเซเชฒเชพเช‡เชกเซเชธ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเซ€.

เชธเซเชฒเชพเช‡เชกเซเชธเชจเซ‡ เชชเซ€เชกเซ€เชเชซเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ‹

เชœเซ‹ เช•เซ‡ เชธเซเชฒเชพเช‡เชกเซเชธเชจเซเช‚ HTML เชตเชฐเซเชเชจ เชเช•เชฆเชฎ เชธเซเชต-เชชเชฐเซเชฏเชพเชชเซเชค เช›เซ‡, เชคเซ‡เชฎ เช›เชคเชพเช‚ เชธเซเชฒเชพเช‡เชกเซเชธเชจเซเช‚ เชชเซ€เชกเซ€เชเชซ เชตเชฐเซเชเชจ เชนเซ‹เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชธเซŒเชชเซเชฐเชฅเชฎ, เชเชตเซเช‚ เชฌเชจเซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชชเชฐเชฟเชทเชฆเซ‹เชฎเชพเช‚ เชœเซ‡ เชธเซเชชเซ€เช•เชฐเชจเซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชฒเซ‡เชชเชŸเซ‹เชชเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชคเช• เชชเซ‚เชฐเซ€ เชชเชพเชกเชคเซ€ เชจเชฅเซ€, เชคเซ‡เช“เชจเซ‡ HTML เชฎเชพเช‚ เชชเชฃ เช›เซ‡ เชคเซ‡เชตเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซเชฏเชพ เชตเชฟเชจเชพ "เชธเช–เชค เชฐเซ€เชคเซ‡ pptx เช…เชฅเชตเชพ pdf เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚" เชธเซเชฒเชพเช‡เชกเซเชธเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡. เชฌเซ€เชœเซเช‚, เช†เชฏเซ‹เชœเช•เซ‹เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชธเซเชฒเชพเช‡เชกเซเชธเชจเซเช‚ เช…เชธเช‚เชชเชพเชฆเชฟเชค เชธเช‚เชธเซเช•เชฐเชฃ เชฎเซ‹เช•เชฒเชตเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชฆเชฐเซเชถเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เช•เซ‹เชจเซเชซเชฐเชจเซเชธ เชธเชพเชฎเช—เซเชฐเซ€เชฎเชพเช‚ เชซเชพเช‡เชฒเชจเชพ เชชเซเชฐเช•เชพเชถเชจ เชฎเชพเชŸเซ‡ 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, เชœเซ‡ เชคเชฎเชพเชฐเซ€ เชธเซเชฒเชพเช‡เชกเชจเซ€ เชฆเชฐเซ‡เช• เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เชธเซเชฅเชฟเชคเชฟ เชฎเชพเชŸเซ‡ เชเช• เช…เชฒเช— เชชเซ€เชกเซ€เชเชซ เชชเซƒเชทเซเช  เชฌเชจเชพเชตเชถเซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชพเช‚เชš เชฌเซเชฒเซ‡เชŸ เชชเซ‹เช‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชชเชพเช‚เชš เชชเซƒเชทเซเช เซ‹ เชœเซ‹ เชคเซ‡ เชเช• เชชเช›เซ€ เชเช• เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹). เช† เชคเชฎเชจเซ‡ เชฐเชฟเชชเซ‹เชฐเซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชชเซเชฐเซ‡เชเชจเซเชŸเซ‡เชถเชจ เชคเชฐเซ€เช•เซ‡ เช†เชตเชพ เชชเซ€เชกเซ€เชเชซเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชตเซ‡เชฌ เชชเชฐ เชธเซเชตเชšเชพเชฒเชฟเชค เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชถเชจ

เชœเซเชฏเชพเชฐเซ‡ เชตเชฐเซเชเชจ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชธเซเชฒเชพเช‡เชกเซเชธ เช†เชชเชฎเซ‡เชณเซ‡ เช•เชฎเซเชชเชพเช‡เชฒ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช…เชจเซเช•เซ‚เชณ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเซ‡เชฒเซ€ เชธเซเชฒเชพเช‡เชกเซเชธ เชœเชพเชนเซ‡เชฐ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เชชเซ‹เชธเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชตเชงเซ เช…เชจเซเช•เซ‚เชณ เชนเซ‹เชฏ เช›เซ‡. เชˆเชจเซเชŸเชฐเชจเซ‡เชŸเชจเซ€ เชธเซเชฒเชพเชˆเชกเซเชธ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช•เซ‹เชˆเชชเชฃ เชฎเชถเซ€เชจ เช…เชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฐเชฎเชพเช‚เชฅเซ€ เชชเซเชฐเซ‡เช•เซเชทเช•เซ‹เชจเซ€ เชธเชพเชฎเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ โ€œเชฐเชฎเชพเชˆโ€ เชถเช•เชพเชฏ เช›เซ‡.

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เช•เชพเชฎเชฎเชพเช‚ GitHub เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชนเซ‹เชตเชพเชฅเซ€, CI เชธเชฟเชธเซเชŸเชฎเชจเซ€ เช•เซเชฆเชฐเชคเซ€ เชชเชธเช‚เชฆเช—เซ€ เช›เซ‡ เชŸเซเชฐเซ‡เชตเชฟเชธเชธเซ€เช†เชˆ, เช…เชจเซ‡ เชคเซˆเชฏเชพเชฐ เชชเซเชฐเชธเซเชคเซเชคเชฟเช“ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ - 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 เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเชพเชฅเซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เช‰เชฆเชพเชนเชฐเชฃเซ‹เชจเซ€ เชฒเชฟเช‚เช•เซเชธ เช…เชนเซ€เช‚ เช›เซ‡, เชœเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชชเซเชฐเซ‡เชเชจเซเชŸเซ‡เชถเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เช•เซเชฒเซ‹เชจ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเชˆ เชถเช•เชพเชฏ เช›เซ‡:

เช—เซเชกเชฌเชพเชฏ เชชเชพเชตเชฐเชชเซ‹เช‡เชจเซเชŸ! เชฎเชจเซ‡ เชจเชฅเซ€ เชฒเชพเช—เชคเซเช‚ เช•เซ‡ เชคเช•เชจเซ€เช•เซ€ เชชเซเชฐเชธเซเชคเซเชคเชฟเช“ เชฎเชพเชŸเซ‡ เชฎเชจเซ‡ เชคเชฎเชพเชฐเซ€ เช•เซเชฏเชพเชฐเซ‡เชฏ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ :)

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹