fredag 23 augusti 2013

Dependecy Injection, Unit Testing och Domain Driven Design

Så, då var det första lektionsfria dagen i skolan, mycket krav ställs nu på eget ansvar, självdisciplin och ambitioner. Det är lätt att göra fel saker bara för att man är hemma, men vet man vad man har att göra och sätter upp mål för sig själv blir det enklare. Jag hade många sådana här dagar förra läsåret och lyckades bra med studierna tyckte jag. Kruxet var att försöka skapa balans mellan studier och resten av livet, jag ägnade väldigt mycket av min tid för studierna och glömde nästan att jag hade andra behov också. Visst jag lyckades bra också, med det mesta och tog igen förlorad tid med vänner och familj under sommarlovet. Jag hoppas på att kunna hålla mig lika flitig i år också, men inte tränga bort annat viktigt. Som hälsan och relationer med de som betyder mycket för mig. Sen så förväntar jag mig i och för sig att de personer som står mig nära förstår att jag nu måste tänka på skolan i första hand, eftersom den här tiden är en gåva och den är under en begränsad period, och jag vill göra det bästa av den medan jag har chansen.

Dagarna i skolan har vart mycket intressanta, tempot var ganska högt de första dagarna eftersom vi har pratat mycket om helt nya saker, mycket teori. Nu ska jag börja koda på egen hand och använda de tekniker vi just lärt oss. Detta är kurs i ASP.NET MVC4, men vi har gått igenom följande tre saker som bas för det vi kommer göra nästa vecka då vi kommer gå igenom betydligt mer bekanta saker eftersom jag jobbat med MVC på min LIA: Dependency Injection, Domain Driven Design och Unit Testing, plus en del teori runt detta.

Dependecy Injection (DI):
En typ av Inversion of Control(IoC), som är ett designmöster för att undvika beroenden mellan klasser, och är bra att ha på grund av att det ska vara lättare att byta ut olika delar av koden, utan att påverka den andra. Det gör det även enklare att göra Unit Tests.

Dependency Injection bygger på att man bygger interface istället för klasser för att skicka in som argument i bl.a. metoder. De konkreta klasserna får implementera interfacen, vilket gör att man kan använda olika typer av klasser i samma metod, så länge metoden förväntar sig att ta emot just det intefacet. En så kallad DI-container anänds när programmet körs för att tala om vilken typ av klass som skall användas när ett visst interface skickas in som argument. Körs metoden från till exempel ett Unit Test, så avgör man i testet vad som bör skickas in. Det brukar ofta vara någon fejkad klass som inte är beroende av svar från utanförliggande saker som databas, internetuppkoppling, e-post och massa annat som man kan tänka sig kan strula till det om det inte fungerar.

Domain Driven Design (DDD):
Handlar om att arbeta utifrån en något som kallas domänmodell, där man skapar klasser som beskriver hela applikationen, ofta enkla klasser utan speciellt mycket logik, de skapas ofta som ett eget projekt i den solution som man arbetar med. Domänmodellen innehåller även tjänster och regler som avgör hur viktiga processer ska hanteras. Detta fungerar som själva kärnan av applikationen. Saker som gränssnitt och lagring skall inte finnas här, bara det mest grundläggande.

Unit Testing: 
Är små kodsnuttar som är till för att testa att små delar av en applikation, till exempel metoder, fungerar som man förväntar sig. De skrivs i ett eget projekt i den solution man man arbetar i, och kan köras fler gånger. Man brukar hålla sig till mönstret att man:

  1. Listar upp alla saker man behöver för att kunna testa, olika instanser och och sådant.
  2. Agerar och kör metoden man ska testa, och sparar resultatet i en variabel man vanligen kallar för actual, med vilket man menar att "det här är det faktiska resultatet av den här metoden".
  3. Jämför resultatet med det resultatet man förväntat sig. Med andra ord kräver det att man har räknat ut exakt vad metoden bör ge för svar när man skickar in de argument man gjort. Alltså ska inte metoderna vara för stora och komplexa, eftersom man då kan få väldigt svårt att räkna ut vilket resultat det borde bli. Ännu en anledning att skriva många små enkla metoder istället för stora komplicerade saker. Om jämförelsen stämmer så går testet igenom, om inte så failar testet och man vet att något inte stämmer i metoden. Mycket användbart vid felsökning.
Nu är det dags att sätta igång med kodningen, och använda denna nya kunskap till något konkret. Jag har några exempel i kurslitteraturen som jag skall göra också.

tisdag 20 augusti 2013

Underbart återseende...

Blir ett kort inlägg.

Känner mig mycket glad och nöjd med dagen. Var som sagt ordentligt nervös inför första skoldagen detta läsåret. Hur det skulle vara att träffa alla, hur jag skulle orka upp på morgonen, hur läraren skulle vara, hur kursen skulle vara. Efter dagens genomgång så kan jag ju säga att jag inte hade behövt vara nervös, inte för skolan i alla fall. På vägen in lyckades jag ramla i trappen mellan bussen och tåget, fast det var inte så farligt, mest pinsamt då alla i trappen tittade på mig. Väl framme och när jag skulle stoppa matlådan i kylen tappade jag den ner i backen, och locket gick upp och innehåll liksom hoppade ur och spred sig inte så vackert på mina fina byxor. Och det blev svårt att få bort och fläckar. Inga fler katastrofer än så inträffade. Klasskamraterna var underbart att träffa igen, läraren verkar duktig och tydlig och jag fick bra första intryck av honom, kursupplägget verkar bra och innehållet intressant. Angående hur det var att vakna så var det inga problem eftersom jag knappt sovit en blund, det konstiga var att det inte alls känts som trötthet, inte mer än vanligt. Kanske för att det var så kul alltihop.

Nu ska jag göra lite annat

måndag 19 augusti 2013

Skolstart och slut på sommarlovet

Så spännande det känns, i morgon börjar skolan med dunder och brak. Ska bli kul att träffa alla klasskamrater efter ett långt sommarlov. Att få lära sig massa nya saker och ha resten av året väldigt bokat. Plus att jag ska försöka fortsätta simma 2 gånger i veckan (vart lite uppehåll i sommar, men ska fortsätta igen nu när det blir mycket stillasittande i övrigt). Det kommer troligen förväntas mer av oss detta andra, och dessutom finalåret, för vår utbildning. Vi kommer att börja med att lära oss MVC, men eftersom vi jobbat med det under vår praktik kommer vi nog ha en del med oss. Sedan kommer vi under året även jobba med lite småkurser, bland annat Episerver, och dessutom lära oss WPF där vi till och med kommer få göra spel av enklare typ. Sen så kommer vi ju ha examensarbete. Sen så ska vi även hitta en andra LIA-plats, och funderar mycket på om jag ska söka på samma som jag var på, för att kanske ha en chans på arbete där i framtiden, eftersom jag trivdes hos dem, eller försöka hitta en annan plats för att vidga vyerna. Det är svårt att veta vad som är bäst, egentligen.  Mycket att tänka på framöver.

Och så har sommaren kommit mot sitt slut, en sommar som innehållit en massa skoj. Midsommar i skärgården, läsning, promenader i solen ensam och med kamrater, båtluff, Gröna Lund, utekvällar med dans i goda vänner lag, Gyllene Tider, födelsedagar, förhandsvisning av bio, bärplockning, Allsång på Skansen, hårklippning till kort frisyr, besök i Finnspång, tid med min kära morfar, sovmorgnar, shopping och en massa snurr ibland gamla minnen i form av dagböcker och foton. Och en massa mer... Helt enkelt ett prima sommarlov, men det är svårt att fatta att det är slut nu, även om det ska bli kul att komma tillbaka. Det jag kommer ha svårast för är nog att behöva gå upp tidigt igen. Och så har de ändrat på schemat så kommer ju verkligen behöva ha koll på vilka veckor det är, udda eller jämna.

Nåt jag har vart jätteduktig med nu är att ha förberett massor av matlådor så att det inte kommer behöva bli så mycket matlagning. Hela frysen full av easy-to-grab-and-run, hemmagjorda, goda(hoppas jag) matlådor att ta med till skolan. Ska funka till dieten också.

Blir spännande att se om folk känner igen en när man kommer tillbaka också, har ju gått ner i vikt mycket, samt som sagt klippt av mig mer än halva håret, sparat ut naglar och skaffat andra kläder(blev väldigt kritiskt ett tag, eftersom de gamla kläderna satt som tält, och därav känns det som jag har en helt ny stil, lite snyggare... ^^).

Ha det gott och fint nu, alla goa läsare =)


fredag 9 augusti 2013

Dumma saker folk bara gör hela tiden

Jag har lyckas störa mig på massa saker som folk gör när de är ute bland andra och tänkte göra en liten lista på vanligt förekommande dumheter. Kom gärna in med egna förslag.

  • Bilar blinkar inte när de svänger
  • Bilar tappar farten direkt efter omkörning så den framför får en bil precis i nosen (speciellt dåligt när bilen som blir omkörd är av tyngre varianten)
  • Cyklister cyklar på gångbanor och trottoarer när det finns cykelbanor
  • Cyklister plingar inte när de kommer bakom gående (vet att en del inte ha plinga, men då kan man ju i alla fall meddela att man kommer på ett annat sätt)
  • Gående går på fel sida av vägen (gående ska gå MOT trafikens riktning, inte med den)
  • Folk tvärstannar mitt i en trappa, eller annan plats där många passerar samtidigt, helt utan att se sig om
  • Folk stannar direkt efter att de gått av en rulltrappa
  • Folk stannar mitt i en dörröppning
  • Folk som åker full tunnelbana gör inte plats för de som ska gå av tåget, gäller både de som ska gå på och de som står och trängs inne i tåget
  • Kunder ställer kyl- och frysvaror de ångrar sig med vart som helst i butiken så de ligger och blir förstörda
  • Kunder skäller ut kassörskan när det är nåt som inte stämmer ute i butiken enligt dem

Nu har jag gnällt av mig lite, känner ofta inte för att göra det men är aningen bitter idag antar jag. Skulle ha målat en tavla eller nåt, men tappade suget innan jag hann börja, så fick bli det här istället.

Förhandsvisningen av "The Heat"

Var på bio med några av mina fina vänner förra helgen. Det var förhandsvisning av filmen "The Heat" med bland annat Sandra Bullock bland rollerna. Förhandsvisningen fick jag av min telefonoperatör 3, och hämtade ut dem från Biograf Sergel i Stockholm på Hötorget. Själva filmen visades på Biograf Park.

Känner att jag vill skriva och rekommendera folk att se denna film som är en komedi om ett par kvinnliga poliser som av en händelse hamnar på samma fall, och inte riktigt kommer överens eller arbetar på samma sätt. Filmen bjöd på flera oväntade skratt, till och med så pass att jag fick torka tårar från ögonen i vissa lägen, inte för att det var sorgligt utan för att det var roligt. Och det hände massa saker under hela filmen, den var inte långsam alls. Dessutom fick de in en hel del djupare tankar och spänning också.

Anledningen till att jag nu vill berätta att den faktiskt var rolig var att jag gick dit med inte så höga förväntningar, och hade antagligen inte ens funderat på att titta på den om det inte vart för att jag fått biljetterna gratis. Detta för att alla deras trailers på filmen som har visats på TV:n har varit så sjukt dåliga och inte alls varit rättvisa mot själva filmen. Så har man sett trailern och inte tror att filmen kommer vara bra bara för därför så kan man ha tagit miste. Det var mest det jag ville få sagt.