Kasutage GIT-i dokumenteerimisel

MÔnikord vÔib mitte ainult dokumentatsioon ise, vaid ka tööprotsess selle kallal olla kriitiline. NÀiteks projektide puhul on suur osa tööst seotud just dokumentatsiooni ettevalmistamisega ning vale protsess vÔib viia vigadeni ja isegi teabe kaotamiseni, seega ka aja ja kasumi kaotamiseni. Kuid isegi kui see teema ei ole teie töös keskne ja asub perifeerias, vÔib Ôige protsess siiski parandada dokumendi kvaliteeti ja sÀÀsta teie aega.

Siin esitatud lÀhenemine, koos konkreetse rakenduse nÀitega,on madala sisenemise tÔkete tasemega. Tehniliselt vÔite juba homme alustada uue lÀhenemise rakendamist.

Ülesande seadmine

Vajate mingisuguse dokumendi vĂ”i dokumentide kogumi loomist. See vĂ”ib olla projektidokumendid vĂ”i teie vĂ”rgu protokollimine, vĂ”i midagi lihtsamat, nĂ€iteks peate kirjeldama protsesse oma ettevĂ”ttes vĂ”i osakonnas. ÜhesĂ”naga, te rÀÀgite igasugustest dokumentidest vĂ”i dokumentide kogumitest, mis sisaldavad teksti, pilte, tabeleid... Teeme ĂŒlesande keerukamaks, kuna

  1. see töö eeldab koostööd, grupi vÔi mitme grupi töötajate pingutust.
  2. LÔpuks tahate, et dokument oleks teatud formaadis, koos ettevÔtte stiili atribuutidega ja loodud vastavalt kindlale mallile. Oletame, et see on MS Word (.docx).

10 aastat tagasi oleks lĂ€henemine olnud ĂŒhemĂ”tteline: me oleksime loonud MS Wordi dokumendi vĂ”i dokumendid ja korraldanud töö muudatuste tegemiseks.

Ja see lÀhenemine kehtib endiselt. Seda kasutavad ka suured integreerijad projektidokumendi koostamisel. Kuid intuitiivselt on selge, et kui te tÔeliselt intensiivselt töötate dokumendi kallal suurte muudatuste ja aruteludega pikema aja jooksul, pole see lÀhenemine just mugav.

NĂ€ide

Kogesin seda probleemi teravalt, töötades ĂŒhes suures integreerijas. Projektidokumendi muutmise protsess oli jĂ€rgmine:

  1. insener laadib alla viimase versiooni MS Word (.docx) dokumendist,
  2. muudab pealkirja,
  3. teeb muudatused jÀlgimismoodulis,
  4. saadab dokumendi muudatustega arhitektile,
  5. saadab samuti nimekirja kÔigist muudatustest koos kommentaaridega.
  6. arhitekt analĂŒĂŒsib muudatusi,
  7. kui kÔik on korras, kopeerib ta muudatused viimase versiooniga, muudab versiooni ja paneb selle avalikku ressurssi.
  8. Kui on mÀrkusi, algatatakse arutelu (e-post vÔi koosolekud)
  9. Saavutatakse konsensus
  10. Edasi liikuda punktide 3–9 juurde

Kuna töö ei olnud intensiivne, töötas see kuidagi, kuid hoolimata sellest, et töö oli keerdne, muutus see siiski ĂŒhel hetkel kogu projekti kitsaskohaks ja tĂ”i kaasa probleeme. Asi on selles, et kĂ”ik muutub halvaks, kui muudatusi tehakse tihti ja samaaegselt mitme meeskonna poolt.

Nii kui me jĂ”udsime eeltestimise staadiumisse, hakkasid ilmuma erinevad probleemid ja kuigi need olid vĂ€ikesed, tuli dokumentatsiooni pidevalt muuta — neli erinevat meeskonda, igapĂ€evaselt, praktiliselt samaaegselt, koos aruteludega. KĂ”ik need muudatused lĂ€bisid ĂŒhe inseneri — arhitekti. Projekti disainifail oli tohutu ja seetĂ”ttu oli arhitekt koormatud rutiinse tööga, mis oli seotud suure hulga kopeerimise ja redigeerimisega, tegi palju vigu, pidin kĂ”ik ĂŒle kontrollima, uuesti saatma ja see oli ĂŒldiselt peaaegu kaos.

Antud juhul toimis see lÀhenemisviis, MS Word dokumendi töötamise lÀhenemine, suure vaevaga ja pÔhjustas probleeme.

Git, Markdown

Seistes silmitsi eespool toodud nĂ€ites kirjeldatud probleemiga, hakkasin seda kĂŒsimust uurima.
NÀgin, et jÀrjest populaarsemaks muutub Markdown koos Git dokumentide loomisel.

Git on arendustööriist. Aga miks mitte kasutada seda dokumenteerimise protsessis? Sel juhul kaob mitme kasutaja töö kĂŒsimus. Kuid Git'i tĂ€ielike vĂ”imete kasutamiseks vajame dokumendi tekstiformaati, peame leidma teise tööriista, mitte MS Word'i ja nende eesmĂ€rkide jaoks sobib suurepĂ€raselt Markdown.

Markdown on lihtne tekstiformaatimise keel. See on ette nĂ€htud kaunite tekstide loomiseks tavalistes TXT-vormingus failides. Kui me loome oma dokumendid Markdown'is, siis nĂ€eb Markdown - Git ĂŒhendus loomulik vĂ€lja.

KĂ”ik oleks hĂ€sti, ja sel kohal vĂ”iks punkti panna, kui mitte meie teine tingimus: „me vajame vĂ€ljundina dokumenti kindlas formaadis, ettevĂ”tte brĂ€ndinguga, loodud kindla malliga“ (ja me leppisime alguses kokku, et selleks on MS Word). See tĂ€hendab, et kui me otsustame kasutada Markdown'i, siis peame kuidagi selle faili vajalikku .docx formaati ĂŒmber töötlema.

On olemas erinevate formaatide konversiooniprogrammid, nÀiteks, Pandoc.
Sa saad konverteerida Markdown faili .docx formaati selle programmi abil.
Kuid ikkagi tuleb aru saada, et esiteks ei konverteerita kĂ”ike, mis Markdown'is on, MS Wordi ning teiseks on MS Word hoopis laiem maailm vĂ”rreldes kompaktse, kuid siiski vĂ€ikese Markdowniga. Wordis on ĂŒksikkuid funktsioone, mida ei ole Markdownis. Sa ei saa lihtsalt vĂ”tta ja teatud vĂ”tmete abil Pandoc'iga konverteerida oma Markdown formaati soovitud MS Wordi vormingusse. Seega tuleb tavaliselt pĂ€rast konversiooni saadud .docx dokumenti kĂ€sitsi „tĂ€iendama“, mis jĂ€lle vĂ”ib olla ajakulukas ja viia vigadeni.

Kui me suudaksime kirjutada skripti, mis automaatselt „tĂ€iendaks“ seda, millega Pandoc ei suutnud hakkama saada – see oleks ideaalne lahendus.

Kuna MS Wordi ja Markdowni funktsionaalsus ei ole ĂŒldiselt identne, arvan, et selle ĂŒlesande lahendamine on vĂ”imatu, kuid kas on vĂ”imalik seda teha antud spetsiifiliste olukordade ja nĂ”udmiste kohaselt? Minu kogemus on nĂ€idanud, et jah, see on vĂ”imalik ja tĂ”enĂ€oliselt toimub see paljude, vĂ”i isegi enamikus olukordades.

Kohaliku ĂŒlesande lahendus

Nii et minu puhul pidin pÀrast faili konverteerimist Pandoc'iga kÀesolevat faili kÀsitsi edasi töötlema, nimelt

  • lisama Wordi automaatse nummerdamise vĂ€ljad tabelite ja piltide pealkirjade (caption) jaoks
  • muutma tabelite stiili

Ma ei leidnud, kuidas seda teha tavaliste (Pandoc) vĂ”i tuntud vahenditega. SeetĂ”ttu rakendasin python skripti koos pywin32 paketiga. Tulemuseks oli tĂ€ielik automatiseerimine. NĂŒĂŒd saan konverteerida oma Markdown faili vajaliku MS Wordi dokumendi vormingusse ĂŒhe kĂ€suga.

Vaata ĂŒksikasju siin.

Note

Selles nÀites muundan ma muidugi mingit abstraktset Markdown faili, kuid tÀpselt sama lÀhenemist on rakendatud ka "töökohustuse" dokumendi puhul, ja lÔpptulemusena sain ma peaaegu identsed MS Word dokumendid, mille olime varem kÀsitsi vormindanud.

KokkuvĂ”ttes annab pywin32 meile praktiliselt tĂ€ieliku kontrolli MS Word dokumendi ĂŒle, mis vĂ”imaldab seda muuta ja viia selliseks, nagu teie ettevĂ”tte standard nĂ”uab. Loomulikult oleks sama eesmĂ€rki saanud saavutada ka teiste tööriistadega, nĂ€iteks VBA makrodega, kuid mulle oli mugavam kasutada Pythonit.

Selle lĂ€henemise lĂŒhike valem:

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

Pole nii oluline, mis on see "midagi". Minu puhul olid need 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 selles, et sellise lÀhenemise korral töötate ainult Markdown failiga ja kasutate Git'i koostöö korraldamiseks ja versioonide haldamiseks, ja ainult vajaduse korral (nÀiteks kliendile dokumentatsiooni esitamiseks) genereerite automaatselt vajaliku formaadi faili (nÀiteks MS Word).

Protsess

Arvan, et paljudele on ĂŒlaltoodud valem piisav, et mĂ”ista, kuidas nĂŒĂŒd vĂ”iks dokumentatsiooni protsess korraldatud olla. Kuid siiski suunan end tavaliselt vĂ”rguinseneride poole, seega nĂ€itan ĂŒldiselt, kuidas protsess nĂŒĂŒd vĂ€lja nĂ€eks, ja kuidas see erineb MS Wordi failide redigeerimise lĂ€henemisest.

Selguse huvides valime Git'i töötamiseks GitHub'i platvormi. Siis peate looma repositooriumi ja master haru, kuhu paigutate Markdown faili vÔi failid, millega kavatsete töötada.

KÀsitleme lihtsat protsessi, mis pÔhineb "github flow"'l. Selle kirjelduse leiate nii internetist kui ka Habrast.

Eeldame, et dokumentatsiooni kallal töötab neli inimest ja olete ĂŒks neist. Selle tulemusena luuakse neli tĂ€iendavat haru (branch), nĂ€iteks nende inimeste nimedega. IgaĂŒks töötab kohalikult, oma harus ja teeb muudatusi kĂ”igi vajalike git kĂ€skude abil..

Töötades ĂŒhe lĂ”ppenud projekti kallal, loote te pull request'i, kĂ€ivitades sellega arutelu teie muudatuste ĂŒle. Arutelu kĂ€igus vĂ”ib selguda, et peate midagi lisama vĂ”i muutma. Sel juhul teete vajalikke muudatusi ja loote tĂ€iendava pull request'i. LĂ”puks vĂ”etakse teie muudatused vastu ja need liidetakse (merge) master haruga (vĂ”i lĂŒkatakse tagasi).

Loomulikult on see ĂŒsna ĂŒldine kirjeldus. Et luua detailne protsess, soovitan pöörduda oma arendajate poole vĂ”i otsida teadlikke inimesi. Kuid tahan mĂ€rkida, et Git'i kasutamiskĂŒnnis on ĂŒsna madal. See ei tĂ€henda, et protokoll oleks lihtne, kuid saate alustada millegi lihtsaga. Kui te ei tea sellest ĂŒldse midagi, siis arvan, et kulutades paar tundi vĂ”i vĂ”ib-olla pĂ€evi Ă”ppimisele ja seadistamisele, vĂ”ite hakata seda kasutama.

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

Tegelikult on protsessid ĂŒsna sarnased, te olete lihtsalt asendanud

faili kopeerimine -> haru (branch) loomine
teksti kopeerimine lÔppfaili -> liitmine (merge)
uusimate muudatuste kopeerimine enda juurde -> git pull/fetch
arutelu kirjavahetuses -> pull request'id
track mode -> git diff
viimane kinnitatud versioon -> master haru
varundamine (kopeerimine kaugserverisse) -> git push



Nii olete automatiseerinud kÔik selle, mida pidite kÀsitsi tegema.

KÔrgemal tasemel vÔimaldab see teil

  • luua selge, lihtsa ja kontrollitava muudatuste protsessi dokumentatsioonis
  • kuna lĂ”ppdokument (meie nĂ€ites MS Word) luuakse automaatselt, vĂ€hendab see vormindamisega seotud vigade tĂ”enĂ€osust

Note

Eeltoodust tulenevalt on ilmne, et isegi kui töötate dokumentatsiooniga ĂŒksi, vĂ”ib Git'i kasutamine teie tööd oluliselt lihtsustada.

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

Kuidas ĂŒleminek uuele protsessile?

Artikli alguses kirjutasin, et juba homme vÔite hakata uut moodi tööle. Kuidas viia oma töö uude suunda?

Siin on sammude jÀrjestus, mida peate tÔenÀoliselt jÀrgima:

  • kui teie dokument on vĂ€ga suur, jagage see osadeks
  • muutke iga osa Markdowniks (nĂ€iteks Pandoci abil)
  • installige mĂ”ni Markdown toimetaja (mina kasutan Typora)
  • tĂ”enĂ€oliselt peate kohandama loodud Markdown dokumentide vormindust
  • hakake rakendama protsessi, mida on kirjeldatud eelnevas peatĂŒkis
  • samal ajal hakake kohandama konversiooniskripti oma ĂŒlesande jaoks (vĂ”i looge midagi oma)

Te ei pea ootama, kuni olete loonud ja tĂ€iuslikuks viimistlenud Markdown -> soovitud dokumendi vormingusse konverteerimise mehhanismi. Fakt on see, et isegi kui te ei suuda kiiresti tĂ€iuslikult automatiseerida oma Markdowni failide teisendamise protseduuri, on teil ikka vĂ”imalik seda mingil kujul teha Pandoci abil ja seejĂ€rel viia see lĂ”ppvormi kĂ€sitsi. Tavaliselt ei pea te seda sageli tegema, vaid ainult teatud etappide lĂ”pus, ja see kĂ€sitsi töö, kuigi ebamugav, on siiski minu arvates tĂ€iesti aktsepteeritav tĂ”rgete parandamise etapil ega tohiks protsessi oluliselt „pidurdada“.

KÔik muu (Markdown, Git, Pandoc, Typora) on juba valmis ja ei vaja erilisi pingutusi vÔi aega, et alustada nende kasutamist.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster