AnvÀnd GIT vid dokumentation

Ibland Àr det inte bara sjÀlva dokumentationen som Àr kritisk, utan Àven processen att arbeta med den. Till exempel, i projekten utgör en stor del av arbetet sjÀlva förberedelsen av dokumentationen och en felaktig process kan leda till misstag och till och med förlust av information, vilket i sin tur kan leda till förlust av tid och vinster. Men Àven om detta tema inte Àr centralt i ditt arbete och ligger pÄ periferin, kan rÀtt process fortfarande förbÀttra kvaliteten pÄ dokumentet och spara tid.

Den hÀr metoden, med ett exempel pÄ specifik implementering, har en lÄg tröskel för intrÀde. Tekniskt sett kan du börja arbeta pÄ ett nytt sÀtt redan imorgon.

UppgiftsstÀllande

Du behöver skapa nĂ„got dokument eller en uppsĂ€ttning dokument. Kanske handlar det om projektdokumentation eller loggning av ditt nĂ€tverk, eller nĂ„got enklare, som att du mĂ„ste beskriva processerna i företaget eller avdelningen. Det handlar om vilket dokument eller uppsĂ€ttning dokument som helst med text, bilder, tabeller
 Vi komplicerar uppgiften genom att

  1. detta arbete förutsÀtter samarbete, insatser frÄn en grupp eller flera grupper av medarbetare
  2. och slutresultatet Àr att du vill ha ett dokument i ett visst format, med egenskaper som följer företagets stil, skapat enligt en viss mall. För tydlighetens skull kommer vi att anta att det handlar om MS Word (.docx)

För 10 Är sedan hade tillvÀgagÄngssÀttet varit entydigt: vi skulle ha skapat ett eller flera MS Word-dokument och organiserat arbetet med att göra Àndringar pÄ nÄgot sÀtt.

Och det tillvÀgagÄngssÀttet gÀller fortfarande. Det anvÀnds Àven av stora integratörer vid skapandet av projektdokumentation. Men det Àr intuitivt klart att om du arbetar intensivt med mÄnga Àndringar och diskussioner under en lÀngre tid, Àr detta tillvÀgagÄngssÀtt inte sÀrskilt bekvÀmt.

Exempel

Jag kÀnde av detta problem ganska tydligt nÀr jag arbetade pÄ en stor integrator. Processen för att Àndra projektdokumentationen sÄg ut som följande:

  1. ingenjören laddar ner den senaste versionen av MS Word-dokumentet (.docx)
  2. Àndrar namnet
  3. gör Àndringar i spÄrningslÀge
  4. skickar dokumentet med Àndringarna till arkitekten
  5. skickar ocksÄ en lista med alla korrigeringar och kommentarer
  6. arkitekten analyserar Àndringarna
  7. om allt gÄr bra, kopierar den dataÀndringarna till filen med den senaste versionen, Àndrar versionen och lÀgger ut den pÄ en gemensam resurs
  8. om det finns invÀndningar initieras en diskussion (e-post eller möten)
  9. konsensus uppnÄs
  10. dĂ€refter punkterna 3–9

NÀr arbetet inte var intensivt funkade det i alla fall, men vid en viss punkt blev denna process det svaga lÀnken i hela projektet och ledde till problem. Det handlar om att allt gÄr snett sÄ snart Àndringar görs ofta och samtidigt av flera team.

SĂ„ nĂ€r vi gick in i fasen av preliminĂ€r testning började olika problem dyka upp, och Ă€ven om de var smĂ„ behövde dokumentationen Ă€ndras ofta — fyra olika team, dagligen, praktiskt taget samtidigt, med diskussioner. Alla dessa Ă€ndringar gick genom en ingenjör — arkitekten. Projektets designfil var enorm, och som följd av detta blev arkitekten överhopad med rutinarbete, inklusive mycket kopiering och redigering, gjorde mĂ„nga misstag, behövde alltid dubbelkolla, Ă„ter skicka, och det var nĂ€ra kaos.

I det hÀr fallet fungerade denna metod, metoden för arbete med MS Word-dokument, med stor anstrÀngning och skapade problem.

Git, Markdown

KĂ€nde jag mig tvungen att utforska problemet som beskrevs i exemplet ovan.
Jag sÄg att det blir allt mer populÀrt att anvÀnda Markdown tillsammans med Git vid skapande av dokument.

Git Àr ett verktyg för utveckling. Men varför inte anvÀnda det för dokumentationsprocessen? I det hÀr fallet blir frÄgan om flervalsarbete löst. Men för att fullt ut dra nytta av Git:s möjligheter behöver vi ett textformat för dokumentet, vi mÄste hitta ett annat verktyg, inte MS Word, och för dessa ÀndamÄl passar Markdown utmÀrkt.

Markdown Ă€r ett enkelt textmarkeringssprĂ„k. Det Ă€r avsett för att skapa vackert formaterade texter i vanliga TXT-filformat. Om vi skapar vĂ„ra dokument i Markdown, verkar kopplingen Markdown – Git naturlig.

Och allt skulle vara bra, och pÄ denna punkt skulle man kunna sÀtta punkt, om det inte vore för vÄrt andra villkor: "vi behöver ett dokument i ett visst format, med attribut av företagets stil, skapat enligt en viss mall" (och vi kom överens om att det i detta fall skulle vara MS Word). Det vill sÀga, om vi har beslutat att anvÀnda Markdown, sÄ mÄste vi pÄ nÄgot sÀtt omvandla denna fil till .docx i önskat format.

Det finns program för konvertering mellan olika format, till exempel, Pandoc.
Du kan konvertera en Markdown-fil till .docx-format med detta program.
Men ÀndÄ, man mÄste förstÄ att, för det första, inte allt som finns i Markdown kommer att konverteras till MS Word och, för det andra, MS Word Àr ett helt annat universum jÀmfört med det smidiga, men ÀndÄ lilla, Markdown. Det finns en enorm mÀngd funktioner i Word som inte finns i nÄgot format av Markdown. Man kan inte bara ta och anvÀnda vissa nycklar för Pandoc för att konvertera din Markdown-format till det önskade MS Word-utseendet. SÄ vanligtvis, efter konverteringen, mÄste man "arbeta om" den erhÄllna .docx-dokumentet manuellt, vilket ocksÄ kan vara tidskrÀvande och leda till fel.

Om vi skulle kunna skriva ett skript som automatiskt "slutförde" det som Pandoc inte klarade skulle det vara en idealisk lösning.

PÄ grund av olikheterna i funktionaliteten mellan MS Word och Markdown i allmÀnhet Àr det, tror jag, omöjligt att lösa denna uppgift, men kan detta göras i specifika situationer, med specifika krav? Min erfarenhet har visat att ja, det gÄr, och troligtvis Àr det möjligt för mÄnga, eller kanske till och med de flesta situationer.

Lösningen pÄ ett specifikt problem

SÄ, i mitt fall, efter att ha konverterat filen med hjÀlp av Pandoc, var jag tvungen att göra ytterligare bearbetning av filer manuellt, nÀmligen

  • att lĂ€gga till fĂ€lt med automatisk numrering av rubriker (caption) för tabeller och bilder i Word
  • att Ă€ndra stil för tabeller

Jag kunde inte hitta hur man gör detta med standard (Pandoc) eller kÀnda medel. DÀrför anvÀnde jag ett Python-skript med pywin32 paketet. Resultatet blev full automatisering. Nu kan jag konvertera min Markdown-fil till den önskade formen av MS Word-dokumentet med ett enda kommando.

Se detaljer hÀr.

AnmÀrkning

I det hÀr exemplet kommer jag naturligtvis att konvertera en viss abstrakt Markdown-fil, men exakt samma metod har anvÀnts pÄ ett "battle-ready" dokument, och resultatet blev praktiskt taget samma MS Word-dokument som vi tidigare fÄtt genom manuell formatering.

Generellt sett fÄr vi med pywin32 nÀstan full kontroll över MS Word-dokumentet, vilket gör att vi kan Àndra det och anpassa det till ert företags standard. SjÀlvklart kan dessa mÄl ocksÄ uppnÄs med andra verktyg, som VBA-makron, men det var enklare för mig att anvÀnda python.

Den korta formeln för denna metod Àr:

Markdown + Git -- (nÄgot) --> MS Word

Det spelar inte sÄ stor roll vad "nÄgot" Àr. I mitt fall var det Pandoc och python med pywin32. Kanske har du andra preferenser, men det viktiga Àr att det Àr möjligt. Och det Àr kÀrnan i denna artikel.

Sammanfattningsvis Àr idén att med denna metod arbetar du endast med Markdown-filen och anvÀnder Git för att organisera samarbete och versionskontroll, och endast vid behov (till exempel för att ge dokumentation till en klient) automatiskt skapa en fil i rÀtt format (till exempel MS Word).

Process

Jag tror att för mÄnga Àr formeln ovan tillrÀcklig för att förstÄ hur dokumentationsprocessen nu kan organiseras. Men jag brukar ofta rikta mig mot nÀtverksingenjörer, sÄ jag ska i grova drag visa hur arbetsprocessen nu kan se ut, och hur det skiljer sig frÄn tillvÀgagÄngssÀttet med att redigera MS Word-filer.

För tydlighetens skull, som plattform för arbete med Git vÀljer vi GitHub. DÄ bör du skapa ett repository och placera Markdown-filen eller filerna som du planerar att arbeta med i master-grenen.

Vi kommer att titta pÄ en enkel process baserad pÄ "github flow". En beskrivning av den kan hittas bÄde pÄ nÀtet och pÄ Habré.

Anta att fyra personer arbetar med dokumentationen och du Àr en av dem. DÄ skapas fyra ytterligare grenar (branches), till exempel med namnen pÄ dessa personer. Var och en arbetar lokalt, i sin egen gren, och gör Àndringar med alla nödvÀndiga git-kommandon.

NÀr du har slutfört en viss del av arbetet skapar du en pull request, vilket initierar en diskussion om dina Àndringar. Under diskussionen kan det visa sig att du behöver lÀgga till eller Àndra nÄgot mer. I sÄ fall gör du de nödvÀndiga Àndringarna och skapar en viss pull request. Slutligen godkÀnns dina Àndringar och slÄs ihop (merge) med master-grenen (eller avvisas).

SjÀlvklart Àr detta en ganska allmÀn beskrivning. Jag föreslÄr att ni kontaktar era utvecklare eller finner personer med kunskap för att skapa en mer detaljerad process. Men jag vill pÄpeka att tröskeln för att börja anvÀnda Git Àr ganska lÄg. Detta innebÀr inte att protokollet Àr enkelt, men du kan börja med nÄgot grundlÀggande. Om du inte alls vet nÄgot, tror jag att du kan sÀtta av nÄgra timmar eller kanske dagar för att lÀra dig och installera det sÄ att du kan börja anvÀnda det.

Vad Àr dÄ nyttan med detta tillvÀgagÄngssÀtt jÀmfört med processen som beskrivs i exemplet ovan?

I sjÀlva verket Àr processerna ganska lika, du har bara bytt ut

filkopiering -> skapa en gren (branch)
klistra in text i den slutliga filen -> sammanslagning (merge)
kopiera de senaste Àndringarna till dig -> git pull/fetch
diskussion i korrespondensen -> pull requests
spÄrningslÀge -> git diff
den senaste godkÀnda versionen -> master-gren
backup (kopiera till en fjÀrrserver) -> git push



PÄ sÄ sÀtt har du automatiserat allt som du annars skulle behöva göra, men manuellt.

PÄ en högre nivÄ gör detta att du

  • kan skapa en tydlig, enkel och kontrollerad process för Ă€ndringar av dokumentation
  • eftersom det slutliga dokumentet (i vĂ„rt exempel MS Word) genereras automatiskt, minskar det risken för fel relaterade till formatering

AnmÀrkning

Med detta sagt tror jag att det Àr uppenbart att Àven om du arbetar ensam med dokumentationen, kan anvÀndning av Git avsevÀrt förenkla ditt arbete.

Allt detta förbĂ€ttrar kvaliteten pĂ„ dokumentationen och minskar tiden för dess skapande. Och en liten bonus — du kommer att lĂ€ra dig Git, vilket kommer att hjĂ€lpa dig i automatiseringen av ditt nĂ€tverk 🙂

Hur gÄr man över till den nya processen?

I början av artikeln skrev jag att du redan imorgon kan börja arbeta pÄ ett nytt sÀtt. Hur gÄr du över din arbetsmetod till ett nytt spÄr?

HÀr Àr en sekvens av steg som du troligen mÄste följa:

  • om ditt dokument Ă€r vĂ€ldigt stort, dela upp det i delar
  • konvertera varje del till Markdown (med Pandoc, till exempel)
  • installera en av Markdown-redigerarna (jag anvĂ€nder Typora)
  • du kommer förmodligen behöva justera formateringen av de skapade Markdown-dokumenten
  • börja tillĂ€mpa processen som beskrivs i föregĂ„ende kapitel
  • samtidigt kan du börja anpassa konverteringsscriptet för ditt syfte (eller skapa nĂ„got eget)

Du behöver inte vĂ€nta tills du har skapat och debuggar omvandlingsmekanismen Markdown -> önskat dokumentutseende perfekt. Faktum Ă€r att Ă€ven om du inte lyckas automatisera omvandlingen av dina Markdown-filer helt och hĂ„llet snabbt kan du fortfarande göra det pĂ„ nĂ„got sĂ€tt med Pandoc och sedan fĂ„ det till det slutgiltiga utseendet manuellt. Vanligtvis behöver du inte göra detta ofta, utan bara i slutet av vissa steg, och detta manuella arbete, Ă€ven om det Ă€r obekvĂ€mt, Ă€r enligt min mening helt acceptabelt under debug-fasen och bör inte kraftigt „bromsa“ processen.

Allt annat (Markdown, Git, Pandoc, Typora) Àr redan klart och krÀver inte sÀrskilda anstrÀngningar eller tid för att börja arbeta med dem.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster