Bruk GIT ved dokumentasjon

Noen ganger kan ikke bare selve dokumentasjonen, men ogsÄ prosessen med Ä arbeide med den, vÊre kritisk. For eksempel, i tilfelle av prosjekter, er en stor del av arbeidet knyttet til forberedelsen av dokumentasjonen, og en feil prosess kan fÞre til feil og til og med tap av informasjon, og dermed ogsÄ tap av tid og fortjeneste. Men selv om dette emnet ikke er sentralt i arbeidet ditt og befinner seg pÄ periferien, kan en riktig prosess fortsatt forbedre kvaliteten pÄ dokumentet og spare deg for tid.

TilnÊrmingen som er presentert her, med et eksempel pÄ konkret implementering, har lav inngangsbarriere. Teknisk sett kan du allerede i morgen begynne Ä jobbe pÄ en ny mÄte.

Definering av oppgaven

Du mÄ lage et dokument eller et sett med dokumenter. Det kan vÊre prosjekt- eller nettverksdokumentasjon, eller noe enklere, for eksempel at du mÄ beskrive prosessene i selskapet eller avdelingen din. Generelt handler det om hvilket som helst dokument eller sett med dokumenter med tekst, bilder, tabeller... La oss komplisere oppgaven med at

  1. dette arbeidet forutsetter samarbeid, innsats fra en gruppe eller flere grupper ansatte
  2. og pÄ slutten Þnsker du Ä ha et dokument i et bestemt format, med attributter av bedriftsidentitet, laget etter en bestemt mal. For klarhetens skyld, la oss anta at dette er MS Word (.docx)

For 10 Är siden ville tilnÊrmingen vÊrt entydig: vi ville laget MS Word-dokumentet eller -dokumentene og pÄ en eller annen mÄte organisert arbeidet med endringene.

Og denne tilnÊrmingen er fortsatt gyldig. Den brukes av blant annet store integratorer nÄr de lager prosjekt- dokumentasjon. Men det er intuitivt forstÄelig at hvis du virkelig jobber intensivt, med mange endringer og diskusjoner, over en lengre periode med ett dokument, er denne tilnÊrmingen ikke veldig praktisk.

Eksempel

Jeg opplevde dette problemet ganske sterkt mens jeg jobbet i en stor integrator. Prosessen for Ă„ endre prosjekt- dokumentasjonen var som fĂžlger:

  1. ingeniĂžren laster ned den siste versjonen av MS Word (.docx)-dokumentet
  2. endrer navnet
  3. foretar endringer i sporingsmodus
  4. sender dokumentet med endringer til arkitekten
  5. sender ogsÄ en liste over alle endringer med kommentarer
  6. arkitekten analyserer endringene
  7. hvis alt ser bra ut, kopierer han dataene inn i filen med den siste versjonen, endrer versjonen og legger den ut pÄ en felles ressurs
  8. hvis det er bemerkninger, vil det bli initiert en diskusjon (e-post eller mĂžter)
  9. det oppnÄs enighet
  10. deretter punktene 3 - 9

SÄ lenge arbeidet ikke har vÊrt intensivt, har det pÄ en eller annen mÄte fungert. Men pÄ et bestemt tidspunkt ble denne prosessen et flaskehals i hele prosjektet og fÞrte til problemer. NÄr endringer skjer ofte og samtidig av flere team, blir det vanskelig.

Da vi gikk over til stadiet med forhĂ„ndstesting, begynte forskjellige problemer Ă„ dukke opp, og selv om det var smĂ„ting, mĂ„tte vi ofte endre dokumentasjonen — fire forskjellige team, daglig, nesten samtidig, med diskusjoner. Alle disse endringene gikk gjennom Ă©n ingeniĂžr — arkitekten. Filen med prosjektets design var enorm, som et resultat var arkitekten overbelastet med rutinearbeid som involverte mye kopiering, redigering, gjorde mange feil, mĂ„tte sjekkes og sendes pĂ„ nytt, og det var generelt nĂŠr kaos.

I dette tilfellet fungerte denne tilnĂŠrmingen, arbeid med MS Word-dokumentet, med stor motgang og skapte problemer.

Git, Markdown

Da jeg stod overfor problemet beskrevet i eksemplet ovenfor, begynte jeg Ä undersÞke dette spÞrsmÄlet.
Jeg sÄ at det ble mer og mer populÊrt Ä bruke Markdown sammen med Git i opprettelsen av dokumenter.

Git er et verktÞy for utvikling. Men hvorfor ikke bruke det til dokumentasjonsprosessen? PÄ denne mÄten blir spÞrsmÄlet om flermannsarbeid lÞst. Men for Ä fullt utnytte mulighetene med Git trenger vi et tekstformat for dokumentet, og vi trenger Ä finne et annet verktÞy, ikke MS Word, og til dette formÄlet passer Markdown utmerket.

Markdown er et enkelt markeringssprÄk. Det er ment for Ä lage vakkert utformede tekster i vanlige TXT-filer. Hvis vi lager dokumentene vÄre i Markdown, virker kombinasjonen av Markdown og Git naturlig.

Og alt ville vÊre bra, og pÄ dette punktet kunne vi ha satt punktum, hvis det ikke hadde vÊrt vÄrt andre vilkÄr: «pÄ utgangen trenger vi et dokument i et bestemt format, med bedriftsattributter, laget etter en bestemt mal» (og vi ble enige om i begynnelsen at for klarhetens skyld, ville dette vÊre MS Word). Det vil si, hvis vi har bestemt oss for Ä bruke Markdown, sÄ mÄ vi pÄ en eller annen mÄte konvertere denne filen til .docx i Þnsket format.

Det finnes konverteringsprogrammer mellom forskjellige formater, for eksempel, Pandoc.
Du kan konvertere en Markdown-fil til .docx-format med dette programmet.
Men man mÄ likevel forstÄ at, for det fÞrste, ikke alt som finnes i Markdown vil bli konvertert til MS Word, og for det andre, MS Word er et helt land sammenlignet med den strÞmlinjeformede, men likevel lille byen Markdown. Det finnes en enorm mengde funksjoner som finnes i Word og som ikke er tilgjengelige i noen form i Markdown. Du kan ikke bare ta og med bestemte nÞkler konvertere Markdown-formatet ditt til Þnsket MS Word-format med Pandoc. SÄ vanligvis, etter konvertering, mÄ man «finpusse» det resulterende .docx-dokumentet manuelt, noe som igjen kan vÊre tidkrevende og fÞre til feil.

Hvis vi kunne skrive et skript som automatisk «fullfĂžrte» det som Pandoc ikke klarte — ville det vĂŠrt den ideelle lĂžsningen.

PĂ„ grunn av ulikheten i funksjonaliteten mellom MS Word og Markdown generelt, tror jeg det er umulig Ă„ lĂžse denne oppgaven, men kan det gjĂžres i forhold til spesifikke situasjoner, spesifikke krav? Min erfaring har vist at ja, det kan det gjĂžres, og det er sannsynligvis mulig for mange, eller kanskje til og med de fleste situasjoner.

LÞsningen pÄ et spesifikt problem

SÄ, i mitt tilfelle, etter Ä ha konvertert filen med Pandoc, mÄtte jeg manuelt gjÞre ytterligere behandling av filene, nemlig

  • legge til felt i Word med automatisk nummerering av overskrifter (caption) for tabeller og bilder
  • endre stil for tabeller

Jeg fant ikke ut hvordan jeg kunne gjÞre dette med standard (Pandoc) eller kjente midler. Derfor brukte jeg et python-skript med pywin32 pakken. Som et resultat fikk jeg full automatisering. NÄ kan jeg konvertere Markdown-filen min til Þnsket form av MS Word-dokument med én kommando.

Se detaljer her.

Kommentar

I am of course converting some abstract Markdown file in this example, but the exact same approach was applied to a "live" document, and the output was practically the same MS Word document that we previously received through manual formatting.

In general, with pywin32 we gain almost complete control over the MS Word document, allowing us to modify it and format it according to your corporate standard. Of course, these same goals could be achieved with other tools, such as VBA macros, but I found it more convenient to use Python.

The brief formula for this approach is:

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

It’s not that important what 'something' is. In my case, it was Pandoc and Python with pywin32. You might have different preferences, but what matters is that it is possible. And that is the main point of this article.

In summary, the idea is that with this approach you work solely with a Markdown file and use Git for collaboration and version control, and only when necessary (for instance, to provide documentation to a client) do you automatically create a file in the required format (like MS Word).

Prosessen

I think for many the formula given above is sufficient to understand how the documentation process can now be organized. But I usually focus on network engineers, so I will briefly show how the workflow now might look and how it differs from an approach that involves editing MS Word files.

For clarity, let's choose GitHub as the platform for working with Git. Then you need to create a repository and place the Markdown file or files you plan to work with in the master branch.

We will look at a simple process based on 'github flow'. Its description can be found both online and on Habr.

Assuming that four people are working on the documentation and you are one of them. Then four additional branches are created, for example, with the names of these people. Each works locally in their own branch and makes changes with all the necessary git commands.

NÄr du fullfÞrer en bestemt oppgave, oppretter du en pull request, som initierer diskusjonen om endringene dine. Under diskusjonen kan det vise seg at du mÄ legge til eller endre noe. I sÄ fall gjÞr du de nÞdvendige endringene og lager en ny pull request. Til slutt blir endringene dine godkjent og slÄtt sammen (merge) med master-grenen (eller avvist).

SelvfÞlgelig er dette en ganske generell beskrivelse. Jeg anbefaler at du spÞr utviklerne dine for Ä lage en detaljert prosess eller finner folk med erfaring. Men jeg vil merke at terskelen for Ä begynne med Git er ganske lav. Dette betyr ikke at protokollen er enkel, men du kan begynne med noe enkelt. Hvis du ikke vet noe om det, tror jeg at du kan bruke flere timer eller dager pÄ Ä lÊre deg det og begynne Ä bruke det.

Hva er fordelen med denne tilnĂŠrmingen sammenlignet med prosessen beskrevet i eksempelet ovenfor?

Faktisk er prosessene ganske like, du har bare byttet ut

filkopiering -> oppretting av gren (branch)
kopiering av tekst til sluttfilen -> sammenslÄing (merge)
kopiering av de nyeste endringene til deg -> git pull/fetch
diskusjon via melding -> pull requests
track modus -> git diff
siste godkjente versjon -> master-gren
backup (kopiering til en ekstern server) -> git push



Dermed har du automatisert alt du allerede var tvunget til Ă„ gjĂžre manuelt.

PÄ et hÞyere nivÄ lar det deg

  • opprette en klar, enkel og kontrollert prosess for endringer i dokumentasjonen
  • fordi det endelige dokumentet (i vĂ„rt eksempel MS Word) opprettes automatisk, reduserer det sjansen for formateringsfeil.

Kommentar

Gitt det ovenstÄende, er det tydelig at selv om du jobber med dokumentasjonen alene, kan bruken av Git betydelig lette arbeidet ditt.

Alt dette Ăžker kvaliteten pĂ„ dokumentasjonen og reduserer tiden brukt pĂ„ Ă„ lage den. Og en liten bonus – du vil lĂŠre Git, noe som vil hjelpe deg med automatiseringen av nettverket ditt 🙂

Hvordan gÄ over til den nye prosessen?

I begynnelsen av artikkelen skrev jeg at du allerede i morgen kan begynne Ä jobbe pÄ en ny mÄte. Hvordan kan du overfÞre arbeidet ditt til en ny retning?

Her er en sekvens av trinn du mest sannsynlig mÄ fÞlge:

  • hvis dokumentet ditt er veldig stort, del det opp i deler
  • konverter kvar del til Markdown (for eksempel med Pandoc)
  • installer en av Markdown-editorene (jeg bruker Typora)
  • du mĂ„ sannsynligvis justere formateringen av de opprettede Markdown-dokumentene
  • begynn Ă„ bruke prosessen beskrevet i forrige kapittel
  • samtidig begynner du Ă„ modifisere konverteringsscriptet for din oppgave (eller lag noe eget)

Du trenger ikke vente med Ä lage og perfeksjonere mekanismen for konvertering fra Markdown til Þnsket dokumentformat. Poenget er at selv om du ikke klarer Ä fullautomatisere prosessen for konvertering av Markdown-filene dine raskt, kan du fortsatt gjÞre det pÄ en eller annen mÄte ved hjelp av Pandoc og deretter finjustere det manuelt. Vanligvis trenger du ikke Ä gjÞre dette ofte, og bare i slutten av bestemte faser, og dette manuelle arbeidet, selv om det kan vÊre vanskelig, er likevel, etter min mening, ganske akseptabelt i feilsÞkingsfasen og bÞr ikke «bremse» prosessen for mye.

Alt annet (Markdown, Git, Pandoc, Typora) er allerede klart og krever ikke spesielle anstrengelser eller tid for Ă„ begynne Ă„ jobbe med dem.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster