Kode Kata’er

Dave Thomas skriver på sin blog om “Code Katas”. Dave fik ideen til små tidsafgrænsede softwarelæringer da han var med sin søn til karate, og ikke kunne stå på sin sædvanlige plads i “parents viewing area”. Han fandt istedet en anden siddeplads og begyndte at lege rundt i sit udviklingsmiljø…

Read More →

Unit testing 101

Følgende indlæg kan selvfølgelig på ingen måde siges at være dækkende for emnet “unit testing”, men læs det som en hurtig introduktion til hvorfor unit testing er relevant, best practices og hvorfor unit testing ikke må blive en religion forbeholdt de udvalgte. Motivation Du har sikkert skulle teste koden du…

Read More →

Dependency Inversion Principle

Dependency Inversion Principle (DIP) er det af de fem S.O.L.I.D. principper, hvis forståelse og efterlevelse har den største betydning for den overordnede arkitektur. DIP kan anvendes som en simpel mekanisme, som i dependency injection (DI), men kan også anvendes som et design princip, der tjener til at adskille arkitekturlag på…

Read More →

Interface Segregation Principle

Som et af de fem S.O.L.I.D. design-principper hjælper Interface Segregation Principle (ISP) med til at forhindre udbredelsen af spaghetti-kode som med tiden enten stivner eller rådner væk. ISP siger: Brugere af en klasse skal ikke tvinges til at afhænge af metoder de ikke har brug for Problem Antag at du…

Read More →

Introduktion Til Continuous Integration

Hvad er Continuous Integration? Anbefalinger til opsætning af continuous integration builds Hvilke CI servere fndes der? Hvad er continuous integration? Continuous Integration er en samling af processer, der tilsammen udgør en væsentlig del af kvalitetskontrollen i moderne softwareudvikling. Det er små, men ofte udførte, automatiske handlinger som vi tilsammen kalder…

Read More →

Drive

Drive. Hvad motiverer dig til at stå op og tage din tørn hver dag? Er du helt klar over det? Er du også helt klar over, hvad der motiverer mennesker omkring dig til at gøre det samme? Hvis ikke så skal du se denne video af Daniel H. Pink og være…

Read More →

Versionskontrol

Hvad er versionskontrol? Hvorfor skal man bruge et versionskontrolsystem? Er der frit valg på alle hylder? Hvordan fungerer SubVersion / SVN? Hvad er versionskontrol? Versionskontrol betyder, at ændringer mellem to udgaver af en fil journaliseres og håndhæves af “nogen eller noget”. Dette nogen eller noget er versionskontrolsystemet – dvs. software…

Read More →

Liskov Substitution Principle

Følgende post omhandler Liskov Substitutions princippet fra S.O.L.I.D., som i en meget forenklet form kan udtrykkes: Nedarvede klasser skal kunne substituteres med deres base klasser (*) Det klassiske (og mest håndgribelige) eksempel på LSP er en overtrædelse: Såfremt du modellerer en firkant som et rektangel (med samme bredde / højde)…

Read More →

Open Closed Principle

Følgende indlæg er en del af en en række posts som beskriver S.O.L.I.D. principperne. Open Closed Principle Du kender det måske – en nødvendig ændring trigger andre ændringer og før du har set dig om har et hav af klasser ændret sig og du er nødt til at genteste og…

Read More →

Single Responsibility Principle

I denne post behandler vi Single Responsibility Principle fra S.O.L.I.D. Måske har du set eller skrevet kode hvor flere ortogonale (ikke parallelle) ansvarsområder blev varetaget af een “mother-of-all” klasse? Sådanne monolitter er svære at vedligeholde fordi vi på et tidspunkt får behov for at udvide med præcist de features, som får kode-læsset…

Read More →