<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Creunabloggen &#187; Peter Korsbäck</title>
	<atom:link href="http://blogs.creuna.se/author/peterkorsback/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.creuna.se</link>
	<description>Creunas medarbetare tycker till om stort och smått i webbranschen</description>
	<lastBuildDate>Fri, 11 May 2012 10:54:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Coders at Work</title>
		<link>http://blogs.creuna.se/2010/12/coders-at-work/</link>
		<comments>http://blogs.creuna.se/2010/12/coders-at-work/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 13:27:52 +0000</pubDate>
		<dc:creator>Peter Korsbäck</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Reading Rat]]></category>

		<guid isPermaLink="false">http://blogs.creuna.se/?p=441</guid>
		<description><![CDATA[Coders at Work är en samling intervjuer baserade på samtal författaren Peter Seibel haft med 15 olika programmerare. Siebel är själv en erfaren programmerare vilket antagligen har bidragit till att boken blivit så bra, då han kunnat ställa de rätta frågorna. Många av de intervjuade var okända för mig men några namn var bekanta: Douglas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.creuna.se/wp-content/uploads/2010/12/caw.jpg"><img class="alignleft size-full wp-image-442" src="http://blogs.creuna.se/wp-content/uploads/2010/12/caw.jpg" alt="" width="117" height="172" /></a><a title="Coders at Work" href="http://codersatwork.com/">Coders at Work</a> är en samling intervjuer baserade på samtal författaren <a title="Peter Seibel's blog" href="https://gigamonkeys.wordpress.com/">Peter Seibel</a> haft med 15 olika programmerare. Siebel är själv en erfaren programmerare vilket antagligen har bidragit till att boken blivit så bra, då han kunnat ställa de rätta frågorna. Många av de intervjuade var okända för mig men några namn var bekanta: Douglas Crockford som skapade JSON, Joshua Bloch som skrev Java-biblioteken för collections och Brendan Eich som uppfann JavaScript. Boken avslutas med en intervju med Donald Knuth, en programmerarlegend som borde vara välkänd för de flesta, inte minst för att han skrev &#8221;The Art of Computer Programming&#8221;.</p>
<p>Boken är såklart fylld med intressanta anekdoter och citat, men det som jag fann mest intressant var att många av dem som gjort saker som mer eller mindre förändrat världen var sådan utstuderade pragmatiker. Många utvecklare idag, inte minst jag själv, tenderar att vara purister till viss del, må det gälla TDD, S.O.L.I.D., dynamisk typning, statisk typning, graceful degradation, progressive enhancement etc. etc. Flertalet av de intervjuade i denna boken gav dock intrycket av att till viss del tillåta sig skjuta från höften, bara så länge fungerande mjukvara levererades. Väldigt uppfriskande läsning.<br />
Coders at Work var överhuvudtaget väldigt rolig och underhållande, den innehåller flera riktigt sköna berättelser om debugging från den tiden ett program bestod av en samling papper med hål i.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.creuna.se/2010/12/coders-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Unit Testing</title>
		<link>http://blogs.creuna.se/2010/10/the-art-of-unit-testing/</link>
		<comments>http://blogs.creuna.se/2010/10/the-art-of-unit-testing/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:35:51 +0000</pubDate>
		<dc:creator>Peter Korsbäck</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Reading Rat]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blogs.creuna.se/?p=367</guid>
		<description><![CDATA[Roy Osherove har bloggat om enhetstestning på ISerializable sedan 2003 och jag har följt honom där från och till sedan jag skrev mitt första enhetstest för att antal år sedan. Konstigt nog hade jag till nyligen helt missat att han förra året släppte en bok om enhetstestning: &#8221;The Art of Unit Testing with Examples in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-370 alignleft" src="http://blogs.creuna.se/wp-content/uploads/2010/10/the-art-of-unit-testing.jpg" alt="The Art of Unit Testing" width="150" height="190" /><a title="Roy Osherove" href="http://osherove.com/">Roy Osherove</a> har bloggat om enhetstestning på <a title="ISerializable" href="http://weblogs.asp.net/rosherove/default.aspx">ISerializable</a> sedan 2003 och jag har följt honom där från och till sedan jag skrev mitt första enhetstest för att antal år sedan. Konstigt nog hade jag till nyligen helt missat att han förra året släppte en bok om enhetstestning: &#8221;The Art of Unit Testing with Examples in .NET&#8221;. Nu har jag dock läst den som en av mina böcker i Creuna Reading Rat och kan konstatera att Roy i boken på ett bra sätt lyckats samla och presentera sina kunskaper inom enhetstestning.</p>
<p>Boken är, som titeln antyder, inriktad på enhetstestning i .NET men kan säkert tilltala utvecklare i andra språk också. Den går genom enhetstestning hela vägen från vilka testramverk man kan använda och hur man installerar dem och kör sitt första test, till hur man integrerar enhetstestning i utvecklingsprocessen på sin arbetsplats med automatiserad testning och testprocesser.</p>
<p>Det är gott om kodexempel i boken, en fiktiv logganalyseringsapplikation används för att demonstrera aspekter av enhetstestning. Det ges ofta kodexempel både innan och efter refaktorering, ett bra sätt att demonstrera hur en design ofta förändras (och förhoppningsvis blir bättre) av att koden testas med enhetstester.</p>
<p>En av de saker jag uppskattade mest var de avsnitt som visar skillnader mellan stub och mock objects, när man ska använda det ena eller andra och, framförallt, varför. Jag kan ärligt erkänna att det där alltid varit lite luddigt för mig men efter att ha läst de kapitlen har det klarnat avsevärt. Det finns också mängder av bra småtips, som namngivningskonventioner och mönster man kan använda vid enhetstestning.</p>
<p>Det som kan dra ner upplevelsen lite är att boken tyvärr är dåligt redigerad och formgiven på sina ställen. Ett typsnitt som är misstänkt likt Comic Sans används frekvent och indenteringen i kodexemplen följer inga konventioner, ibland verkar rentav kod saknas. Detaljer måhända men ändå lite irriterande. Jag rekommenderar ändå utan tvekan boken till alla som vill börja med enhetstestning, framförallt om man ska göra det i .NET. Har man hållt på med enhetstestning ett tag kanske den första halvan är repetition, men det kan vara värt att läsa boken ändå då den är fylld med bra tips och idéer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.creuna.se/2010/10/the-art-of-unit-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Principles, Patterns, and Practices in C#</title>
		<link>http://blogs.creuna.se/2010/07/agile-principles-patterns-and-practices-in-c/</link>
		<comments>http://blogs.creuna.se/2010/07/agile-principles-patterns-and-practices-in-c/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 10:02:19 +0000</pubDate>
		<dc:creator>Peter Korsbäck</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blogs.creuna.se/?p=220</guid>
		<description><![CDATA[Just nu pågår &#8221;Creuna Reading Rat&#8221; för fullt, alla utvecklare läser valfria böcker i sina respektive områden och presenterar eller refererar dem sedan. Efter att nyligen ha läst Clean Code, en bok som vad gäller vissa saker förändrade mitt sätt att koda markant, var valet lätt när jag skulle välja första bok att läsa.
&#8221;Agile Principles, [...]]]></description>
			<content:encoded><![CDATA[<p>Just nu pågår &#8221;Creuna Reading Rat&#8221; för fullt, alla utvecklare läser valfria böcker i sina respektive områden och presenterar eller refererar dem sedan. Efter att nyligen ha läst <a title="Clean Code" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code</a>, en bok som vad gäller vissa saker förändrade mitt sätt att koda markant, var valet lätt när jag skulle välja första bok att läsa.<br />
&#8221;<a title="Agile Principles, Patterns, and Practices in C#" href="http://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258">Agile Principles, Patterns, and Practices in C#</a>&#8221; är skriven av <a title="Robert C. Martin" href="http://www.objectmentor.com/omTeam/martin_r.html">Robert C. Martin</a>, som också står bakom Clean Code, samt hans son, Micah Martin. Robert C. Martin, eller &#8221;Uncle Bob&#8221; som många känner honom som, är välkänd för många då han är en av författarna bakom &#8221;The Agile Manifesto&#8221;, samt den som skrev en artikel om objektorienterad utveckling som sedemera blev grunden till <a title="S.O.L.I.D." href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">S.O.L.I.D.</a><span id="more-220"></span><br />
Boken är egentligen en uppdaterad version av &#8221;Agile Software Development, Principles, Patterns, and Practices&#8221;, i denna version är dock alla kodexempel i C# och vissa avsnitt har också uppdaterats.<br />
Även om jag inte läst originalboken ifrågasätter jag lite meningen med att göra en helt ny version. Boken behandlar lättrörlig utveckling, mönster, objektorienterat utveckling och projekthantering på ett mycket högre plan än kodexempel och det finns få om några C#-specifika kodlösningar. Kanske är det ett försök att locka den stora .NET-utvecklarpubliken, hur som helst skadade det inte att få läsa kodexemplen i det språk jag just nu använder mest.</p>
<p>Boken är uppdelad i tre delar: Agile Development, Agile Design och The Payroll Case Study. Den första delen behandlar de olika delarna som utgör lättrörlig utveckling; parprogrammering, testdriven utveckling, användarfall, refaktorering och projektplanering. I detta avsnittet fanns en del partier jag kunde gå snabbt genom, det var inga djuplodande analyser.<br />
Det jag uppskattade mest var sista avsnittet som är en återskapad dialog mellan författaren Robert Martin och <a title="Bob Koss" href="http://www.objectmentor.com/omTeam/koss_r.html">Bob Koss</a> när de löser ett till synes enkelt programmeringsproblem, att räkna poäng i bowling. Koden samt testkod är bifogad, steg för steg medan den växer fram under deras parprogrammering. Här visas på ett roligt och effektivt vis hur testdriven utveckling tillsammans med parprogrammering driver fram en elegant lösning på problemet.</p>
<p>Den andra delen, Agile Design, är större och mycket tyngre. Här går författarna, förutom &#8221;Code Smells&#8221;, grundligt genom de fem principerna i S.O.L.I.D. samt ägnar en stort antal sidor åt <a title="UML" href="http://www.uml.org/">UML</a>. Även om jag i kapitlen om de olika principerna kände igen mycket av de artiklar Robert Martin tidigare publicerat, upplevde jag det som bättre förklart och lättare att förstå. Exempelvis &#8221;<a title="The Liskov Substitution Principle" href="http://en.wikipedia.org/wiki/Liskov_substitution_principle">The Liskov Substitution Principle</a>&#8221;, som i originaldefinitionen är något svårsmält, tyckte jag var mycket lättare att förstå efter att ha läst det kapitlet. Avsnitten om UML skummade jag faktiskt genom, det är något som jag och antagligen de flesta utvecklare redan fått repetera någon gång för mycket under sin utbildning. Författarna påpekar också redan tidigt i boken att den går utmärkt att läsa utvalda delar ur, och strunta i det man finner mindre intressant.</p>
<p>I den sista delen utvecklar författarna ett fiktivt löneutbetalningssystem, från första kundmötet till hur mjukvaran slutligen paketeras och levereras. Precis som i bowlingsexemplet finns det mängder med kodexempel och testkod, de är heller inte rädda för att ge exempel på kod på en sida för att de efterföljande sidorna bryta ner och i små steg förbättra koden.<br />
Denna delen har flertalet kapitel som vart och ett ägnas åt ett specifikt designmönster, författarna visar hur ett visst designmönster löser ett problem i löneutbetalningssystemet. Det är både välkända och välanvända mönster (Singleton, Strategy, Template Method, Adapter, Decorator, Null Object) och kanske mindre vanliga mönster (Observer, Visitor, State, Bridge) som tas upp och exemplifieras. Författarna har lyckats bra med att inte få exemplen att kännas sökta, i några fall presenteras exempel där de använder ett mönster för att sedan omedelbart förkasta lösningen för att den blir för komplicerad.<br />
Den sista delen innehåller också det kapitel som jag tyckte var mest intressant och lärorikt; kapitlet om paketering av komponenter i ett system. Även i detta området har Robert C. Martin definierat <a title="Principles of OOD" href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">några principer</a> och alla gås grundligt genom. Framförallt avsnittet om beroenden mellan olika komponenter i ett system var väldigt upplysande och gav nya idéer om hur man borde strukturera projekt.</p>
<p>De flesta utvecklare som jobbar med objektorienterade och lättrörliga har något att hämta i denna boken. Den är väldigt komplett vad gäller de olika aspekterna i ett utvecklingsprojekt, från processer och filosofier till specifika implementationer. Den ska dock inte misstas för en bok för att lära sig C#, det är mer eller mindre bara språket som används i exemplen. Boken ger nog mest om läsaren redan har en del erfarenhet av objektorienterad utveckling, men vill utöka sina kunskaper bortom rena algoritmer.<br />
Mycket rekommenderad läsning, och jag passar på att slå ett slag för Clean Code här också, läs den också.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.creuna.se/2010/07/agile-principles-patterns-and-practices-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

