የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

በአይቲ ስራዬ በደርዘን የሚቆጠሩ አቀራረቦችን ለስራ ባልደረቦች፣ ደንበኞች እና የህዝብ ንግግር ያደረግሁ ይመስላል። ለብዙ አመታት, Powerpoint እንደ ስላይድ ሰሪ መሳሪያ ለእኔ ተፈጥሯዊ እና አስተማማኝ ምርጫ ነበር. በዚህ አመት ግን ሁኔታው ​​በጥራት ተለውጧል. ከየካቲት እስከ ሜይ ድረስ በአምስት ኮንፈረንሶች ላይ የመናገር እድል ነበረኝ, እና ለሪፖርቶቹ ስላይዶች በአጭር ጊዜ ውስጥ መዘጋጀት ነበረባቸው, ነገር ግን በከፍተኛ ጥራት. የተንሸራታቹን ምስላዊ ንድፍ በተመለከተ ያንን የሥራ ክፍል ለሌሎች ሰዎች ስለመስጠት ጥያቄው ተነሳ። አንዴ ከዲዛይነር ጋር ለመስራት ሞክሬ የ pptx ፋይሎችን በፖስታ በመላክ ስራው ወደ ትርምስ ተለወጠ: የትኛው የስላይድ ስሪት "አዲሱ" እንደሆነ ማንም አያውቅም, እና አቀማመጡ በስሪቶቹ ልዩነት ምክንያት "መንዳት" ነበር. በእኛ ማሽኖች ላይ የ Powerpoint እና ቅርጸ-ቁምፊዎች . እና አዲስ ነገር ለመሞከር ወሰንኩ. ሞክሬዋለሁ፣ እና ከዚያን ጊዜ ጀምሮ ወደ Powerpoint ለመመለስ አላስብም።

ምን እንፈልጋለን

ከአንድ ዓመት ተኩል በፊት እኛ በኩባንያው ውስጥ ተመሳሳይ ችግሮች አጋጥመውናል ፣ ተመሳሳይ ችግሮች ስላጋጠሙን የ Word አጠቃቀምን ትተናል ፣ ምንም እንኳን ቃል ትንሽ ሰነድ ለመተየብ ጥሩ ቢሆንም ፣ መጠኖች እያደጉ ሲሄዱ ፣ ለመተባበር እና ከፍተኛ ውጤት ለማግኘት አስቸጋሪ ይሆናል ። - ጥራት ያለው እና የተዋሃደ ንድፍ. ምርጫችን ወደቀ AsciiDoctor, እና በዚህ ምርጫ መደሰትን አናቆምም, ግን ይህ የተለየ ጽሑፍ ርዕስ ነው. በተመሳሳይ ጊዜ ፣ ​​ከ “ሁሉም ነገር እንደ ኮድ” የዴቭኦፕ መርሆዎችን ውጤታማነት ተምረናል ፣ ስለሆነም የአቀራረብ ስላይዶችን ለመፍጠር ለአዲሱ ቴክኖሎጂ የሚያስፈልጉ መስፈርቶች ምርጫ በጣም ግልፅ ነበር ።

  1. የዝግጅት አቀራረቡ በምልክት ቋንቋ ውስጥ ግልጽ የሆነ የጽሑፍ ፋይል መሆን አለበት።
  2. የእኛ ስላይዶች ስለ ልማት ፕሮጀክቶች ናቸው፣ ስለዚህ ምልክቱ ወደ ውጫዊ ስርዓቶች ሳይጠቀሙ በቀላሉ እንዲያስገቡ ሊፈቅድልዎ ይገባል።
    • የኮድ ቅንጥቦች ከአገባብ ማድመቂያ ጋር፣
    • በቀስቶች የተገናኙ በጂኦሜትሪክ ቅርጾች መልክ ቀላል ሥዕላዊ መግለጫዎች ፣
    • የዩኤምኤል ሥዕላዊ መግለጫዎች፣ የወራጅ ገበታዎች እና ሌሎችም።
  3. የዝግጅት አቀራረብ ፕሮጀክቱ በስሪት ቁጥጥር ውስጥ መቀመጥ አለበት.
  4. የተጠናቀቁ ስላይዶችን ማረጋገጥ እና መሰብሰብ በ CI ስርዓት ውስጥ መደረግ አለበት.

ዛሬ፣ በማርክ አፕ ቋንቋዎች ስላይዶችን ለመፍጠር ሁለት መሰረታዊ አማራጮች አሉ። ጨረር ለLaTeX ወይም በኤችቲኤምኤል/CSS ውስጥ ስላይዶችን ለመፍጠር ከተዘጋጁት ማዕቀፎች ውስጥ አንዱ (ራእይ ጄ, አስተያየት, ደርብ.js እና ሌሎች ብዙ)።

ነፍሴ ከላቴክስ ጋር ብትተኛም፣ ብቻዬን የማልጠቀምበት የመፍትሄ ምርጫ ከብዙ ሰዎች ጋር ከሚያውቀው መፍትሄ ጎን መሆን እንዳለበት አእምሮዬ ነግሮኛል። LaTeXን የሚያውቀው ሁሉም ሰው አይደለም፣ እና የእለት ተእለት ልምምድህ ሳይንሳዊ መጣጥፎችን ከመፃፍ ጋር የተያያዘ ካልሆነ፣ ወደዚህ ስርአት ግዙፉ ውስብስብ አለም ለመጥለቅ ጊዜ አይኖርህም።

ሆኖም የኤችቲኤምኤል/ሲኤስኤስ እውቀት በሁሉም ቦታ የሚገኝ ክህሎት አይደለም፡ ለምሳሌ እኔ ሙሉ በሙሉ የራሴ አይደለሁም። እንደ እድል ሆኖ, ቀድሞውኑ የሚታወቀው AsciiDoctor እዚህ ለማዳን ይመጣል: መቀየሪያ አስኪዶክተር-መገለጦች AsciiDoctor markupን በመጠቀም RevealJS ስላይዶች እንዲፈጥሩ ይፈቅድልዎታል። እና ለመማር ቀላል እና ለሁሉም ሰው ተደራሽ ነው!

ስላይዶችን እንዴት መደበቅ እንደሚቻል

የ AsciiDoctor ስላይድ ኮድን ምንነት ለመረዳት የተወሰኑ ምሳሌዎችን መስጠት በጣም ቀላል ነው። ሁሉም በዚህ አመት ለኮንፈረንስ ንግግሬ ካደረግኳቸው ትክክለኛ ስላይዶች ናቸው።

አንዱ ከሌላው በኋላ የሚከፈተው ርዕስ እና በአንቀጾች ውስጥ ያለው ዝርዝር ስላይድ፡-

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

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

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

ራስጌ እና የምንጭ ኮድ ቅንጭብ ከአገባብ ማድመቅ ጋር፡-

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

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

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

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

ሪፖርቱ በሚዘጋጅበት ጊዜ የኮድ ማሳያዎች በተደጋጋሚ ተስተካክለው እና ተሻሽለዋል, ስለዚህ "ጥሬ ኮድ" በፍጥነት ወደ ስላይድ ውስጥ የመገልበጥ እና የመለጠፍ ችሎታ, የማሳያውን አስፈላጊነት በማረጋገጥ እና ስለ አገባብ ማድመቅ አለመጨነቅ, በዋጋ ሊተመን የማይችል ነው.

ርዕስ፣ ስዕላዊ መግለጫ እና ጽሑፍ (በሴሎች ውስጥ ባለው ስላይድ ላይ ያለውን አቀማመጥ እናከናውናለን። AsciiDoctor ጠረጴዛዎች):

== Kafka Streams in Action

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

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

አንዳንድ ጊዜ ርዕስ አያስፈልገዎትም ነገር ግን ሃሳብዎን ለማሳየት የሙሉ ስክሪን ምስል ብቻ ያስፈልጋል፡

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

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

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

ብዙውን ጊዜ አንድ ሀሳብ በ "ቀስቶች የተገናኙ ካሬዎች" በቀላል ንድፍ መደገፍ ያስፈልገዋል. እንደ እድል ሆኖ, 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;}
}
-----

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

በጉዳዩ ላይ በስዕሉ ላይ ያለውን መግለጫ ማረም በሚፈልጉበት ጊዜ የቀስት አቅጣጫውን ይቀይሩ, ወዘተ - ይህ በቀጥታ በአቀራረብ ኮድ ውስጥ ሊከናወን ይችላል, ስዕሉን የሆነ ቦታ ላይ እንደገና ከመሳል እና ወደ ስላይድ ውስጥ እንደገና ከማስገባት ይልቅ. ይህ በስላይድ ላይ ያለውን የሥራ ፍጥነት በእጅጉ ይጨምራል.

የበለጠ የተወሳሰበ ምሳሌ፡-

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

ውጤት

የዝግጅት አቀራረብ እንደ ኮድ፣ ወይም ለምን Powerpointን አልጠቀምም።

በነገራችን ላይ በግራፍቪዝ መሞከር እና ስዕሎችን ማረም በገጹ ላይ ምቹ ነው ግራፍቪዝ በመስመር ላይ.

በመጨረሻም ፣ የፍሰት ገበታ ፣ የክፍል ዲያግራም ወይም ሌላ ደረጃውን የጠበቀ ንድፍ ወደ ስላይድ ውስጥ ማስገባት ከፈለጉ ከአሲኢዶክተር ጋር የተቀናጀ ሌላ ስርዓት ሊታደግ ይችላል ፣ PlantUML. የሥራ ባልደረባዬ ኒኮላይ ፖታሽኒኮቭ ስለ PlantUML ሰፊ እድሎች ጽፏል የተለየ ልጥፍ.

የዝግጅት አቀራረብን ፕሮጀክት በስሪት ቁጥጥር ስርዓት ላይ ወደተከማቸ ኮድ መለወጥ በዝግጅት አቀራረብ ላይ የጋራ ስራዎችን ለማደራጀት ያስችለዋል ፣ በመጀመሪያ ፣ ይዘትን እና ዲዛይን የመፍጠር ተግባራትን ለመለየት። በRevealJS ውስጥ የስላይድ ንድፍ (ቅርጸ-ቁምፊዎች ፣ ዳራዎች ፣ ንጣፍ) ሲኤስኤስ በመጠቀም ይገለጻል። ከሲኤስኤስ ጋር ያለኝ የግል ችሎታ ምርጥ አስተላልፏል ይህ gif - ነገር ግን ከሲኤስኤስ ጋር ከኔ በበለጠ በጥበብ እና በፍጥነት የሚሰሩ ሰዎች ሲኖሩ አያስፈራም። ዋናው ቁም ነገር የማቅረቢያ ቀነ-ገደብ በፍጥነት እየቀረበ በመጣ ቁጥር በበርካታ ፋይሎች ላይ በተመሳሳይ ጊዜ በጂት በኩል መስራት እና በኢሜል .pptx ፋይሎች የማይቻል የትብብር ፍጥነት ማዳበር እንችላለን።

በተንሸራታች የኤችቲኤምኤል ገጽ መገንባት

ግልጽ የጽሑፍ ምንጮች በጣም ጥሩ ናቸው፣ ግን እንዴት ወደ አቀራረቡ ራሱ ያጠናቅሯቸው?

AsciiDoctor በሩቢ የተጻፈ ፕሮጀክት ነው እና እሱን ለመጀመር ብዙ መንገዶች አሉ። በመጀመሪያ የሩቢ ቋንቋን መጫን እና አስኪዶክተርን በቀጥታ ማስኬድ ይችላሉ፣ ይህም ምናልባት የሩቢ ገንቢ ሊያገኘው የሚችለውን ቅርብ ነው።

ከ Ruby መጫኛዎ ጋር መበላሸት ካልፈለጉ, የመትከያ ምስሉን መጠቀም ይችላሉ አስኪዶክተር/ዶክተር-አሲኪዶክተር, በሚጀመርበት ጊዜ ማህደሩን ከፕሮጀክት ምንጮች ጋር በ VOLUME በኩል ማገናኘት እና ውጤቱን በተጠቀሰው ቦታ ማግኘት ይችላሉ.

የመረጥኩት አማራጭ በተወሰነ ደረጃ ያልተጠበቀ ሊመስል ይችላል, ግን ለእኔ እንደ ጃቫ ገንቢ በጣም ምቹ ነው. Ruby ወይም docker እንዲጫኑ አይፈልግም ነገር ግን የ Maven ስክሪፕት በመጠቀም ስላይዶችን እንዲፈጥሩ ይፈቅድልዎታል.

ዋናው ነገር ፕሮጀክቱ ነው ጅሩቢ - የሩቢ ቋንቋ የጃቫ አተገባበር በጣም ጥሩ ከመሆኑ የተነሳ ለሩቢ የተፈጠረውን ነገር ሁሉ በጃቫ ማሽን ውስጥ እንዲያካሂዱ ይፈቅድልዎታል ፣ እና AsciiDoctor ን ማስኬድ የJRuby በጣም የተለመዱ አገልግሎቶች አንዱ ነው።

ለማገኘት አለማስቸገር አስኪዶክተር-ማቨን-ተሰኪ የጃቫ ፕሮጀክት አካል የሆነውን (በንቃት የምንጠቀመው) AsciiDoctor documentation እንዲሰበስቡ ይፈቅድልዎታል. በተመሳሳይ ጊዜ, AsciiDoctor እና JRuby በራስ-ሰር በ Maven ይወርዳሉ, እና AsciiDoctor በ JRuby አካባቢ ውስጥ ይሰራል: በማሽኑ ላይ ምንም መጫን አያስፈልግም! (ከጥቅሉ በስተቀር graphviz, GraphViz ወይም PlantUML ግራፊክስ ለመጠቀም ከፈለጉ የሚያስፈልገው.) የ .adoc ፋይሎችዎን ወደ አቃፊው ውስጥ ብቻ ያስቀምጡ. src/main/asciidoc/. እዚህ ፡፡ የማስታወስ ምሳሌ, ይህም በስዕላዊ መግለጫዎች ስላይዶችን ይሰበስባል.

ስላይዶችን ወደ ፒዲኤፍ ቀይር

ምንም እንኳን የስላይድ ኤችቲኤምኤል ሥሪት ራሱን የቻለ ቢሆንም የተንሸራታቾች ፒዲኤፍ ሥሪት አሁንም ያስፈልጋል። በመጀመሪያ ፣ ተናጋሪው የራሳቸውን ላፕቶፕ ለማገናኘት እድል በማይሰጡ አንዳንድ ኮንፈረንሶች ላይ ፣ እነሱ በኤችቲኤምኤል ውስጥ እንዳሉ ሳይጠብቁ ተንሸራታቾችን “በ pptx ወይም pdf ቅርጸት በጥብቅ” ይፈልጋሉ። በሁለተኛ ደረጃ፣ በአቀራረቡ ላይ በፒዲኤፍ ፎርማት በኮንፈረንስ ማቴሪያሎች ውስጥ እንዲታተም አዘጋጆቹን ያልተሻሻለ የስላይድ እትም መላክ ጥሩ ነው።

እንደ እድል ሆኖ፣ የ Node.js መገልገያ ይህንን ተግባር ይቋቋማል። የመርከቧ ቴፕመሠረት ላይ የተገነባ ቡችላ - የ Chrome አሳሽ አስተዳደር አውቶማቲክ ስርዓቶች. በትእዛዙ የRevealJS አቀራረብን ወደ ፒዲኤፍ መለወጥ ይችላሉ።

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

በሙከራ እና በስህተት መምጣት የነበረብኝ ዴክታፕ ለማስጀመር ሁለት ዘዴዎች፡-

  • በመለኪያ በኩል መፍታት -s በድርብ ኅዳግ መቀመጥ አለበት፣ ያለበለዚያ በለውጥ ውጤቶች ላይ ችግሮች ሊኖሩ ይችላሉ።

  • በኤችቲኤምኤል የዝግጅት አቀራረብ ዩአርኤል ውስጥ ፣ ልኬቱን ማለፍ አለብዎት ?fragments=true, ይህም ለእያንዳንዱ የስላይድዎ መካከለኛ ሁኔታ የተለየ የፒዲኤፍ ገጽ እንዲፈጥሩ ይፈቅድልዎታል (ለምሳሌ አምስት ገፆች ለአምስት ዝርዝር እቃዎች አንድ በአንድ ከታዩ)። ይህ በሪፖርት ጊዜ እንዲህ ዓይነቱን ፒዲኤፍ በራሱ እንደ ማቅረቢያ እንዲጠቀሙ ይፈቅድልዎታል።

በድር ላይ በራስ-ሰር መሰብሰብ እና ማተም

ለውጦች ወደ ስሪት ቁጥጥር ስርዓት ሲገቡ ስላይዶች በራስ-ሰር ሲገነቡ ምቹ ነው፣ እና ለአጠቃላይ አገልግሎት በይነመረብ ላይ በራስ ሰር የተጠናቀሩ ስላይዶች ሲለጠፉ የበለጠ ምቹ ነው። የኢንተርኔት ስላይዶች ከኢንተርኔት እና ከፕሮጀክተር ጋር ከተገናኘ ከማንኛውም ማሽን በቀላሉ በተመልካች ፊት መጫወት ይችላሉ።

በስራችን ውስጥ GitHubን ስለምንጠቀም, የ CI ስርዓት ተፈጥሯዊ ምርጫ ነው TravisCIእና ዝግጁ-አቀራረቦችን ለማስተናገድ - github.io. ከgithub.io በስተጀርባ ያለው ሀሳብ ማንኛውም የማይንቀሳቀስ ይዘት በቅርንጫፍ ላይ መቀመጡ ነው። gh-pages በ GitHub ላይ ያለው ፕሮጀክትዎ በ ላይ ይገኛል። <ваше имя>.gihub.io/<ваш проект>.

የ TravisCI ውቅር ፋይልን ያጠናቅቁ፣ የገጹን ኤችቲኤምኤል ሥሪት Mavenን በመጠቀም ማጠናቀር፣ ዴክታፕ ተጠቅመው ወደ ፒዲኤፍ መለወጥ እና ውጤቱን ወደ ቅርንጫፍ መስቀልን ጨምሮ። 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 መለጠፍ አለብህ።)

የፕሮጀክት ምሳሌዎች

በመጨረሻም፣ የእራስዎን የአቀራረብ ፕሮጄክቶችን ለመፍጠር ወደ ማቨን ስክሪፕቶች እና CI ውቅር ያላቸው ወደ አንድ ሁለት ምሳሌ ማቅረቢያ ፕሮጄክቶች ያገናኛል፡

የስንብት ፓወር ፖይንት! ለቴክኒካል አቀራረቦች መቼም የምፈልግህ አይመስለኝም 🙂

ምንጭ: hab.com

አስተያየት ያክሉ