Kasutage GIT-i dokumenteerimisel

MÔnikord vÔib mitte ainult dokumentatsioon ise, vaid ka selle koostamise protsess olla kriitilise tÀhtsusega. NÀiteks projektide puhul on suur osa tööst seotud dokumentatsiooni ettevalmistamisega ning vale protsess vÔib viia vigadeni ja isegi teabe kaotamiseni, mis omakorda pÔhjustab ajakulu ja kahjumit. Kuid isegi kui see teema ei ole teie töös keskne ja jÀÀb perifeeriasse, vÔib Ôige protsess siiski parandada dokumendi kvaliteeti ja sÀÀsta aega.

Toodud lÀhenemine, konkreetse rakenduse nÀitega, on madala sisenemisbarjÀÀriga. Tehniliselt vÔite juba homme alustada uut lÀhenemist.

Ülesande seadmine

Teil on vaja luua mingi dokument vĂ”i dokumentide kogum. Olgu see projektidokumentatsioon vĂ”i teie vĂ”rgu protokollimine, vĂ”i midagi lihtsamat, nĂ€iteks peate kirjeldama ettevĂ”tte vĂ”i teie osakonna protsesse. KokkuvĂ”ttes rÀÀgime igasugustest dokumentidest vĂ”i dokumentide kogumist, kus on tekst, pildid, tabelid... Teeme ĂŒlesande keerulisemaks, et

  1. see töö eeldab koostööd, grupi vĂ”i mitme töötajate rĂŒhma pingutusi.
  2. vÀljatulev dokument peab olema teatud vormingus, ettevÔtte stiili atribuudi siin, loodud teatud ƥablooni jÀrgi. TÀpsuse huvides oletame, et see on MS Word (.docx)

10 aastat tagasi oleks lĂ€henemine olnud ĂŒheselt mĂ”istetav: oleksime loonud MS Wordi dokumendi vĂ”i dokumendid ja korraldanud muudatusetööd mingil viisil.

Ja see lÀhenemine kehtib endiselt. Seda kasutavad ka suured integratsiooniettevÔtted projektidokumendi loomisel. Kuid intuitiivselt on selge, et kui töötab tÔeliselt intensiivselt, paljude muudatuste ja aruteludega, pika aja jooksul dokumendi kallal, ei ole see lÀhenemine vÀga mugav.

NĂ€ide

Otsisin seda probleemi teravalt, töötades ĂŒhe suure integratoriga. Projektidokumentide muutmise protsess oli jĂ€rgmine:

  1. insener allalaadib viimase versiooni MS Word (.docx) dokumendist
  2. muudab pealkirja
  3. teeb muudatused track-reĆŸiimis
  4. saadab redigeeritud dokumendi arhitektile
  5. saadab ka kÔigi muudatuste loetelu kommentaaridega
  6. arhitekt analĂŒĂŒsib muudatusi
  7. kui kĂ”ik on korras, siis kopeerib see andmete muutused viimase versiooniga faili, muudab versiooni ja avaldab selle ĂŒhisesse ressurssi
  8. kui on mÀrkusi, algatatakse arutelu (e-kiri vÔi kohtumised)
  9. saavutatakse konsensus
  10. jĂ€rgmiseks punktid 3–9

Kuigi töö ei olnud intensiivne, toimis see kuidagi, aga ikkagi töötas. Kuid teatud hetkel sai see protsess kogu projekti kitsaskohaks ja pÔhjustas probleeme. Asi on selles, et kÔik lÀheb kehvasti, kui muudatusi tehakse tihti ja samal ajal mitme meeskonna poolt.

Nii, kui me lĂ€ksime ettevalmistustestimise faasi, hakkasid ilmuma erinevad probleemid ja kuigi need olid vĂ€ikesed, tuli dokumentatsiooni sageli muuta - neli erinevat meeskonda, iga pĂ€ev, praktiliselt samal ajal, aruteludega. KĂ”ik need muudatused lĂ€bisid ĂŒhe inseneri - arhitekti. Projekti disainifail oli tohutu ja seega oli arhitekt koormatud rutiinse tööga, mis oli seotud suure hulga kopeerimise ja redigeerimisega, tegi palju vigu, tuli kĂ”ik uuesti kontrollida, ĂŒmber saata, ja ĂŒldiselt oli see lĂ€hedal kaoseni.

Selles olukorras töötas MS Wordi dokumentide töötlemise lÀhenemine suure skripti ja probleemide loomisega.

Git, Markdown

Silmunes eespool kirjeldatud probleemiga, hakkasin seda teemat uurima.
Olen mĂ€rganud, et ĂŒha populaarsemaks on muutumas Markdown koos Git dokumentide loomisel.

Git on arendusvahend. Kuid miks mitte kasutada seda dokumentide koostamise protsessis? Sellisel juhul on mitme kasutaja töö kĂŒsimus lahendatud. Kuid et Git'i vĂ”imalusi tĂ€ielikult Ă€ra kasutada, vajame dokumendi tekstivormingut ning peame leidma teise tööriista, mitte MS Wordi, ja selleks sobib suurepĂ€raselt Markdown.

Markdown on lihtne tekstiformaadimise keel. See on mĂ”eldud kaunis vormindatud tekstide loomiseks tavapĂ€rastes TXT-formaadiga failides. Kui loome meie dokumendid Markdownis, siis tundub Markdown — Git ĂŒhendus loomulik.

Ja kĂ”ik oleks hĂ€sti, ja just siin vĂ”iks punkti panna, kui mitte meie teine tingimus: „me vajame vĂ€ljundina dokumenti kindlas formaadis, ettevĂ”tte stiili atribuutidega, mis on loodud kindla malliga“ (ning me leppisime alguses kokku, et selleks on MS Word). Seega, kui oleme otsustanud kasutada Markdown'i, peame oma faili kuidagi teisendama soovitud .docx formaati.

On olemas konversiooniprogramme erinevate formaatide vahel, nÀiteks, Pandoc.
Saate konverteerida Markdown faili .docx formaati selle programmiga.
Kuid siiski, tuleb mÔista, et, esiteks, mitte kÔik, mis on Markdown'is, ei konverteeru MS Wordi ning, teiseks, MS Word on terviklik riik vÔrreldes kompaktse, kuid siiski vÀikese linnaga, Markdown. Wordis on tohutult palju funktsioone, mida Markdown'is ei ole. Ei saa lihtsalt vÔtta ja teatud Pandoc'i vÔtit kasutades konverteerida oma Markdown formaati soovitud MS Word'i kuvandisse. SeetÔttu tuleb tavaliselt pÀrast konversiooni saadud .docx dokumenti kÀsitsi "tÀiendama", mis omakorda vÔib olla ajakulukas ja viia vigadeni.

Kui me suudaksime kirjutada skripti, mis automaatselt «tĂ€iendaks» seda, millega Pandoc hakkama ei saa — see oleks ideaalne lahendus.

TĂ€nu MS Wordi ja Markdowni funktsioonide erinevustele ĂŒldiselt on selle probleemi lahendamine minu arvates vĂ”imatu, kuid kas on vĂ”imalik seda konkreetsete olukordade, spetsiifiliste nĂ”udmiste alusel teha? Minu kogemus on nĂ€idanud, et jah, see on vĂ”imalik ja tĂ”enĂ€oliselt sobib see paljudele, vĂ”ib-olla isegi enamikule olukordadele.

Spetsiifilise ĂŒlesande lahendus

Nii et minu puhul, pÀrast faili konversiooni Pandoci abil, pidin ma kÀsitsi tegema tÀiendavat töötlemist, nimelt

  • lisama Wordis automaatse numeerimisega pealkirjade (caption) vĂ€ljad tabelitele ja piltidele
  • muutma tabelite stiili

Ma ei leidnud, kuidas seda teha standardsete (Pandoc) vĂ”i tuntud vahendite abil. SeetĂ”ttu kasutasin python skripti koos pywin32 paketiga. Tulemuseks oli tĂ€ielik automatiseerimine. NĂŒĂŒd vĂ”in konverteerida oma Markdown faili soovitud MS Word dokumendi vormingusse ĂŒhe kĂ€suga.

Vaadake detaile siit.

MĂ€rkus

Selles nÀites muudan ma kindlasti mingit abstraktset Markdown faili, kuid tÀpselt sama lÀhenemist on rakendatud ka «töödokumentidele», ja tulemuseks sain ma praktiliselt tÀpselt sama MS Wordi dokumendi, mille olime eelnevalt saanud kÀsitsi vormindamisega.

Üldiselt saame pywin32 abil praktiliselt tĂ€ieliku kontrolli MS Wordi dokumendi ĂŒle, mis vĂ”imaldab seda muuta ja viia vastavusse teie ettevĂ”tte standarditega. Loomulikult on sama eesmĂ€rgiga saanud hakkama ka teiste tööriistade, nĂ€iteks VBA makrode, kasutamine, kuid mulle oli mugavam kasutada Pythonit.

Selle lĂ€henemise lĂŒhike valem:

Markdown + Git -- (midagi) --> MS Word

Ei ole nii oluline, millega on tegu «millegagi». Minu puhul oli see Pandoc ja Python koos pywin32-ga. VÔib-olla on teil teised eelistused, kuid oluline on, et see on vÔimalik. Ja see ongi selle artikli peamine sÔnum.

KokkuvÔttes on idee, et sellise lÀhenemisega töötate te ainult Markdown failiga ja kasutate Git'i koostöö korraldamiseks ja versioonide kontrollimiseks, ning ainult vajadusel (nÀiteks dokumentatsiooni kliendile esitamiseks) genereerite automaatselt soovitud formaadis faili (nÀiteks MS Wordi).

Protsess

Arvan, et paljudele on ĂŒlaltoodud valem piisav, et mĂ”ista, kuidas nĂŒĂŒd saab dokumentatsiooniga töötamise protsess korraldatud. Siiski orienteerun tavaliselt vĂ”rguinseneridele, seega nĂ€itan lĂŒhidalt, kuidas vĂ”ib nĂŒĂŒd tööprotsess vĂ€lja nĂ€ha ja milles see erineb MS Wordi failide redigeerimise lĂ€henemisest.

Selguse huvides valime Giti töötamiseks platvormiks GitHubi. Siis peate looma repository ja master harusse panema Markdown faili vÔi faile, millega kavatsete töötada.

Kuidas nĂ€eb vĂ€lja lihtne protsess, mis pĂ”hineb «github flow’il». Selle kirjeldust vĂ”ib leida nii internetist kui ka Habrast..

Oletame, et dokumentatsiooni kallal töötab neli inimest ja teie olete ĂŒks neist. Siis luuakse neli tĂ€iendavat harusid (branch), nĂ€iteks nende inimeste nimede pĂ”hjal. IgaĂŒks töötab kohapeal, oma harus ja teeb muudatuseid kĂ”igi vajalike git kĂ€skudega..

Töötades mĂ”ne konkreetse ĂŒlesande kallal, lood te pull request'i, mis alustab teie muudatuste arutelu. Arutelu kĂ€igus vĂ”ib selguda, et peate lisama vĂ”i muutma midagi veel. Sellisel juhul teete vajalikud muudatused ja loote uue pull request'i. LĂ”puks teie muudatused aktsepteeritakse ja ĂŒhendatakse (merge) master haruga (vĂ”i need lĂŒkatakse tagasi).

Muidugi, see on ĂŒsna ĂŒldine kirjeldus. Soovitan, et loote detailse protsessi koostamiseks pöörduda oma arendajate poole vĂ”i leida asjatundlikke inimesi. Pean siiski mĂ€rkima, et Git'i Ă”ppimiskĂŒnnis on ĂŒsna madal. See ei tĂ€henda, et protokoll oleks lihtne, kuid vĂ”ite alustada lihtsast. Kui te ei tea sellest ĂŒldse midagi, siis arvan, et paari tunni vĂ”i vĂ”ib-olla pĂ€eva jooksul Ă”ppimise ja seadistamisega saate hakata seda kasutama.

Milline on selle lĂ€henemise eelis vĂ”rreldes nĂ€iteks ĂŒlaltoodud nĂ€ite protsessiga?

Tegelikult on protsessid ĂŒsna sarnased, lihtsalt olete asendanud

faili kopeerimise -> haru (branch) loomisega
teksti kopeerimise sihtfaili -> ĂŒhendamisega (merge)
viimaste muudatuste kopeerimine enda juurde -> git pull/fetch
arutelu vestluses -> pull requests
jĂ€lgimisreĆŸiim -> git diff
viimane kinnitatud versioon -> master haru
varukoopia (kopeerimine kaugserverisse) -> git push



Nii olete automatiseerinud kÔik selle, mida pidite varem manuaalselt tegema.

KÔrgemal tasemel vÔimaldab see teil

  • luua selge, lihtne ja kontrollitav muudatuste protsess dokumentatsioonis
  • kuna lĂ”plik dokument (meie nĂ€ites MS Word) luuakse automaatselt, vĂ€hendab see vormindamisvigade tĂ”enĂ€osust

MĂ€rkus

Seega on ilmselge, et isegi kui töötate dokumentatsiooniga ĂŒksi, vĂ”ib Git oluliselt teie tööd lihtsustada

KĂ”ik see tĂ”stab dokumentatsiooni kvaliteeti ja vĂ€hendab selle loomise aega. Ja veel ĂŒks vĂ€ike boonus — Ă”pite Git'i, mis aitab teil oma vĂ”rgu automatiseerimisel 🙂

Kuidas minna ĂŒle uue protsessi juurde?

Artikli alguses ĂŒtlesin, et juba homme saate alustada uue töötamise viisiga. Kuidas viia oma töö uude suunda?

Siin on samm-sammult juhis, mille tÔenÀoliselt peate lÀbi viima:

  • kui teie dokument on vĂ€ga suur, jagage see osadeks
  • konverteerige iga osa Markdowni (nt Pandoci abil)
  • paigaldage ĂŒks Markdowni redaktoritest (mina kasutan Typora)
  • on tĂ”enĂ€oliselt vajalik kohandada loodud Markdown dokumentide vormindust
  • hakake jĂ€rgima eelnevas peatĂŒkis kirjeldatud protsessi
  • samuti hakkake kohandama konversiooniskeemi oma vajadustele (vĂ”i looge midagi uut)

Te ei pea ootama, kuni loote ja silutate tĂ€ielikult automatiseeritud Markdown -> soovitud dokumendi vormingu. Isegi kui te ei suuda kiiresti tĂ€ielikult automatiseerida oma Markdowni failide konverteerimise protseduuri, on teil endiselt vĂ”imalik seda mingil kujul teha Pandoci abil ja seejĂ€rel kĂ€sitsi lĂ”pule viia. Tavaliselt ei pea te seda tihti tegema, vaid vaid teatud etappide lĂ”pus, ja see kĂ€sitöö, ehkki ebamugav, on minu arvates tĂ€iesti talutav silumise etapis ja ei peaks oluliselt „pidurdama” protsessi.

KÔik muu (Markdown, Git, Pandoc, Typora) on juba valmis ja ei vaja erilisi jÔupingutusi ega aega, et nendega alustada.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster