Skip to content
Snippets Groups Projects
Commit 2d0ab948 authored by Hallvard Trætteberg's avatar Hallvard Trætteberg
Browse files

More slides, custom css

parent 60d606d5
No related branches found
No related tags found
No related merge requests found
......@@ -59,6 +59,13 @@ asciidoctorRevealJs {
include '*.adoc'
}
outputDir file('build/docs/revealjs')
resources {
from('revealjs') {
include '**/*.png'
include '**/*.css'
}
into '.'
}
attributes 'sourceDir': 'revealjs',
'imagesDir': 'revealjs',
......
= Smidig praksis og verktøy
:customcss: slides.css
:icons: font
== Smidig praksis og verktøy
* fokuserer på bygging av produkt som kan prøves ut
* sentrert rundt prosesser for dette, og ikke på verktøy og teknikk
* men... forutsetter i praksis verktøystøtte
** smidighet krever automatisering
** verktøy smører prosessene
== Ulike typer verktøy
* oppfølging av den smidige prosessen
** oversikt over (ulike typer) utviklingsoppgaver
** planlegging av iterasjoner
** samarbeidsstøtte
* håndtering av kildekode
** distribuert utvikling
** endringshåndtering
** versjonskontroll
== Ulike typer verktøy forts.
* kontinuerlig integrasjon (CI)
** testing
** bygging av artifakter
== Historien om en utviklingsoppgave
Kunden ønsker å kunne importere et gammelt filformat. Dette funksjonsønsket deles opp i to utviklingsoppgaver, én for kjernefunksjonaliteten og én for brukergrensesnittet.
Cecilie starter med kjernen og skisserer først hvordan hun tenker å løse det teknisk vha. noen enkle klassediagram. Så defineres oppførselen til hver klasse i form av tester, og tomme klasser opprettes.
== Historien om ... forts.
Kristian kan starte på brukergrensesnittet til importfunksjonaliteten så snart klassedeklarasjonene er klare, han trenger ikke selve implementasjonskoden i starten.
Cecilie jobber seg så gjennom implementasjonen, og sjekker hele tiden at den er som tenkt ved å kjøre testene. Hun er ferdig i god tid før Kristian, og når han er det så... bare virker det! Til slutt oppsummerer de begge hva som ble gjort og gjør funksjonen tilgjengelig for kunden.
== Historien om ... og verktøy
Hva har dette å si for verktøystøtte?
* oppfølging av den smidige prosessen:
** to utviklingsoppgaver knyttet til hhv. Cecilie og Kristian
** del av inneværende iterasjon
** dialog/diskusjonstråd knyttet til oppgaven
== Historien om ... og verktøy forts.
* håndtering av kildekode:
** Cecilie må kunne dele sin kjernekode med Kristian, men holde den unna de andre
** det må komme frem at koden er knyttet til respektive utviklingsoppgaver
** den nye koden er knyttet til _neste_ versjon
== Historien om ... og verktøy forts.
* kontinuerlig integrasjon (CI):
** hyppig kjøring av testene
** ny versjon rulles raskt ut til kunden
== `gitlab.stud.idi...`
[.smaller]
* profesjonelt støtteverktøy for smidig utvikling
* IDI har egen installasjon (tas kanskje over av NTNU IT)
** innlogging med NTNU-navn og -passord
* hierarki av _grupper_, med _prosjekter_ (repo) under
** IT1901-emnet er en gruppe: https://gitlab.stud.idi.ntnu.no/it1901[it1901]
*** emnet har repo med læringsmateriale inkl. kode
** hver gruppe er egen _undergruppe_ (it1901-gr19xy)
*** gruppene opprettes av oss, så inviteres dere inn
*** dere oppretter nødvendige repo
== Oppgavesporing (issue tracking)
En _oppgave_ (issue) er arbeid som skal følges opp
* ny funksjon, forbedring, feilretting, konfigurasjon ...
* hver oppgave har en dialog/diskusjonstråd
* halvautomatisk knytning til _endringer_ (commits)
== Oppgavesporing forts.
Oppgavesporing er viktig for transparens
* kunder trenger innsyn i prosess
* teamet trenger å dele kunnskap
* løse og distribuerte prosjekter (f.eks. åpen kildekode) har ekstra behov
* støtter vurdering...
== Oppgavesporing forts.
[.smaller]
* oppgaver opprettes ifm. planlegging av iterasjon, f.eks. fra _brukerhistorier_, _funksjonsønsker_ eller _feilrapporter_
* oppgaver knyttes til
** _milepæl_ for iterasjon
** utviklinger som jobber med den
* _merkelapper_ (labels) kan angi _fasen_ en oppgave er i
** f.eks. planlagt, utvikling, testing, godkjent
** _oppgavetavler_ (issue boards) visualiserer fremdrift
== Oppgavetavle (issue board)
image::https://about.gitlab.com/images/blogimages/workflow.png[size=80%]
== Oppgavesporing forts.
* dialog/diskusjonstråd dokumenterer prosessen
** designidéer, avgjørelser, avhengigheter, ...
** knyttes til endringer (commits) gjennom oppgavenummer (#)
** oppsummerer hva som ble gjort
[.center-paragraph]
Viktig for transparens!
== Kildekodehåndtering
[.center-paragraph]
link:scm.html[Source code management (SCM)]
== Kontinuerlig integrasjon
[.center-paragraph]
link:ci.html[Continuous Integration (CI)]
= CI
:customcss: slides.css
:icons: font
== Multi-eksempel
== Introduksjon til IT1901
Dette eksemplet viser hvordan rigger et multi-prosjekt med gradle,
med del-prosjekter for
Smidig og moderne praksis og konstruksjon
- domenelogikk (core)
- brukergrensesnitt med JavaFX og FXML (fx)
- React-basert web-klient (react)
- web-server med JAX-RS og Jersey (jersey)
- praksis i smidige prosjekter
- verktøy for smidig utvikling
- mer om objektorientert design
- enkle, moderne arkitekturer
** desktop
** mobil
** web
= SCM
:customcss: slides.css
:icons: font
.paragraph {
text-align: left;
}
.ulist {
text-align: left;
}
.center-paragraph {
text-align: center;
}
.smaller {
font-size: 80%
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment