<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Webtubes &#187; PHP</title>
	<atom:link href="http://www.webtubes.de/category/programmierung/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webtubes.de</link>
	<description>Web Development aus meiner Sicht</description>
	<lastBuildDate>Thu, 15 Dec 2011 21:02:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Yii Framework &#8211; das PHP Framework meiner Wahl</title>
		<link>http://www.webtubes.de/programmierung/php/yii-framework-das-php-framework-meiner-wahl/</link>
		<comments>http://www.webtubes.de/programmierung/php/yii-framework-das-php-framework-meiner-wahl/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 17:20:26 +0000</pubDate>
		<dc:creator>Robert Bernhard</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.webtubes.de/?p=407</guid>
		<description><![CDATA[Irgendwann stand oder steht wohl jeder PHP-Entwickler einmal vor dem Problem der Auswahl eines geeigneten PHP Frameworks. Bis vor einigen Monaten habe ich mich primär mit selbst erstellten Frameworks herum geschlagen. Nicht das die Frameworks schlecht waren, jedoch verspürte ich mehr und mehr den Drang, bekannte PHP-Frameworks kennen zu lernen. Dies ist nicht zuletzt dem Umstand [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.webtubes.de/programmierung/php/yii-framework-das-php-framework-meiner-wahl/"><img class="aligncenter size-full wp-image-419" title="Yii Framework" src="http://www.webtubes.de/wp-content/uploads/yii.png" alt="" width="580" height="126" /></a></p>
<p>Irgendwann stand oder steht wohl jeder PHP-Entwickler einmal vor dem Problem der Auswahl eines geeigneten PHP Frameworks. Bis vor einigen Monaten habe ich mich primär mit selbst erstellten Frameworks herum geschlagen. Nicht das die Frameworks schlecht waren, jedoch verspürte ich mehr und mehr den Drang, bekannte PHP-Frameworks kennen zu lernen. Dies ist nicht zuletzt dem Umstand geschuldet, dass am Markt befindliche Ressourcen nicht kompatibel zu selbst erstellten Frameworks sind (der Aufwand und somit die Kosten sind zu hoch).</p>
<p><a href="http://framework.zend.com/"><img class="alignright size-full wp-image-422" title="Zend Framework" src="http://www.webtubes.de/wp-content/uploads/PoweredBy_ZF_4LightBG.png" alt="" width="127" height="25" /></a>So fiel meine Wahl zunächst auf ZEND Framework – das Flaggschiff unter den PHP Frameworks. ZEND ist ein sehr mächtiges aber leider auch ein unterirdisch performantes Framework. Die eigenartige auf Grund von PHP Abwärtskompatibilität angewendete Namespace-Implementierung mit Unterstrichen sowie die Komplexität des ZEND-Monsters haben mich jedoch zunehmend abgeschreckt. Mit ZEND gehen viele Dinge, wirklich sehr viele, aber in der Regel brauche ich diese Dinge nicht. Insofern bestand tief in mir der Wunsch nach einem schlankeren, Ressourcen schonendem und gut dokumentierten Framework Ausschau zu halten. Das Framework sollte zudem einfach konfigurierbar und modular verwendbar sein. Die Möglichkeit Extensions zur Erweiterung des Frameworks einzubinden, setze ich als gegeben voraus.</p>
<p><span id="more-407"></span></p>
<p>Folgende Komponenten sollte das Framework unbedingt an Board haben:</p>
<ul>
<li>MVC</li>
<li>modular erweiterbar (Module)</li>
<li>i18n (Mehrsprachigkeit)</li>
<li>einfache Konfiguration</li>
<li>ORM einfach austauschbar (falls erforderlich)</li>
<li>gut aufgestellte Community (wichtig für Extensions und Support)</li>
<li>gute Dokumentation (sowie im Code als auch im User Guide)</li>
<li>Access Control &amp; Rights Management</li>
<li>Unit Tests</li>
<li>gute Erweiterbarkeit und somit Flexibilität in jeglicher Hinsicht</li>
<li>Benutzer definiertes URL-Design (Routing)</li>
</ul>
<p><a href="http://www.yiiframework.com/"><img class="size-medium wp-image-419 alignright" style="border-style: initial; border-color: initial;" title="Yii Framework" src="http://www.webtubes.de/wp-content/uploads/yii-300x64.png" alt="" width="300" height="64" /></a></p>
<p>Sicherlich erfüllen sehr viele PHP-Frameworks oben genannte Ansprüche, allerdings wollte ich nach ZEND einem noch jungen Projekt meine Aufmerksamkeit schenken. So viel mein Blick eher zufällig als gezielt auf Yii. Angestachelt durch den <a title="Yii Performance Vergleich" href="http://www.yiiframework.com/performance/">Yii Performance Vergleich</a> mit diversen anderen Frameworks begann ich mich also in Yii einzulesen. Die ersten Tests verliefen zügig und funktionierten ohne Wehwechen – das kannte ich von ZEND auch anders. Module funktionieren von Haus aus, ohne das ich mich in Konfigurationsdateien tot wuseln muss. Selbst Module in Modulen in Modulen … funktionieren ohne groß Schnickschnack veranstalten zu müssen. Das hat mich dann doch sehr beeindruckt.</p>
<p>Das implementierte ORM (AR) ist sehr leistungsfähig, jedoch wie ich finde für Cloud Entwicklung nur bedingt geeignet. Das Problem des ORM ist schlichtweg, dass aus dem Code kein Datenbankschema generiert werden kann (zumindest nicht von Haus aus). Abgesehen davon beherrscht das ORM jedoch alles, was die tägliche Entwicklung benötigt. Mit Dcotrine2ORM, einer Extension zum Implementierung von Doctrine 2.0 in Yii, gibt es die für mich bessere Alternative, die sich ohne Probleme einbinden und nutzen lässt und diesen Missstand behebt.</p>
<p>Nun kann man denken was man will, die Leistungsfähigkeit und Performance eines Frameworks ist lediglich in einem realen Projekt sinnvoll einschätzbar. Von “Hello World” Tests halte ich persönlich nicht viel. Es gilt also ein Exempel zu statuieren, um über zuvor genannte Punkte eine gute Aussage treffen zu können. Ein Vergleich zu anderen Frameworks ist dadurch jedoch auch nur bedingt möglich.</p>
<p>Wie es der Zufall so will, holte ich also eine meiner Ideen aus der Schublade und begann zusammen einem Freund daraus ein Konzept zusammen zu tragen – zunächst alles ohne Yii <img src='http://www.webtubes.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Nachdem wir festgestellt hatten, dass sich die Idee umzusetzen lohnt, haben wir sämtliche erforderliche Seiten und Masken als Prototypen Sketches entworfen und von meinem Designer auf Basis dieser Grundlage ein Layout erstellen lassen. Kosten für weitere Dienstleistungen haben wir im Budget natürlich einfließen lassen, denn wenn man etwas macht dann richtig (-&gt; no money no honey).  genug gesülzt…</p>
<p>Die Landingpage zur Registrierung, zum Login, Passwort zurück setzen etc. ist fertig gestellt und ich erlaube mir an dieser Stelle ein Zwischenfazit. Die Entwicklung mit dem Yii Framework macht einem erfahrenen Entwickler wie mir nicht zuletzt wegen der ausgezeichneten Dokumentation sehr viel Spaß. Das Framework erweist sich als sehr gelungen und flexibel erweiterbar. Komponenten und Erweiterungen lassen sich nach Bedarf sehr trivial ein- beziehungsweise abschalten.</p>
<p>Mit einem Speicherverbrauch (LAMP, inklusive Doctrine, i18n, Verwendung von Modulen, APC=on) von 3,5-5,5 MB pro Request für die bisher entstandenen nicht sonderlich komplexen Seiten ist Yii in meinen Augen sehr Ressourcen schonend. Zum (ungleichen) Vergleich – eine WordPress Installation benötigt ohne Zusatzfeatures 14 MB. Mit einigen Plugins sind 32 MB schnell geknackt. Ein Drupal langt mit 15-40MB ebenfalls üppig zu. Zu bedenken ist, dass unter anderem der Arbeitsspeicher die Anzahl synchroner Requests begrenzt. Wenn das System zum Beispiel 30GB für Apache-Prozesse einräumt (entspricht Anzahl Apache max. Connections multipliziert mit PHP memory_limit) komme ich mit meinem Messergebnis auf 30*1024 / 5,5 = 5.585 maximale mögliche Connections zur gleichen Zeit – das ist verglichen mit WordPress (14 MB, 2.194) oder Drupal (20 MB, 1.536) sehr viel. Dieser Wert ist rein rechnerisch zu betrachten und nicht praxistauglich. Hier spielen noch andere Faktoren (IO, Datenbank Connections, etc.) eine Rolle. Allerdings zeigt der Vergleich durchaus auf, dass Ressourcen für andere wichtige Dinge aufgespart werden.</p>
<p>Warum ich meine jungfräuliche Yii-Applikation mit WordPress/Drupal vergleiche? Weil beide geläufige und zuhauf eingesetzte Softwares sind und jeder diese Softwares kennt. Wie bereits geschrieben ist der Vergleich sehr ungleich. Meine Yii Applikation ist natürlich lange nicht so funktionell wie ein WordPress oder ein Drupal. Wenn ich allerdings bedenke, dass Doctrine schon eine fette Sau ist und die Messergebnisse im Debug Modus zu Stande kommen (Logging, Debug Toolbar, etc.), so kommt mir der Speicherverbrauch doch sehr niedrig vor.</p>
<p>Ich nehme dieses erste Posting zum Yii Framework zum Anlass, weiter über meine Erfahrungen mit dem Yii Framework zu berichten.</p>
<p>Stay tuned!</p>
<p>Links:<br />
<a href="http://www.yiiframework.com/">http://www.yiiframework.com</a> - Yii Framework<br />
<a href="http://framework.zend.com/">http://framework.zend.com/</a> - Zend Framework</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webtubes.de/programmierung/php/yii-framework-das-php-framework-meiner-wahl/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Regulärer Ausdruck zum Verlinken von Bildern für Lightbox/Slimbox</title>
		<link>http://www.webtubes.de/programmierung/php/regularer-ausdruck-zum-verlinken-von-bildern-fur-lightboxslimbox/</link>
		<comments>http://www.webtubes.de/programmierung/php/regularer-ausdruck-zum-verlinken-von-bildern-fur-lightboxslimbox/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 12:00:50 +0000</pubDate>
		<dc:creator>Robert Bernhard</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.webtubes.de/?p=87</guid>
		<description><![CDATA[Es kommt immer wieder mal vor, dass man vor die Aufgabe gestellt wird, einen in der Datenbank abgelegten Quelltext für die Ausgabe vor zu bereiten. Nicht zuletzt peppen Plugins wie Lightbox oder Slimbox ein eingestaubtes CMS System mächtig auf, in dem Bilder in einer sehr schönen Optik vergrößert angezeigt werden können. Bevor man sich nun [...]]]></description>
			<content:encoded><![CDATA[<p>Es kommt immer wieder mal vor, dass man vor die Aufgabe gestellt wird, einen in der Datenbank abgelegten Quelltext für die Ausgabe vor zu bereiten. Nicht zuletzt peppen Plugins wie <a href="http://www.lokeshdhakar.com/projects/lightbox2/">Lightbox</a> oder <a href="http://www.digitalia.be/software/slimbox">Slimbox</a> ein eingestaubtes CMS System mächtig auf, in dem Bilder in einer sehr schönen Optik vergrößert angezeigt werden können.</p>
<p>Bevor man sich nun die Arbeit macht, jedes im Quellcode eingebettetes Bild (&lt;img src=&#8221;" &#8230; &gt;) an das auserwählte Plugin anzupassen, macht ein regulärer Ausdruck hier viel mehr Sinn.</p>
<p>Beim Einsatz von PHP genügt folgender regulärer Ausdruck, um alle Bilder eines Quelltextes für Lightbox beziehungsweise Slimbox anzupassen:<br />
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">PHP-Snippet</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$str</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a> <span style="color: #009900;">&#40;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">&quot;#()#siU&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$1</span>&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #000088;">$str</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Einfach aber gut stimmts?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webtubes.de/programmierung/php/regularer-ausdruck-zum-verlinken-von-bildern-fur-lightboxslimbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Übersichtliche Quelltexte unabhängig von der Programmiersprache</title>
		<link>http://www.webtubes.de/programmierung/php/ubersichtliche-quelltexten-unabhangig-von-der-programmiersprache/</link>
		<comments>http://www.webtubes.de/programmierung/php/ubersichtliche-quelltexten-unabhangig-von-der-programmiersprache/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 23:51:12 +0000</pubDate>
		<dc:creator>Robert Bernhard</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Quelltext]]></category>

		<guid isPermaLink="false">http://www.webtubes.de/?p=46</guid>
		<description><![CDATA[Als langjähriger Entwickler schlägt man sich bei einem Blick auf den eigenen Quellcode von früheren Zeiten doch sehr oft die Hände über dem Kopf zusammen &#8220;Wer soll das bitte lesen? Wo sind alle die Kommentare abgeblieben? Für was steht gleich die Variable $a2?&#8221;. Gerade heute habe ich wieder über fremden Quellcode schauen müssen und dachte [...]]]></description>
			<content:encoded><![CDATA[<p>Als langjähriger Entwickler schlägt man sich bei einem Blick auf den eigenen Quellcode von früheren Zeiten doch sehr oft die Hände über dem Kopf zusammen &#8220;Wer soll das bitte lesen? Wo sind alle die Kommentare abgeblieben? Für was steht gleich die Variable $a2?&#8221;. Gerade heute habe ich wieder über fremden Quellcode schauen müssen und dachte mir, dass dies ein guter Anlass für ein solches Posting wäre.<span id="more-46"></span></p>
<h3>Worauf kommt es bei einem guten Quelltext an?</h3>
<p>Nun zunächst einmal sollte das Dokument möglichst nicht mehrere 1000 Zeilen groß sein. Quelltexte dieser Größe lassen sich nur schwer überblicken. Mehrere kleine Dokumente lassen sich. Nach meiner Erfahrung in Hinsicht auf Teamarbeit und Dokumentation hat es sich oft gezeigt, dass sich das Aufdröseln unterm Strich gelohnt hat. Allerdings trifft das nicht immer zu!</p>
<h3>Sinnvolle Benennung von Variablen</h3>
<p>Weiterhin sollte ein Programmierer sich bei der Benennung von Variablen lieber 10 Minuten zeit nehmen, anstatt die Programmierung mit Sinn entleerten Variablen Bezeichnungen fort zu setzen. Nehmen wir zum Beispiel an, eine Variable für die Gesamtsumme eines Warenkorbes deklariert werden muss.<br />
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">PHP-Snippet</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color:#800080;">999999.99</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Ok b wie Basket klingt ok oder? Nein das geht absolut gar nicht! Denken Sie sich mal in die Situation hinein, Sie müssten Ihren Quelltext in 2 oder 3 Jahren überarbeiten. Prost Mahlzeit! $b ist einfach nur Sinn entleert.</p>
<p>Nehmen wir uns doch etwas mehr Zeit bei der Findung des Variablennamens:<br />
Welchen Wert enthält die Variable? Die Gesamtsumme aller Waren im Warenkorbes&#8230;<br />
Inklusive oder exklusive Mehrwertsteuer? inklusive Mehrwertsteuer&#8230;</p>
<p>Demzufolge ist es doch ein Einfaches die Variable schlüssig zu benennen oder?<br />
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">sprechende Variablennamen</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$basketSumBrutto</span> <span style="color: #339933;">=</span> <span style="color:#800080;">999999.99</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Den Sinn dieser Variable hat man immer sofort vor Augen stimmts? Die einzige  Art von Variablen, die möglichst kurz benannt werden sollten, sind Zählvariablen.</p>
<h3>Einrückung Einrückung und nochmal Einrückung</h3>
<p>In vielen Programmiersprachen hat es sich durchgesetzt, mittels Tabulator einzurücken. Das hat den Vorteil, dass ein TAB vom Programmierer in der Regel in seiner Entwicklungsumgebung frei konfigurierbar ist. So kann ein TAB bei einem Programmierer, welche auf Quetschkommode steht, 2 Leerzeichen entsprechen und bei den meisten anderen wird der TAB genau 4 Leerzeichen entsprechen. Es ist jedoch zu beachten, dass <span style="text-decoration: line-through;">der Editor</span> die Entwicklungsumgebung die Tabs beim Speichern nicht in Leerzeichen konvertiert. Denn das wäre dann fatal! Einige Unix Programmierer werden mich jetzt schlagen, aber ich lege mich nachfolgend auf die Einrückung mittels TAB fest.</p>
<p>Betrachten wir uns folgendes Snippet:<br />
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">unübersichtlicher Quellcode</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$sprache</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;deutsch&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$vorname</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Max&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$nachname</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Mustermann&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$strasse</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Musterstraße&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$hausnr</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;10&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$plz</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;01234&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$ort</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Musterstadt&quot;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Auf den ersten Blick sieht das fast ok aus, aber das geht viel besser und übersichtlicher:</p>
<div id="wpshdo_5" class="wp-synhighlighter-outer"><div id="wpshdt_5" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_5"></a><a id="wpshat_5" class="wp-synhighlighter-title" href="#codesyntax_5"  onClick="javascript:wpsh_toggleBlock(5)" title="Click to show/hide code block">übersichtlicher Quellcode</a></td><td align="right"><a href="#codesyntax_5" onClick="javascript:wpsh_code(5)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_print(5)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_5" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$sprache</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;deutsch&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$vorname</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Max&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$nachname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Mustermann&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$strasse</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstraße&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$hausnr</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;10&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$plz</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;01234&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$ort</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstadt&quot;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div>
<p>Und was liest sich jetzt besser? Klar macht es etwas Arbeit, den Code wie eben gezeigt etwas schöner zu gestalten, aber eins ist sicher: Nachfolgend über den Code blickende Dritte haben sehr viel mehr Vergnügen beim Lesen. Und auch der Autor des Quelltextes wird selbst nach Jahren noch sagen &#8211; super übersichtlich! Für Entwickler, die innerhalb eines größeren Teams arbeiten, sollte dieser Stil zu guten Pflicht gehören.</p>
<h3>Kommentare</h3>
<p>Mit dem Kommentaren haben es die wenigsten Programmierer. Die meisten setzen der Einfachheit gar keine Kommentare. Autsch! Viele Programmierer, die dann doch Kommentare setzen, meinen es mit dem Kommentieren aber leider zu gut. Zum Beispiel sind solche Kommentare hier völliger Blödsinn und können getrost weg gelassen werden.<br />
<div id="wpshdo_6" class="wp-synhighlighter-outer"><div id="wpshdt_6" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_6"></a><a id="wpshat_6" class="wp-synhighlighter-title" href="#codesyntax_6"  onClick="javascript:wpsh_toggleBlock(6)" title="Click to show/hide code block">unsinnige Kommentare</a></td><td align="right"><a href="#codesyntax_6" onClick="javascript:wpsh_code(6)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_print(6)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_6" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Sprache des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$sprache</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;deutsch&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Vorname des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$vorname</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Max&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Nachname des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$nachname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Mustermann&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Straße des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$strasse</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstraße&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Hausnummer des Clienten</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$hausnr</span>      <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;10&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Postleitzahl des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$plz</span>      <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;01234&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Ort des Clienten</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$ort</span>      <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstadt&quot;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Hallo? Davon ausgehend, dass wir inzwischen Variablen sinnvoll benennen, sind diese Kommentare doch wirklich absolut überflüssig. Zumal diese Kommentare den gesamten Variablenblock zerstören. Wenn man hier schon unbedingt kommentieren möchte, dann empfehle ich maximal einen Kommentar oberhalb dieses thematisch zusammen gehörigen Blockes. Wie gesagt wenn überhaupt!</p>
<div id="wpshdo_7" class="wp-synhighlighter-outer"><div id="wpshdt_7" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_7"></a><a id="wpshat_7" class="wp-synhighlighter-title" href="#codesyntax_7"  onClick="javascript:wpsh_toggleBlock(7)" title="Click to show/hide code block">Kommentar für gesamten Block</a></td><td align="right"><a href="#codesyntax_7" onClick="javascript:wpsh_code(7)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_print(7)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_7" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Clientendaten für Musterdatensatz</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$sprache</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;deutsch&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$vorname</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Max&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$nachname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Mustermann&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$strasse</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstraße&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$hausnr</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;10&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$plz</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;01234&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$ort</span>	  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Musterstadt&quot;</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div>
<p><strong>Doch wo machen Kommentare eigentlich Sinn?</strong></p>
<p>Ganz einfach. Kommentare sollten Codestrukturen beschreiben, die nicht selbsterklärend sind. Das können zum Beispiel Funktionen, Klassen oder größere Codeblöcke sein. Hier bietet es sich jedoch an, die Kommentare zu konsolidieren beziehungsweise zu bündeln (der Code und der Kommentar sind examplarisch zu sehen).<br />
<div id="wpshdo_8" class="wp-synhighlighter-outer"><div id="wpshdt_8" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_8"></a><a id="wpshat_8" class="wp-synhighlighter-title" href="#codesyntax_8"  onClick="javascript:wpsh_toggleBlock(8)" title="Click to show/hide code block">Beispiel sinnvoller Kommentare</a></td><td align="right"><a href="#codesyntax_8" onClick="javascript:wpsh_code(8)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_print(8)" title="Print code"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.webtubes.de/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_8" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Berechnung der Gesamtsumme aller Waren innerhalb des Warenkorbs</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// Die Beträge in Array $basketItems liegen netto vor! Das Array</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// $basketItems enhält folgende Struktur:</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">// 	[][item] =&gt;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">//		[</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">//			[id] 	=&gt; int,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">//			[menge] =&gt; int,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">//			[preis] =&gt; double</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #666666; font-style: italic;">//		]</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$basketSumNetto</span>  <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$basketSumBrutto</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$basketItems</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$item_x</span><span style="color: #009900;">&#41;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$basketSumNetto</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$item_x</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'menge'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$item_x</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'preis'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$basketSumBrutto</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$basketSumNetto</span> <span style="color: #339933;">*</span> <span style="color:#800080;">1.19</span><span style="color: #339933;">;</span></div></li></ol></pre></div></div><br />
Bei Klassen beziehungsweise Methoden bietet es sich an auf standardisierte Techniken zur Dokumentation zurück zu greifen.</p>
<ul>
<li><a href="http://www.phpdoc.org/" target="_blank">PHPDoc für PHP</a></li>
<li><a href="http://java.sun.com/j2se/javadoc/writingdoccomments/" target="_blank">Javadoc für Java</a></li>
<li><a href="http://www.ruby-doc.org/" target="_blank">Rubydoc für Ruby</a></li>
<li><a href="http://effbot.org/zone/pythondoc.htm" target="_blank">PythonDoc für Python</a></li>
</ul>
<p>Es gibt quasi für nahezu jede Programmiersprache ein passendes Pendant. Der Vorteil dieser Tools ist neben der Standardisierung die entstehende Quelltext Dokumentation in Form einer übersichtlichen Ansammlung von sämtlichen dokumentierten Quellcode. <a href="http://manual.phpdoc.org/HTMLframesConverter/default/" target="_blank">Beispiel für PHPDoc</a></p>
<h3>Was wir gelernt haben</h3>
<p>Es ist nicht entscheidend, eine Quellcode möglichst schnell zu programmieren, sondern möglichst gut lesbar, dokumentiert, durchdacht und fehlerfrei. Die Zeit, die man zur Optimierung des Quelltextes verwendet, spart man sich später beim Debugging oder bei anstehenden Erweiterungen am Quelltext. Man sollte sich als Programmierer einen programmierten Quellcode nach etwas längerer Zeit mit etwas Abstand nochmals ansehen und nach dokumentieren. Das Problem ist nämlich eine Betriebsblindheit. Seinen eigenen Quellcode kennt man zum Zeitpunkt des Schreibens immer. Daher erscheinen viele Dinge logisch, sind es jedoch ganz und gar nicht.</p>
<p>Ich habe mir all diese kleinen Dinge in einem tollen Team angelernt. Natürlich sollten beim gemeinsamen Arbeiten innerhalb eines Teams viele weitere kleine Details schriftlich fixiert und als Style Guide oder wie auch immer man dieses Dokument bezeichnen mag zur Verfügung gestellt werden. Ansatzpunkte könnten hier sein:</p>
<ul>
<li>Variablen Buckelschreibweise oder Unterstrichschreibweise</li>
<li>Festlegung der zu verwendenden Kommentarsyntax (z.B. PHPDoc)</li>
<li> Codestruktur (z.B. oben Logik unten Ausgabe)</li>
<li>Instanzen von Objekten mit großen ANfangsbuchstaben</li>
</ul>
<p>Ein Brainstorming innerhalb eines lockeren Teammeetings wird noch viele weitere Punkte auf die Liste bringen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webtubes.de/programmierung/php/ubersichtliche-quelltexten-unabhangig-von-der-programmiersprache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.142 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-01-19 11:36:43 -->

