<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Kommentare zu: Programmiert immer so, als ob es keinen Cache gibt</title>
	<atom:link href="http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Mon, 06 Feb 2012 20:59:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: MicroMax</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-46412</link>
		<dc:creator>MicroMax</dc:creator>
		<pubDate>Mon, 09 Aug 2010 13:08:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-46412</guid>
		<description>Hi,

ein wirklich ausgezeichneter Artikel, bestätigt mich in meiner Programmierung.
Ich habe mir bisher immer Gedanken ums Caching gemacht, aber trenne beide &quot;Systeme&quot; voneinander bzw. verschachtel es wenn dann so, dass ein Flag das gesamte integrierte Caching aktiviert.

Ich hab aktuell ein Projekt am laufen auf http://moviestreamsonline.freeiz.com was noch mit keinem Caching arbeitet und ich noch keines vorimplementiert habe.
Würde mich über Vorschläge freuen!

Besten Dank
Grüße</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>ein wirklich ausgezeichneter Artikel, bestätigt mich in meiner Programmierung.<br />
Ich habe mir bisher immer Gedanken ums Caching gemacht, aber trenne beide &#8220;Systeme&#8221; voneinander bzw. verschachtel es wenn dann so, dass ein Flag das gesamte integrierte Caching aktiviert.</p>
<p>Ich hab aktuell ein Projekt am laufen auf <a href="http://moviestreamsonline.freeiz.com" rel="nofollow">http://moviestreamsonline.freeiz.com</a> was noch mit keinem Caching arbeitet und ich noch keines vorimplementiert habe.<br />
Würde mich über Vorschläge freuen!</p>
<p>Besten Dank<br />
Grüße</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Michael</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-45909</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 20 Jul 2010 11:47:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-45909</guid>
		<description>Prinzipiell gebe ich dir und den meisten Kommentatoren recht, allerdings gibt es Ausnahmen.

&quot;50 Queries sollten niemals mehr als 5 Sekunden brauchen&quot; 80% der Projekte, welche Cachen, das Caching nicht bräuchten, wenn man mal ordentlich an der Performance-Schraube drehen würde.</description>
		<content:encoded><![CDATA[<p>Prinzipiell gebe ich dir und den meisten Kommentatoren recht, allerdings gibt es Ausnahmen.</p>
<p>&#8220;50 Queries sollten niemals mehr als 5 Sekunden brauchen&#8221; 80% der Projekte, welche Cachen, das Caching nicht bräuchten, wenn man mal ordentlich an der Performance-Schraube drehen würde.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Don Zampano</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-34336</link>
		<dc:creator>Don Zampano</dc:creator>
		<pubDate>Wed, 05 Aug 2009 07:28:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-34336</guid>
		<description>Da ich annehme, dass ca. 90% aller von den Lesern geschriebenen Anwendungen CRUD sind, gibt es auch einen anderen Ansatz für die Programmierung solcher Sachen: 
lasst das R weg!

R steht für Read, was analog auch für Reporting stehen kann.
CUD müssen möglichst &quot;realtime&quot; abgehandelt werden, aber gilt das für R auch?

Kleine Erläuterung, um es besser zu verstehen:
Im dem Augenblick, in dem Daten gespeichert werden, sind sie auch schon veraltet. Jede Routine, die Daten verändert, muss sowieso zu genau diesem Zetpunkt seine Prüfungen fahren, denn in der Zwischenzeit können die Daten geändert worden sein.
Wie lang dieser Zeitpunkt ist, das ist die Vertragssache mit dem Kunden über SLAs und bestimmt den Preis ;-)

Aber das R(eporting) kann eine völlig eigenständige Anwendung sein bzw. eine separate Domain. Und da die Daten ja sowieso veraltet sind, spielt es hierbei nur eine Rolle, wie alt Daten sein sollen, die angezeugt werden.
UNd damit kann dieser &quot;R-Teil&quot; bis zum Gehtnichtmehr und St.-Nimmerleins-Tag optimiert werden, mit Caching, OLAP, etc. ect.

Um die Fanatiker der concurrent- oder constistency-Paranoia zu beruhigen: auch im realen Leben kann man nicht erwarten, dass eine Anweisung sofort und reibungslos ausgeführt wird. Auch das ist Teile einer Abmachung.

Cheers!</description>
		<content:encoded><![CDATA[<p>Da ich annehme, dass ca. 90% aller von den Lesern geschriebenen Anwendungen CRUD sind, gibt es auch einen anderen Ansatz für die Programmierung solcher Sachen:<br />
lasst das R weg!</p>
<p>R steht für Read, was analog auch für Reporting stehen kann.<br />
CUD müssen möglichst &#8220;realtime&#8221; abgehandelt werden, aber gilt das für R auch?</p>
<p>Kleine Erläuterung, um es besser zu verstehen:<br />
Im dem Augenblick, in dem Daten gespeichert werden, sind sie auch schon veraltet. Jede Routine, die Daten verändert, muss sowieso zu genau diesem Zetpunkt seine Prüfungen fahren, denn in der Zwischenzeit können die Daten geändert worden sein.<br />
Wie lang dieser Zeitpunkt ist, das ist die Vertragssache mit dem Kunden über SLAs und bestimmt den Preis <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Aber das R(eporting) kann eine völlig eigenständige Anwendung sein bzw. eine separate Domain. Und da die Daten ja sowieso veraltet sind, spielt es hierbei nur eine Rolle, wie alt Daten sein sollen, die angezeugt werden.<br />
UNd damit kann dieser &#8220;R-Teil&#8221; bis zum Gehtnichtmehr und St.-Nimmerleins-Tag optimiert werden, mit Caching, OLAP, etc. ect.</p>
<p>Um die Fanatiker der concurrent- oder constistency-Paranoia zu beruhigen: auch im realen Leben kann man nicht erwarten, dass eine Anweisung sofort und reibungslos ausgeführt wird. Auch das ist Teile einer Abmachung.</p>
<p>Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Nils Langner</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-33851</link>
		<dc:creator>Nils Langner</dc:creator>
		<pubDate>Wed, 22 Jul 2009 18:57:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-33851</guid>
		<description>@J: Danke danke. Aber keine Sorge, Caching steht gar nicht so weit hinten in der Artikelliste.</description>
		<content:encoded><![CDATA[<p>@J: Danke danke. Aber keine Sorge, Caching steht gar nicht so weit hinten in der Artikelliste.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: J</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-33846</link>
		<dc:creator>J</dc:creator>
		<pubDate>Wed, 22 Jul 2009 15:33:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-33846</guid>
		<description>Wirklich interessant!
Aber wie funktioniert das mit dem Cachen überhaupt??
Was cached man sinnvoll und wann?</description>
		<content:encoded><![CDATA[<p>Wirklich interessant!<br />
Aber wie funktioniert das mit dem Cachen überhaupt??<br />
Was cached man sinnvoll und wann?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: rbq</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-33839</link>
		<dc:creator>rbq</dc:creator>
		<pubDate>Wed, 22 Jul 2009 11:48:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-33839</guid>
		<description>&gt; Und deine Factory-Singleton-Kombination ist nichts anderes als eine globale Variable. Pfui!

Ne, das heißt jetzt Dependency Injection Container und ist cool. =)

Was mir gerade mal jemand erklären muss ist allerdings, wann und warum man überhaupt auf die abgedrehte Idee kommen sollte, ausgerechnet SQL-Queries mit PHP zu cachen.</description>
		<content:encoded><![CDATA[<p>&gt; Und deine Factory-Singleton-Kombination ist nichts anderes als eine globale Variable. Pfui!</p>
<p>Ne, das heißt jetzt Dependency Injection Container und ist cool. =)</p>
<p>Was mir gerade mal jemand erklären muss ist allerdings, wann und warum man überhaupt auf die abgedrehte Idee kommen sollte, ausgerechnet SQL-Queries mit PHP zu cachen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Ulf</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/programmiert-immer-so-als-ob-es-keinen-cache-gibt/comment-page-1/#comment-33838</link>
		<dc:creator>Ulf</dc:creator>
		<pubDate>Wed, 22 Jul 2009 11:27:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3346#comment-33838</guid>
		<description>So wie du es beschrieben hast, ist es schon besser, wirklich gefallen tut es mir aber noch nicht.

Du hast bei deiner Lösung das Problem, dass du Geschäftslogik doppelst. Wenn du beispielweise deine ResultSets von Queries erweitern möchtest, musst du dies jedes Mal an zwei Stellen tun. Die Stelle die den Cache abfragt und die Stelle die die Persistenzschicht direkt anfragt. Das kann bei größeren Systemen schnell chaotisch werden, ganz davon abgesehen dass man damit gegen das DRY-Prinzip verstößt.

Und deine Factory-Singleton-Kombination ist nichts anderes als eine globale Variable. Pfui! ;)

Viele Grüße
Ulf</description>
		<content:encoded><![CDATA[<p>So wie du es beschrieben hast, ist es schon besser, wirklich gefallen tut es mir aber noch nicht.</p>
<p>Du hast bei deiner Lösung das Problem, dass du Geschäftslogik doppelst. Wenn du beispielweise deine ResultSets von Queries erweitern möchtest, musst du dies jedes Mal an zwei Stellen tun. Die Stelle die den Cache abfragt und die Stelle die die Persistenzschicht direkt anfragt. Das kann bei größeren Systemen schnell chaotisch werden, ganz davon abgesehen dass man damit gegen das DRY-Prinzip verstößt.</p>
<p>Und deine Factory-Singleton-Kombination ist nichts anderes als eine globale Variable. Pfui! <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Viele Grüße<br />
Ulf</p>
]]></content:encoded>
	</item>
</channel>
</rss>

