Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Echere m na enyela m ọtụtụ ihe ngosi nye ndị ọrụ ibe, ndị ahịa, na ikwu okwu ihu ọha na ọrụ IT m. Ruo ọtụtụ afọ, Powerpoint abụrụla m nhọrọ ebumpụta ụwa na ntụkwasị obi dịka ngwa nrụpụta slide. Ma n'afọ a, ọnọdụ gbanwere qualitatively. Site na February ruo Mee, enwere m ohere ikwu okwu na ogbako ise, na slides maka akụkọ ga-adịrịrị n'oge dị mkpirikpi, ma na-enwe oke mma. Ajụjụ bilitere banyere inyefe akụkụ ahụ nke ọrụ ahụ gbasara imepụta ihe ngosi nke slide ndị ọzọ. Agbalịrị m ịrụ ọrụ na onye mmepụta otu oge, na-eziga faịlụ .pptx site na mail, ma ọrụ ahụ ghọrọ ọgba aghara: ọ dịghị onye maara nsụgharị nke slides bụ "kacha ọhụrụ", na nhazi ahụ bụ "na-agagharị" n'ihi ọdịiche dị na Powerpoint. ụdị na mkpụrụedemede na igwe anyị. M wee kpebie ịnwale ihe ọhụrụ. Agbalịrị m ya, kemgbe ahụ echebeghị m ịlaghachi na Powerpoint.

Kedu ihe anyị chọrọ

N'ihe dị ka otu afọ na ọkara gara aga, ụlọ ọrụ anyị kwụsịrị iji Okwu na-emepụta akwụkwọ ọrụ, na-ezute otu nsogbu ndị ahụ: ọ bụ ezie na Okwu dị mma maka ịpịpụta obere akwụkwọ, dị ka olu na-eto eto, ihe isi ike na-ebilite na imekọ ihe ọnụ na ịnweta oke mma na. n'otu imewe. Nhọrọ anyị dabara AsciiDoctor, ma anyị anaghị akwụsị ịṅụrị ọṅụ na nhọrọ a, mana nke a bụ isiokwu maka isiokwu dị iche. N'otu oge ahụ, anyị mụtara ịdị irè nke otu n'ime ụkpụrụ DevOps nke "ihe niile dị ka koodu", yabụ nhọrọ nke ihe achọrọ maka teknụzụ ọhụrụ maka ịmepụta ihe ngosi ngosi pụtara ìhè:

  1. Ngosipụta a ga-abụrịrị faịlụ ederede dị larịị n'asụsụ akara akara.
  2. Ihe ngosi mmịfe anyị bụ maka ọrụ mmepe, yabụ akara ahụ kwesịrị ime ka ọ dị mfe itinye, na-enweghị iji usoro mpụga
    • Iberibe koodu nwere ihe na-egosi syntax,
    • eserese dị mfe n'ụdị ọdịdị geometric jikọtara site na akụ,
    • Eserese UML, eserese ngosi na ndị ọzọ.
  3. A ga-echekwarịrị akwụkwọ ngosi na sistemụ njikwa ụdị.
  4. Ekwesịrị ime nkwado na mgbakọ nke slide ndị emechara na sistemụ CI.

Taa, enwere nhọrọ abụọ bụ isi maka ịmepụta slide na asụsụ akara: ngwugwu oriọna maka LaTeX ma ọ bụ otu n'ime usoro maka ịmepụta slides site na iji HTML/CSS (Ediyarade, ekwu, oche.js na ọtụtụ ndị ọzọ).

Ọ bụ ezie na mkpụrụ obi m dị na LaTeX, uche m kwuru na nhọrọ nke ngwọta nke m na-agaghị abụ naanị onye na-eji kwesịrị ịdị n'akụkụ ngwọta nke ndị mmadụ maara nke ọma. Ọ bụghị onye ọ bụla maara LaTeX, ma ọ bụrụ na omume gị kwa ụbọchị enweghị ihe jikọrọ ya na ide akụkọ sayensị, mgbe ahụ ị gaghị enwe oge iji mikpuo onwe gị n'ime nnukwu ụwa dị mgbagwoju anya nke usoro a.

Agbanyeghị, ịma HTML/CSS abụghị kpọmkwem nka zuru ebe niile: dịka ọmụmaatụ, amachaghị m nke ọma na ya. Ọ dabara nke ọma, AsciiDoctor maara nke ọma na-abịa napụta: onye ntụgharị asciidoctor-ekpughe na-enye gị ohere ịmepụta ihe mmịfe RevealJS site na iji AsciiDoctor markup. Ma ọ dị mfe ịmụta na ịnweta onye ọ bụla!

Otu esi eme koodu slide

Iji ghọta isi okwu nke slides nzuzo na AsciiDoctor, ụzọ kachasị mfe bụ ịnye ọmụmaatụ. Ihe ndị a niile sitere na slide ndị m mere maka ngosi ọgbakọ m n'afọ a.

Ihe mmịfe nwere aha na ndepụta dị n'ime ihe na-emeghe otu na nke ọzọ:

== Зачем нам Streams API?

[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* Под капотом:
** Автоматический offset commit
** Ребалансировка
** Внутреннее состояние обработчиков
** Легкое масштабирование

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Mpempe akwụkwọ nkụnye eji isi mee na koodu isi na-egosipụta syntax:

== Kafka Streams API: общая структура KStreams-приложения

[source,java]
----
StreamsConfig config = ...;
//Здесь устанавливаем всякие опции

Topology topology = new StreamsBuilder()
//Здесь строим топологию
....build();
----

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

N'ịkwadebe maka okwu, koodu ngosi na-eme mgbanwe ugboro ugboro na nkwalite, ya mere ikike iji ngwa ngwa idetu na mado "koodu raw" ozugbo na slide bụ ihe bara uru, na-eme ka ngosi ahụ dị ọhụrụ na-enweghị nchegbu banyere ịkọwapụta syntax.

Aha, ihe atụ na ederede (a na-eme nhazi na slide ahụ na sel Tebụl AsciiDoctor):

== Kafka Streams in Action

[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
“Kafka Streams in Action”, November 2018
* Примеры кода для Kafka 1.0
|===

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Mgbe ụfọdụ a dịghị achọ aha, na iji gosi isi okwu gị, ị ga-achọ naanị onyonyo zuru ezu:

[%notitle]
== Жить в легаси нелегко

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

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Ọtụtụ mgbe, ọ dị mkpa ka e jiri eserese dị mfe kwado otu echiche, n'ụdị "squares ejikọrọ na akụ." Ọ dabara nke ọma, AsciiDoctor jikọtara ya na sistemụ Graphviz - asụsụ nke na-enye gị ohere ịkọwa eserese eserese dabere na nkọwa nke vertices na njikọ dị n'etiti ha. Graphviz na-ewe usoro mmụta, mana dabere na ihe atụ ndị enyere, ọ dị mfe ime! Nke a bụ ka ọ dị:

== Пишем “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;}
}
-----

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

N'okwu ahụ mgbe ọ dị mkpa iji dezie isiokwu dị na ọnụ ọgụgụ ahụ, gbanwee ntụziaka nke akụ, wdg, nke a nwere ike ime ozugbo na koodu ngosi, kama ịmegharị foto ahụ ebe ma tinyeghachi ya na slide. Nke a na-abawanye ngwa ngwa nke ịrụ ọrụ na slides.

Ọmụmaatụ gbagwojuru anya karị:

== Невоспроизводимая сборка
[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;}
}
-----

N'ihi

Ngosipụta dị ka koodu, ma ọ bụ ihe kpatara na anaghị m eji Powerpoint ọzọ

Site n'ụzọ, ọ dị mma ịnwale Graphviz na ihichapụ onyonyo na ibe Graphviz n'ịntanetị.

N'ikpeazụ, ọ bụrụ na ịchọrọ itinye akwụkwọ mpịakọta, eserese klaasị ma ọ bụ ihe osise ahaziri ahazi na slide, mgbe ahụ usoro ọzọ jikọtara ya na AsciiDoctor nwere ike ịbịa napụta. OsisiUML. Onye ọrụ ibe m Nikolai Potashnikov dere banyere ikike dị ukwuu nke PlantUML iche iche post.

Ịtụgharị ihe ngosi ngosi na koodu echekwara na usoro njikwa nsụgharị na-eme ka o kwe omume ịhazi ọrụ nkwonkwo na ihe ngosi, nke mbụ, ikewapụ ọrụ nke ịmepụta ọdịnaya na imewe. A na-akọwa nhazi nke slide (font, ndabere, indents) na RevealJS site na iji CSS. Ọkachamara kacha akọwapụta nka nke m na CSS gif a - mana ọ naghị atụ egwu mgbe enwere ndị na-arụ ọrụ na CSS karịa nke ọma na ngwa ngwa karịa m. N'ihi ya, ọ na-apụta na na njedebe na-abịa ngwa ngwa maka ihe ngosi, anyị nwere ike ịrụ ọrụ na faịlụ dị iche iche n'otu oge site na Git ma mepụta ọsọ ọsọ nke imekọ ihe na-agaghị ekwe omume mgbe ị na-eziga faịlụ .pptx site na mail.

Jiri slides wulite ibe HTML

Isi mmalite ederede dị larịị dị mma, mana kedu ka ị ga-esi chịkọta ha na ngosipụta n'onwe ya?

AsciiDoctor bụ oru ngo edere na Ruby, ma enwere ọtụtụ ụzọ isi mee ya. Nke mbụ, ị nwere ike ịwụnye asụsụ Ruby wee gbaa asciidoctor ozugbo, nke nwere ike bụrụ ihe kacha nso na ndị mmepe Ruby.

Ọ bụrụ na ịchọghị ịme mgbagwoju anya na ịwụnye Ruby, ị nwere ike iji onyonyo docker asciidoctor/docker-asciidoctor, n'ime nke, mgbe emepere ya, ị nwere ike jikọọ folda ahụ na isi mmalite ọrụ site na VOLUME wee nweta nsonaazụ na ebe enyere.

Nhọrọ m họọrọ nwere ike iyi ihe a na-atụghị anya ya, mana ọ kachasị mma maka m dịka onye nrụpụta Java. Ọ dịghị achọ ntinye nke Ruby ma ọ bụ docker, kama ọ na-enye gị ohere ịmepụta slides site na iji edemede Maven.

Isi ihe bụ na oru ngo Onyeka Onwenu - Mmejuputa Java nke asụsụ Ruby dị mma nke na ọ na-enye gị ohere ịme ihe fọrọ nke nta ka ọ bụrụ ihe ọ bụla e kere maka Ruby na igwe Java, na AsciiDoctor na-agba ọsọ bụ otu n'ime ihe ndị JRuby na-ejikarị eme ihe.

nnweta asciidoctor-maven-plugin na-enye gị ohere ịnakọta akwụkwọ AsciiDoctor nke bụ akụkụ nke ọrụ Java (nke anyị na-eji ike). N'otu oge ahụ, Maven na-ebudata AsciiDoctor na JRuby na-akpaghị aka, na AsciiDoctor na-agba ọsọ na gburugburu JRuby: ọ dịghị mkpa ịwụnye ihe ọ bụla na igwe! (Ewezuga ngwugwu graphviz, nke dị mkpa ma ọ bụrụ na ịchọrọ iji GraphViz ma ọ bụ PlantUML eserese.) Naanị tinye faịlụ .adoc gị na folda. src/main/asciidoc/. Ebe a ihe atụ nke pomnikna-anakọta slide na eserese.

Tụgharịa slide ka ọ bụrụ PDF

Ọ bụ ezie na nsụgharị HTML nke slide ndị ahụ na-ezuru onwe ya, ọ ka dị mkpa inwe ụdị PDF nke slide ndị ahụ. Nke mbụ, ọ na-eme na n'ọgbakọ ụfọdụ na-enyeghị ọkà okwu ohere ijikọ laptọọpụ nke ya, ha na-achọ slides "kpamkpam na pptx ma ọ bụ pdf usoro," na-atụghị anya na ha nọkwa na HTML. Nke abuo, ọ dị mma iziga ndị na-ahazi ụdị ihe mmịfe gị edezighị edezi ka egosiri ha na akụkọ ahụ, n'ụdị PDF maka ibipụta faịlụ na ngwa ogbako.

Ọ dabara nke ọma, ọrụ Node.js na-arụ ọrụ a. decktape, wuru na ndabere Nwa nkịta - sistemu akpaaka maka ijikwa ihe nchọgharị Chrome. Ị nwere ike iji iwu ahụ gbanwee ngosi RevealJS ka ọ bụrụ PDF

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

Aghụghọ abụọ mgbe ị na-ebupụta decktape, nke anyị ga-esite na nnwale na njehie:

  • mkpebi site na paramita -s a ga-akọwarịrị ya na oke akụkụ abụọ, ma ọ bụghị na enwere ike inwe nsogbu na nsonaazụ ntụgharị

  • na URL nke ụdị HTML nke ihe ngosi, ịkwesịrị ịgafe oke ?fragments=true, nke ga-emepụta ibe PDF dị iche iche maka steeti etiti ọ bụla nke slide gị (dịka ọmụmaatụ, ibe ise maka isi mgbọ ise ma ọ bụrụ na egosiri ha n'otu n'otu). Nke a ga-enye gị ohere iji PDF dị otú ahụ n'onwe ya dị ka ihe ngosi n'oge akụkọ.

Mgbakọ na mbipụta akpaaka na webụ

Ọ na-adaba adaba mgbe a na-achịkọta ihe mmịfe na-akpaghị aka mgbe a na-eme mgbanwe na sistemụ njikwa ụdị, yana ọ ga-adabarịrị ma ọ bụrụ na etinyere ihe mmịfe ekpokọtara na-akpaghị aka na ịntanetị maka ojiji ọha. Enwere ike ịkpọ slide site na ịntanetị ngwa ngwa n'ihu ndị na-ege ntị site na igwe ọ bụla ejikọrọ na ịntanetị yana projector.

Ebe anyị na-eji GitHub n'ọrụ anyị, nhọrọ okike nke usoro CI bụ TravisCI, na maka nnabata ihe ngosi emebere- github.io. Echiche dị n'azụ github.io bụ na ọdịnaya ọ bụla kwụ ọtọ ezigara na alaka ụlọ ọrụ gh-pages nke oru ngo gi na GitHub, ga-adi na <ваше имя>.gihub.io/<ваш проект>.

Faịlụ nhazi TravisCI zuru ezu, gụnyere iji Maven na-achịkọta ụdị HTML nke ibe ahụ, ịtụgharị gaa na PDF site na iji decktape, yana bulite nsonaazụ ya na eri. gh-pages maka mbipụta na github.io, dị ka ka.

Iji wuo ọrụ dị otú ahụ n'akụkụ TravisCI, ịkwesịrị ịhazi mgbanwe gburugburu ebe obibi

  • GH_REF - uru dị ka github.com/inponomarev/csa-hb
  • GH_TOKEN - Nweta ohere GitHub. Ị nwere ike nweta ya na GitHub na ntọala profaịlụ gị, Ntọala Onye Mmepụta -> Nnweta Nweta Onwe Onye. Ọ bụrụ na ị bulite ihe ngosi na ebe nchekwa ọha, mgbe ahụ maka akara ngosi a, ọ ga-ezuru ịkọwapụta naanị ohere ịnweta "Nweta ebe nchekwa ọha".
  • GH_USER_EMAIL / GH_USER_NAME - aha/email pair na nnọchite nke a ga-eme ntinye na eri ahụ gh-pages.

Ya mere, onye ọ bụla na-eme koodu ngosi na GitHub na-arụpụta na a na-ewughachi ihe mmịfe ahụ na-akpaghị aka na HTML na PDF ma tinyeghachi ya na github.io. (N'ezie, naanị ị ga-ebugote github.io ihe ngosi ndị ị mechara chọọ ime ọha.)

Ihe atụ nke oru ngo

N'ikpeazụ, ebe a bụ njikọ na atụ ole na ole nke ngosi ngosi nwere ederede Maven ahaziri na nhazi CI maka Travis-CI, nke enwere ike ịmegharị ma jiri ya mee ihe mgbe ị na-emepụta ọrụ ngosi nke gị:

Daalụ Powerpoint! Echeghị m na m ga-achọ gị maka ngosi nka :)

isi: www.habr.com

Tinye a comment