Mine arbejdsopgaver
Efter den første uge, hvor jeg satte min computer op og lavede tutorial til Hybris, har jeg som udgangspunkt fungeret som et hvert andet teammember i mit team. I mit team - Alaska, har der primært været fokus på udvikling af Føtex.dk (bliver launchet som eCommerce side i efterårsferien), samt performance optimering som forberedelse til black friday. Black friday er den sidste fredag, og weekenden med, i november, hvor de har vildt mange tilbud på alt. Derfor vælter det ind med brugere på siderne, hvilket tit har givet store performance problemer.
Jeg har ofte siddet og parprogrammeret med en anden udvikler, især i starten af sprintet, for ligesom lige at komme ind i de nye opgaver. Herefter har jeg enten selv eller sammen med andre arbejdet på de userstories vi har haft i vores sprint.
Jeg har blandt andet arbejdet med:
- Udgående feed fra bilka.dk og føtex.dk. Det bliver brugt af 3. parts folk, blandt andet pricerunner som sammenligner priser. Dette køres som et job en gang om dagen, hvor alle produkter bliver samlet op og transformeret til et xml feed som 3. parts folk så kan samle op.
- Validering af xml feedet op i mod et schema.
- Indexering af produktattributter i solr (søge platform), altså at vi har alle produktattributter klar til når nogen spørger efter dem ved at se på et produkt på siden.
- Solr indexering af relaterede produkter.
- Selenium test som tjekkede navigering i menu'en på mobil version af siderne.
- Brug af dansk supermarked api til at finde åbningstider på de forskellige butikker.
Arbejdsværktøjer
Her er nogle af de værktøjer som bliver brugt i det daglige arbejde.
IntelliJ
IntelliJ er et (primært) java IDE lavet af jetbrains. Da jeg startede brugte de stadigvæk eclipse til at udvikle, men de var blevet enige med cheferne om at skifte til IntelliJ. Det giver en bedre og mere stabil udvikling.
Jira
Jira er en rigtigt god side til projektstyring. Det er et kanban / scrum board, som i øvrigt har en extension til agil udvikling. Det er denne side vi bruger til at styre backlog, userstories, nuværende sprint osv. Her for hver userstory og subtask desuden et unikt id, som vi bruger i Git til vores branches / commits.
Git / Bitbucket
For at holde styr på den store kodebase, samt mange forskellige udviklere bruger vi versionsstyrings systemet Git, samt Bitbucket. Typisk laver man en branch med samme navn som det unikke id fra jira userstory'en. Herefter kan man commit'e sine ting til denne branch. Når man er færdig pusher man det op på bitbucket og laver en pull request for at merge det ned i den gængse kodebase. Dette pull reqest bliver så reviewet af en anden udvikler, og først når det er godkendt kan man merge det.
Jenkins
Når en ny ting bliver merged ned i master branchen, starter Jenkins. Jenkins er en continuous integration platform som ved ændringer i kodebasen kan gøre en masse ting.
For eksempel vil jenkins bygge projektet, lave kvalitets tjek, køre unit tests, integration tests og selenium tests ved hver ændring der bliver merged ned i master branchen. Hvis alt dette går godt, vil Jenkins derefter lægge den nye version af sitet op på vores 'dev' miljø samt vores 'test' miljø hvor det så bliver startet op med de nye ændringer.
Her ses den pipeline laver statiske kode tjek. Altså at den overholder nogle best-practice guidelines.