02.GIT_workflow_&_werken_in_een_team

Python intro
Programming basics-II
Les 3 / Week 7a
GIT workflow & werken in een team
Software Verdieping 
1 / 18
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarBeroepsopleiding

In deze les zitten 18 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 210 min

Onderdelen in deze les

Python intro
Programming basics-II
Les 3 / Week 7a
GIT workflow & werken in een team
Software Verdieping 

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Doelen voor vandaag
  • Je begrijpt wat een GIT workflow is
  • Je kunt de verschillende GIT workflows benoemen
  • Je begrijpt wat peer reviewing is
  • Je kunt de onderdelen van peer reviewing benoemen
  • Je leert op een professionele manier omgaan met het reviewproces 

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Terugblik
We blikken terug op de vorige les in de vorm van een oefening. Maak een GIT repository op GitHub en haal deze naar je computer door het gebruik van de command line
timer
10:00

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Wat is een workflow?
  • Een aanbeveling voor het gebruik van GIT op een consistente en productieve manier
  • Per team kan dit verschillen, belangrijk om hier afspraken over te maken die geaccepteerd zijn door elk team lid
  • Geeft duidelijkheid en sturing aan de manier hoe wijzigingen worden doorgevoerd binnen het team

Slide 4 - Tekstslide

https://www.atlassian.com/git/tutorials/comparing-workflows
Was er op je stage ook een GIT workflow? Zoja, welke?

Slide 5 - Open vraag

Deze slide heeft geen instructies

Enkele GIT workflows
  • Centralized Workflow
    (main branch)
  • Feature Branch Workflow 
    (feature branch -> main branch) 
  • Gitflow Workflow
    (feature branch -> 2nd main branch -> 1st main branch)
  • Forking Workflow
    (eigen prive repository, vaak in combinatie met de gitflow workflow)

Slide 6 - Tekstslide

https://www.atlassian.com/git/tutorials/comparing-workflows

Forking is eigenlijk dezelfde actie als een git clone maar dan op een server. Tools als Github automatiseren deze stap en hoef je deze dus niet zelf op een server te plaatsen
Welke van de workflows past het beste bij jou als developer?
Centralized Workflow
Feature Branch Workflow
Gitflow Workflow
Forking Workflow

Slide 7 - Poll

Resultaten bespreken na afloop, wellicht kunnen we twee studenten laten discussieren waarom hij/zij het idee heeft dat de ene manier beter is dan de rest?
Wat is peer reviewing?
Evalueren van werk door een of meerdere collega's. Het is een proces wat net meer tijd kost maar zowel voor beginnende als ervaren developers voordelen oplevert.

Vraag naar de manier van werken, elke bedrijf kan dit op zijn eigen manier invullen.

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Wat zijn volgens jou de voor en nadelen van peer reviewing?

Slide 9 - Open vraag

Deze slide heeft geen instructies

Review Types
  • Design Critique
  • Technical Architecture Review
  • Automated Self-Check
  • Ticket-Based Peer Code Review 
  • Quality Assurance/User Acceptance Testing 

Slide 10 - Tekstslide

  • Meestal niet door developers

  • Controle op de project fundering met een basis voor de toekomst

  • Automatische controle op code standaarden, bijvoorbeeld : PHP PSR12

  • Dit is onze focus en komen we later op terug

  • Na de controle binnen het team, kan deze in zijn geheel getest worden

Soorten Reviews
  • Peer Review
  • Automated Gatekeeper
  • Consensus Shepherd
  • Benevolent Dictator

Slide 11 - Tekstslide

  • Evalueren van werk door een of meerdere collega's

  • Automatische tests, bv: PHP unit tests

  • Open-source projecten, community tot overeenstemming komen

  • Mijn code, mijn manier

Voordelen Peer Reviewing

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Een Review! En nu?
  • Zorg dat de achtergrond van het probleem duidelijk is!
  • Maak afweging met betrekking tot je testomgeving
  • Raak bekend met de code en situatie, zowel huidige als het resultaat

Slide 13 - Tekstslide

  • bug fix, nieuwe feature, hoe is het ontstaan, etc...

  • grote van oplossing

Feedback voorbereiden
  • Bundel je bevindingen in een lijst
  • Wees kritisch en zorg voor een goede review structuur
  • Splits bijvoorbeeld je notities op:
    - The code is broken
    - The code does not follow best practices
    - The code isn't how you would have written it

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Feedback delen
  • Wanneer wel of niet zelf oplossen?
  • Starten van gesprek, kennis kan worden overgedragen of nieuwe manieren worden aangeleerd.
  • Wijzigingen klein houden
  • Na het committen van wijziging begint de cyclus opnieuw

Slide 15 - Tekstslide

  • Kleine dingetjes kun je ook zelf oplossen zoals typos (tenzij het de 100ste keer is natuurlijk

  • Nieuwe visie en inzichten dat er ook andere manieren zijn dan de gekozen oplossing

  • herschrijven applicatie heeft een andere methode
Oefening
In een groepje van 2, pak er een stuk code bij van een eerder project en laat je teamlid hier een review voor schrijven, doe dit dan vervolgens ook andersom

Slide 16 - Tekstslide

Deze slide heeft geen instructies

Plaats hier een screenshot van het stukje code en de feedback op dit stukje code

Slide 17 - Open vraag

Deze slide heeft geen instructies

Kortom
De peer review proces kan het team helpen. Het verbetert de communicatie voordat ideeën worden gecommit en hierdoor ontstaat er een mentor houding tussen teamleden. 

Slide 18 - Tekstslide

Deze slide heeft geen instructies