<?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>Jonathan-Pfeifer.net &#187; Prinzipien</title>
	<atom:link href="http://www.jonathan-pfeifer.net/tag/prinzipien/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jonathan-pfeifer.net</link>
	<description>C#, SQL Server, Sharepoint</description>
	<lastBuildDate>Thu, 02 Sep 2010 20:24:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>KISS Prinzip</title>
		<link>http://www.jonathan-pfeifer.net/kiss-prinzip/</link>
		<comments>http://www.jonathan-pfeifer.net/kiss-prinzip/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 13:47:00 +0000</pubDate>
		<dc:creator>Jonathan Pfeifer</dc:creator>
				<category><![CDATA[work-related]]></category>
		<category><![CDATA[.Net Framework (C#)]]></category>
		<category><![CDATA[Clean Code Developer]]></category>
		<category><![CDATA[Prinzipien]]></category>

		<guid isPermaLink="false">http://www.jonathan-pfeifer.net/kiss-prinzip/</guid>
		<description><![CDATA[Ein weiteres Prinzip in der Anwendungsentwicklung. KISS! Damit ist aber nicht die Band gemeint sonder wieder eine Abk&#252;rzung. KISS steht f&#252;r KEEP IT SIMPLE, STUPID! Gemeint ist damit, den einfachsten Weg bei der Entwicklung einer L&#246;sung zu gehen. Auch wenn &#8230; <a href="http://www.jonathan-pfeifer.net/kiss-prinzip/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ein weiteres Prinzip in der Anwendungsentwicklung. </p>
<p><strong>KISS</strong>!</p>
<p>Damit ist aber nicht die Band gemeint sonder wieder eine Abk&uuml;rzung. </p>
<p><strong>KISS</strong> steht f&uuml;r<strong> KEEP IT SIMPLE, STUPID!</strong></p>
<p>Gemeint ist damit, den einfachsten Weg bei der Entwicklung einer L&ouml;sung zu gehen. Auch wenn es evtl. interessanter ist einen komplexeren Algorithmus zu schreiben kostet das aber Zeit und damit Geld. </p>
<p>Mit so wenig Aufwand die gestellte Aufgabe so gut wie m&ouml;glich&#160; zu l&ouml;sen – das ist das Ziel! </p>
<p>Na dann probieren wir’s mal <img src='http://www.jonathan-pfeifer.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So long…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathan-pfeifer.net/kiss-prinzip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DRY Prinzip</title>
		<link>http://www.jonathan-pfeifer.net/dry-prinzip/</link>
		<comments>http://www.jonathan-pfeifer.net/dry-prinzip/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 15:54:00 +0000</pubDate>
		<dc:creator>Jonathan Pfeifer</dc:creator>
				<category><![CDATA[work-related]]></category>
		<category><![CDATA[.Net Framework (C#)]]></category>
		<category><![CDATA[Clean Code Developer]]></category>
		<category><![CDATA[Prinzipien]]></category>

		<guid isPermaLink="false">http://www.jonathan-pfeifer.net/dry-prinzip/</guid>
		<description><![CDATA[In der Anwendungsentwicklung gibt es verschiedene Richtlinien, die einem dabei helfen &#252;bersichtlicheren Code zu schreiben. Eines dieser Prinzipien nennt sich DRY. DRY steht f&#252;r Don’t Repeat Yourself! Ein guter Hinweis. Denn gibt es funktionalen Code, den man per Copy ‘n’ &#8230; <a href="http://www.jonathan-pfeifer.net/dry-prinzip/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In der Anwendungsentwicklung gibt es verschiedene Richtlinien, die einem dabei helfen &uuml;bersichtlicheren Code zu schreiben. </p>
<p>Eines dieser Prinzipien nennt sich <strong>DRY</strong>.</p>
<p>DRY steht f&uuml;r <strong>Don’t Repeat Yourself</strong>! </p>
<p>Ein guter Hinweis. Denn gibt es funktionalen Code, den man per Copy ‘n’ Paste in einer anderen Methode verwenden m&ouml;chte ist man gut beraten stattdessen diesen Code in eine separate Methode auszulagern. </p>
<p>Muss n&auml;hmlich an dieser Logik etwas ge&auml;ndert werden, erfolgt die &Auml;nderung nur an einer Stelle – in der ausgelagerten Methode.</p>
<p>Das hilft Code zu schreiben, der besser wartbar ist.</p>
<p>Viele IDEs haben daf&uuml;r auch eingebaute Funktionen, die es dem Programmierer erlauben vorhanden Code schnell zu &uuml;berarbeiten. <a href="http://www.jonathan-pfeifer.net/wp-content/uploads/2009/11/image.png" rel="lightbox"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.jonathan-pfeifer.net/wp-content/uploads/2009/11/image_thumb.png" width="244" height="188" /></a> </p>
<p>Hier im Beispiel die “Extract Method…” Funktion in Visual Studio 2008. </p>
<p>Wenn man sich an dieses einfache Prinzip h&auml;lt wird der Code um vieles leichter wartbar. </p>
<p>So long…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathan-pfeifer.net/dry-prinzip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Singleton Pattern</title>
		<link>http://www.jonathan-pfeifer.net/singleton-pattern/</link>
		<comments>http://www.jonathan-pfeifer.net/singleton-pattern/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:30:00 +0000</pubDate>
		<dc:creator>Jonathan Pfeifer</dc:creator>
				<category><![CDATA[work-related]]></category>
		<category><![CDATA[.Net Framework (C#)]]></category>
		<category><![CDATA[Clean Code Developer]]></category>
		<category><![CDATA[Prinzipien]]></category>

		<guid isPermaLink="false">http://www.jonathan-pfeifer.net/singleton-pattern/</guid>
		<description><![CDATA[Das Singleton Pattern erlaubt es einem Programmierer von einer Klasse genau eine Instanz zu erstellen. Auf die Methoden und Eigenschaften dieser Klasse kann man von &#252;berall her zugreifen. namespace MyApplication {     class Singleton     {         // instance of &#8230; <a href="http://www.jonathan-pfeifer.net/singleton-pattern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Das Singleton Pattern erlaubt es einem Programmierer von einer Klasse genau eine Instanz zu erstellen. Auf die Methoden und Eigenschaften dieser Klasse kann man von &uuml;berall her zugreifen.</p>
<div style="font-family: courier new; background: white; color: black; font-size: 10pt">
<pre style="margin: 0px"><span style="color: blue">namespace</span> MyApplication</pre>
<pre style="margin: 0px">{</pre>
<pre style="margin: 0px">    <span style="color: blue">class</span> <span style="color: #2b91af">Singleton</span></pre>
<pre style="margin: 0px">    {</pre>
<pre style="margin: 0px">        <span style="color: green">// instance of Singleton Class</span></pre>
<pre style="margin: 0px">        <span style="color: blue">private</span> <span style="color: blue">static</span> Singleton instance;</pre>
<pre style="margin: 0px">        <span style="color: green">// constructor set to private!</span></pre>
<pre style="margin: 0px">        <span style="color: blue">private</span> Singleton()</pre>
<pre style="margin: 0px">        {</pre>
<pre style="margin: 0px">        }</pre>
<pre style="margin: 0px">        <span style="color: green">// methode to access this class and all methodes</span></pre>
<pre style="margin: 0px">        <span style="color: green">// within Singleton Class</span></pre>
<pre style="margin: 0px">        <span style="color: blue">public</span> <span style="color: blue">static</span> Singleton getInstance()</pre>
<pre style="margin: 0px">        {</pre>
<pre style="margin: 0px">            <span style="color: blue">if</span>(instance == <span style="color: blue">null</span>)</pre>
<pre style="margin: 0px">                instance = <span style="color: blue">new</span> Singleton();</pre>
<pre style="margin: 0px">            <span style="color: blue">return</span> instance;</pre>
<pre style="margin: 0px">        }</pre>
<pre style="margin: 0px">        <span style="color: green">// a methode that you like to get access to</span></pre>
<pre style="margin: 0px">        <span style="color: blue">public</span> <span style="color: blue">void</span> DoSomethingVerySpecific()</pre>
<pre style="margin: 0px">        {</pre>
<pre style="margin: 0px">            <span style="color: green">// Does something very specific</span></pre>
<pre style="margin: 0px">        }</pre>
<pre style="margin: 0px">    }</pre>
<pre style="margin: 0px">    <span style="color: blue">class</span> <span style="color: #2b91af">SomethingElse</span></pre>
<pre style="margin: 0px">    {</pre>
<pre style="margin: 0px">        <span style="color: blue">public</span> <span style="color: blue">void</span> DoSomething()</pre>
<pre style="margin: 0px">        {</pre>
<pre style="margin: 0px">            <span style="color: green">// calling the methode from anywhere</span></pre>
<pre style="margin: 0px">            Singleton.getInstance().DoSomethingVerySpecific();</pre>
<pre style="margin: 0px">        }</pre>
<pre style="margin: 0px">    }</pre>
<pre style="margin: 0px">}</pre>
</div>
<p>Was ben&ouml;tigt man nun um eine Klasse als Singleton zu implementieren?</p>
<p>Der Konstruktor wird private gesetzt, sodass man von au&szlig;en keine Instanz dieser Klasse erstellen kann. Als n&auml;chstes ben&ouml;tigt man eine Variable vom Typ der Singletonklasse. Diese wird ebenfalls private und auf static gesetzt.</p>
<p>Wie kommen wir nun an die Methoden und Eigenschaften dieser Klasse?</p>
<p>Wir schreiben eine public Methode <strong>getInstance().</strong> Diese Methode pr&uuml;ft, ob die Variable <strong>instance</strong> schon einmal initialisiert wurde. Wenn nicht, wird die Variable initialisiert (innerhalb der Klasse k&ouml;nnen wir ja auf den Konstruktor zugreifen) und zur&uuml;ckgegeben.</p>
<p>Jetzt k&ouml;nnen wir in anderen Klassen &uuml;ber <strong>Singleton.getInstance().DoSomethingVerySpecific()</strong> auf die Singletonklasse zugreifen.</p>
<p>Soviel erstmal dazu.</p>
<p>So long…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathan-pfeifer.net/singleton-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
