{"id":2866,"date":"2014-01-02T09:42:55","date_gmt":"2014-01-02T08:42:55","guid":{"rendered":"http:\/\/www.traineebloggen.se\/?p=2866"},"modified":"2014-12-09T11:37:50","modified_gmt":"2014-12-09T10:37:50","slug":"2866","status":"publish","type":"post","link":"https:\/\/www.traineebloggen.se\/index.php\/2014\/01\/trainee\/2866\/","title":{"rendered":""},"content":{"rendered":"<p>Hej alla l\u00e4sare!<\/p>\n<p>Hoppas att ni har haft det bra under julledigheten!<\/p>\n<p>Som jag n\u00e4mnde i ett tidigare inl\u00e4gg \u00e4r jag och mina med-traineer i utvecklingsblocket p\u00e5 traineeprogrammet. Decembers f\u00f6rsta tv\u00e5 veckor var sp\u00e4ckade med kurser vars syfte var att ge oss en bra teknisk \u00f6verblick f\u00f6r de system vi har p\u00e5 Cinnober. Vi har \u00e4ven hunnit med ett v\u00e4ldigt h\u00e4ftigt bes\u00f6k p\u00e5 NASDAQ OMX i Stockholm, vilket de andra traineerna har postat n\u00e5gra bilder fr\u00e5n. Kurserna har bland annat behandlat olika meddelandeprotokoll som klienter anv\u00e4nder f\u00f6r att kommunicera med Cinnobers system, en inblick i hur de databaser vi har fungerar samt en \u00f6vergripande och till viss del historisk kurs i den tekniska plattformen som v\u00e5ra projekt mot kunder bygger p\u00e5. Det finns verkligen hur mycket som helst man kan l\u00e4ra sig! Kurserna har gett en bra \u00f6verblick och f\u00f6rel\u00e4sarna har alla gjort ett fantastiskt bra jobb i att presentera sitt material men det kan vara sv\u00e5rt att ta in allt p\u00e5 en g\u00e5ng d\u00e5 tempot \u00e4r h\u00f6gt. Till viss del har jag min &#8211; fr\u00e5n b\u00f6rjan av programmet &#8211; inledande okunskap inom Java att skylla p\u00e5 att det kanske g\u00e5tt lite tr\u00f6gt. Jag har l\u00e4rt mig v\u00e4ldigt mycket under det h\u00e4r halv\u00e5ret men jag \u00e4r inte riktigt ikapp \u00e4n s\u00e5 jag har haft heml\u00e4xa i form av Java-programmering under julen. Jag har huvudsakligen l\u00e4st i boken Working Effectively with Legacy Code av Michael C. Feathers men \u00e4ven l\u00e4st i Oracles v\u00e4ldigt omfattande Java-tutorial som finns p\u00e5 <a href=\"http:\/\/docs.oracle.com\/javase\/tutorial\/\">http:\/\/docs.oracle.com\/javase\/tutorial\/<\/a>. D\u00e4r blir Java f\u00f6rklarat fr\u00e5n grunden s\u00e5 om man \u00e4r intresserad av att b\u00f6rja anv\u00e4nda Java finns d\u00e4r m\u00f6jlighet att b\u00f6rja p\u00e5 en niv\u00e5 som passar med ens tidigare kunnande!<\/p>\n<p>Under den sista veckan innan julledigheten hade jag det lugnare d\u00e5 det kommer till kurser s\u00e5 jag har kunnat komma in i rollen som utvecklare lite mer. Steget fr\u00e5n att skriva automatiska tester som testare och att vara utvecklare har i mitt fall inte varit s\u00e4rskilt stort. Jag har till exempel suttit och skrivit enhetstester (en enhet kan i det h\u00e4r fallet ses som den minsta testbara best\u00e5ndsdelen i koden) vilket kanske inte l\u00e5ter s\u00e5 annorlunda mot de tester jag skrivit under testblocket men det finns en del skillnader.<\/p>\n<p>De tester jag skrivit som testare anv\u00e4nder ett meddelandeprotokoll som heter FIX* f\u00f6r att kommunicera med hela systemet. Testerna k\u00f6rs med hela systemet uppstartat och fokuserar p\u00e5 att testa saker ur ett anv\u00e4ndarperspektiv. Som anv\u00e4ndare har man ingen detaljkunskap om hur systemet fungerar i sitt inre utan man \u00e4r mest intresserad av att man, givet vissa meddelanden skickade till systemet, f\u00e5r r\u00e4tt meddelanden tillbaka. Systemet i sig fungerar som en svart l\u00e5da.<\/p>\n<p>Enhetstester skrivs med detaljkunskap om hur koden \u00e4r uppbyggd och har en stor f\u00f6rdel i att man slipper starta upp hela systemet f\u00f6r att k\u00f6ra dem. Fokus ligger p\u00e5 att testerna ska vara snabba, avgr\u00e4nsade och kunna ge tidig feedback till en utvecklare som g\u00f6r \u00e4ndringar i relaterad kod. Om ens kod har st\u00f6d utav en stor bas med enhetstester kan man med betydligt st\u00f6rre s\u00e4kerhet genomf\u00f6ra \u00e4ndringar. Det finns med andra ord stora vinster att f\u00e5 \u2013 b\u00e5de i produktivitet och i minskad stressfaktor hos utvecklare \u2013 genom att ha en v\u00e4ltestad kod! De nya utmaningarna har till stor del best\u00e5tt i att l\u00e4ra mig hur jag ska kunna bygga falsk data som testet kan anv\u00e4nda sig utav, s\u00e5 kallade \u201dmocks\u201d. Mock \u00e4r engelska f\u00f6r o\u00e4kta, falsk. \u00a0Man beh\u00f6ver bygga upp s\u00e5n data eftersom att man \u2013 trots att systemet inte \u00e4r ig\u00e5ng \u2013 m\u00e5ste f\u00e5 den delen man vill testa att bete sig som d\u00e5 allt \u00e4r \u201dup and running\u201d. Det finns s\u00e5klart bra hj\u00e4lpmedel tillg\u00e4ngliga f\u00f6r att skapa mocks, jag har anv\u00e4nt mig utav ramverket Mockito s\u00e5 h\u00e4r l\u00e5ngt har det fungerat j\u00e4ttebra.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.traineebloggen.se\/wp-content\/uploads\/traineebloggen\/2014\/01\/unitTestAllTheThings.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2868 aligncenter\" alt=\"unitTestAllTheThings\" src=\"http:\/\/www.traineebloggen.se\/wp-content\/uploads\/traineebloggen\/2014\/01\/unitTestAllTheThings.png\" width=\"400\" height=\"288\" \/><\/a><\/p>\n<p>Nu ska jag \u00e5terg\u00e5 till enhetstestandet! Ha det bra. \ud83d\ude42<\/p>\n<p>*FIX \u00e4r ett meddelandeprotokoll f\u00f6r att skicka information som anv\u00e4nds inom finansbranschen, FIX st\u00e5r f\u00f6r Financial Information eXchange.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hej alla l\u00e4sare! Hoppas att ni har haft det bra under julledigheten! Som jag n\u00e4mnde i ett tidigare inl\u00e4gg \u00e4r jag och mina med-traineer i utvecklingsblocket p\u00e5 traineeprogrammet. Decembers f\u00f6rsta tv\u00e5 veckor var sp\u00e4ckade med kurser vars syfte var att ge oss en bra teknisk \u00f6verblick f\u00f6r de system vi har p\u00e5 Cinnober. Vi har [&hellip;]<\/p>\n","protected":false},"author":79,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[394],"tags":[395,187,30,399],"_links":{"self":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2866"}],"collection":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/users\/79"}],"replies":[{"embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/comments?post=2866"}],"version-history":[{"count":2,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2866\/revisions"}],"predecessor-version":[{"id":2870,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/posts\/2866\/revisions\/2870"}],"wp:attachment":[{"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/media?parent=2866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/categories?post=2866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.traineebloggen.se\/index.php\/wp-json\/wp\/v2\/tags?post=2866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}