<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Komponentensystem]]></title><description><![CDATA[<p>Hey Leute ich weiß gerde nicht genau weiter, wie ich eine feature &quot;schön&quot; implementieren kann.<br />
Ich arbeite gerade am Anfang eines <a href="http://Spiels.Im" rel="nofollow">Spiels.Im</a> Main wird eine Instanz der Klasse IGameManager erstellt.Von dort aus sollen Komponenten eingetragen werden, die dann entweder mit einem weiteren Thread eingeloggt werden oder im Hauptthread laufen.</p>
<p>Mit den Komponten mein ich z.B zunächst die (Debug)Konsole, Statesystem, Mediasystem ......<br />
Jetzt habe ich einen IComponentManager erstellt und wollte diese ganzen Sachen eintragen und dachte mir ich erbe einfachh die klasse IComponent bei der Konsole, dem Statesystem .... und Trage diese in eine map ein ( Polymorph -&gt; IComponent* comp = new IConsole() oder so )</p>
<p>Später soll man einfach die Komponenten suchen können wie z.B : IComponentManager::SearchKomponents(char* name) und bekommt halt die Komponente, jedoch kann ich dann nicht die Funktionen von der Konsole, Statesystem... aufrufen, sondern nur die von der Klasse IComponent ( die dann eben virtual sind )</p>
<p>Deshalb geht das ganze nicht und ich weiß halt nicht weiter was ich machen soll.Ich würde dieses Komponentensystem beibehalten , jedoch weiß ich nicht wie.</p>
<p>Danke Leute</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309236/komponentensystem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 16:36:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309236.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Oct 2012 19:55:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 19:55:12 GMT]]></title><description><![CDATA[<p>Hey Leute ich weiß gerde nicht genau weiter, wie ich eine feature &quot;schön&quot; implementieren kann.<br />
Ich arbeite gerade am Anfang eines <a href="http://Spiels.Im" rel="nofollow">Spiels.Im</a> Main wird eine Instanz der Klasse IGameManager erstellt.Von dort aus sollen Komponenten eingetragen werden, die dann entweder mit einem weiteren Thread eingeloggt werden oder im Hauptthread laufen.</p>
<p>Mit den Komponten mein ich z.B zunächst die (Debug)Konsole, Statesystem, Mediasystem ......<br />
Jetzt habe ich einen IComponentManager erstellt und wollte diese ganzen Sachen eintragen und dachte mir ich erbe einfachh die klasse IComponent bei der Konsole, dem Statesystem .... und Trage diese in eine map ein ( Polymorph -&gt; IComponent* comp = new IConsole() oder so )</p>
<p>Später soll man einfach die Komponenten suchen können wie z.B : IComponentManager::SearchKomponents(char* name) und bekommt halt die Komponente, jedoch kann ich dann nicht die Funktionen von der Konsole, Statesystem... aufrufen, sondern nur die von der Klasse IComponent ( die dann eben virtual sind )</p>
<p>Deshalb geht das ganze nicht und ich weiß halt nicht weiter was ich machen soll.Ich würde dieses Komponentensystem beibehalten , jedoch weiß ich nicht wie.</p>
<p>Danke Leute</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261508</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Wed, 17 Oct 2012 19:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 20:46:52 GMT]]></title><description><![CDATA[<p>Wieso müssen die Komponenten beim Manager eingetragen werden? Wenn du dein IConsole Objekt selbst erzeugst, hast du doch schon den Pointer auf das IConsole Interface, wieso musst du das Ding erst wieder beim Manager abfragen? Und damit stellt sich nun natürlich unweigerlich die Frage: Was genau ist eigentlich der Sinn dieses Managers?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261523</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 17 Oct 2012 20:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 21:09:40 GMT]]></title><description><![CDATA[<p>Wenn ich dich richtig verstehe, dient der IComponentManager vorallem als Ablage für IComponent Interfaces um die Abhängigkeiten unter den IComponent Objekten befriedigen zu können.</p>
<p>Eine mögliche Lösung ist, dass die Komponenten tatsächlich noch ein zusätzliches Interface mit dedizierter Funktionalität bereitstellen (je nach Komponente). Dabei muss dann eine abhängige Komponente dieses Interface kennen und irgendwie erfragen (z.B. dynamic_cast, oder wie bei COM durch QueryInterface(..)).</p>
<p>Eine andere Möglichkeit ist, die Kommunikation zwischen den Komponenten zu standardisieren und auf Primitive Elemente festzulegen. Z.B. durch einen Baum der aus Nodes und Parametern (bool, int, double) besteht. Abstraktionen finden dann in dieser Datenstruktur statt, Logik/Verhalten in den Komponenten.</p>
<p>Natürlich sind beide Ansätze kombinierbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261529</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 17 Oct 2012 21:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 21:27:20 GMT]]></title><description><![CDATA[<p>Also der Sinn und der Gedanken dahinter war es diesen Manager zu erstellen, der zunächst global ist.<br />
Der hat einen IComponentManager, in dem alle Hauptkomponenten eingetragen werden können ( entweder wird dann ein weiterer Thread erstellt oder in die Update / Initialize / Terminate Funktion des Hauptthreads einegtragen ), sodass alle Komponenten geregelt werden könne ( bzw. geupdated ... ).<br />
Dann soll es noch eine Funktion geben, wo man Komponente nach Namen suchen kann und auf diese zugreifen ( ich meine sowas schonmal in der CryEngine gesehen zu haben ) Dabei kann einfach global auf diese Komponenten von überall zugegriffen werden,wobei dieser Manager trotzdem ein System mit den Komponeten bildet und quasie einen festen Platz in der Struktur hat.</p>
<p>Ich kann dan von überall auf die Konsole zugreifen mit z.B IComponentManager::SearchComponent(&quot;IConsole&quot;)-&gt;Write(&quot;blah&quot;) ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261532</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Wed, 17 Oct 2012 21:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 21:43:04 GMT]]></title><description><![CDATA[<p>Ja, aber wenn du die einzelnen Komponenten sowieso selbst erzeugst, dann kannst du die Interfaces doch gleich in Form der entsprechenden Typen an die entsprechenden Objekte weiterreichen und fertig!? Ansonsten wirst du wohl sowas wie z.B. QueryInterface in COM brauchen, was mehr oder weniger einem dynamic_cast entspricht und spätestens da siehst du auch sofort, dass das Design wohl nicht so ganz ideal ist...</p>
<p>Zumindest im Moment hört sich das für mich jedenfalls so an, als ob du all deine Probleme nur hast, weil du meinst, um jeden Preis diesen Manager zu brauchen. Vergiss den Manager doch einfach!? Wenn eine Komoponente eine IConsole haben will, dann gib ihr eine...z.B. im Konstruktor...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261534</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 17 Oct 2012 21:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Wed, 17 Oct 2012 21:53:25 GMT]]></title><description><![CDATA[<p>Ist jetzt schwer zu beantworten. Hört sich irgendwie nach dem service locator pattern an. Besser ist dependency injection. Aber auch für dependency injection könntest du irgendwo ein Repository in Form eines Component Managers verwalten.<br />
Ich kann jetzt aber nicht ganz nachvollziehen, was es für einen Sinn hat, alles von der Basisschnittstelle IComponent abzuleiten. Die Debugkonsole mag eine &quot;Komponente&quot; sein, na und? Ich hätt da eher an eine Klasse &quot;GameEnvironment&quot; oder wie auch immer gedacht, die die konkreten Komponenten kennt und sie auch zurückgibt, z.B. getDebugConsole(). Du hast mich noch nicht überzeugt, warum du da eine gemeinsame Schnittstelle für Komponenten brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261538</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Wed, 17 Oct 2012 21:53:25 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Thu, 18 Oct 2012 08:46:38 GMT]]></title><description><![CDATA[<p>Hamm ihr habt recht.Die Hauptidee lag darin das ganze in den Hauptthread einzutragen oder ein weiteren zu erstellen. Dabei dachte ich halt an polymorph sonst weiß ich nicht wie. Man soll einfach die Option haben solche Komponenten im haupthread oder in einem weiteren thread zu regeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261575</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 18 Oct 2012 08:46:38 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Thu, 18 Oct 2012 15:14:19 GMT]]></title><description><![CDATA[<p>Wie kann man denn ein Manager realisieren, indem man solche Komponenten einlogen kann ; entweder mit LoginMainThread() oder LoginExtendeThread() ???? Ich sehe da jetzt keine andere Lösung, als eine basisklasse zu benutzen, jedoch sollte man die einzelnen Komponenten trotzdem abrufen können.</p>
<p>Please help <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261704</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 18 Oct 2012 15:14:19 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Thu, 18 Oct 2012 18:50:22 GMT]]></title><description><![CDATA[<p>Was heißt einloggen? Was hat es mit Threads zu tun? Ich kann dir nicht folgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261789</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Thu, 18 Oct 2012 18:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Thu, 18 Oct 2012 22:25:59 GMT]]></title><description><![CDATA[<p>ich glaube, er will nur so was:</p>
<pre><code class="language-cpp">struct IComponent
{
  virtual void update() {}
  virtual ~IComponent() = 0;
};

struct Mgr
{
  thread_id run_in_new_thread(IComponent* to_add);
  void add_to_existing_thread(IComponent* to_add, thread_id thread);
};

struct Console : IComponent
{
  /* ... */
};

int main()
{
  Mgr mgr;
  mgr.run_in_new_thread(new Console);
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2261844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2261844</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 18 Oct 2012 22:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Fri, 19 Oct 2012 15:45:06 GMT]]></title><description><![CDATA[<p>Ja so hab ich das auch jetzt gemacht mit Polymorph, aber ich kann ja jetzt die Funktionen der Konsole nicht aufrufen, wenn sie in der Basisklasse nicht virtuel deklariert wurden.</p>
<p>Ich weiß langsam echt nicht mehr was ich machen soll.Ich will doch nur diese Komponenten in eine map eintragen und von dem Manager in der Updatefunktion durchlaufen und alle einträge updaten.<br />
Das ist ja wunderbar mit Polymorph zu machen, jedoch kann ich dann keine Funktionen mehr aufrufen .....</p>
<p>Geht das irgendwie anders ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262108</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Fri, 19 Oct 2012 15:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Fri, 19 Oct 2012 18:34:37 GMT]]></title><description><![CDATA[<p>Nochmal: Du instanzierst deine Komponente doch selbst, wo liegt also das Problem? Dort, wo du die IConsole erzeugst, kennst du doch das IConsole Interface!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262151</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 19 Oct 2012 18:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Fri, 19 Oct 2012 19:20:01 GMT]]></title><description><![CDATA[<p>Bob Wolfskin schrieb:</p>
<blockquote>
<p>Hey Leute ich weiß gerde nicht genau weiter, wie ich eine feature &quot;schön&quot; implementieren kann.</p>
</blockquote>
<p>Sorry, aber ich würd sagen, du bist noch nicht ansatzweise so weit, irgendwas schön zu implementieren. Du begehst den typischen Anfängerfehler, ohne ein richtiges Konzept anzufangen. Man muss nicht alles bis ins letzte Detail planen, macht auch nur ganz selten Sinn. Aber bevor man sowas angeht, sollte man schon eine gute Vorstellung von dem Gesamtsystem haben. Welche Komponenten es genau gibt, wie sie zusammenspielen, wie Informationen ausgetauscht werden usw. Im Moment ist deine Vorstellung von dem, wie die Software aussehen soll, noch sehr unasgereift. Einfach zu sagen, &quot;ich will sowas wie Komponenten haben&quot; reicht überhaupt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262164</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Fri, 19 Oct 2012 19:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sat, 20 Oct 2012 13:06:55 GMT]]></title><description><![CDATA[<p>Ja das stimmt <a href="http://schon.Es" rel="nofollow">schon.Es</a> war auch nur eine erste Idee mit dem Polymorph und den <a href="http://Komponenten.Es" rel="nofollow">Komponenten.Es</a> funktioniert ja auch alles sehr gut, nur ich müsste eben die Komponenten in eine map eintragen, wo dann in der Update _Methode durchgegangen wird und alles inder map auch geupdated wird.Das sieht doch ganz stark nach Polymorph aus oder nicht ??</p>
<p>So sieht das ganze jetzt aus.Ich kann ja auch einfach die instanzen selbst in der Updatmethode updaten, ist aber nicht so schön naja muss wohl sein.</p>
<pre><code class="language-cpp">#ifndef ICOMPONENTMANAGER_H_
#define ICOMPONENTMANAGER_H_

#pragma once

#include &quot;engine.h&quot;
#include &quot;GlobalDefine.h&quot;
#include &quot;IComponent.h&quot;
#include &quot;IConsole.h&quot;

#include &lt;stdlib.h&gt;
#include &lt;map&gt;

class IComponentManager
{
public:

	IComponentManager(void);
	~IComponentManager(void);

	IResult Initialize(HINSTANCE hinst);
	IResult Terminate();
	void Update();

	//--------------Console---------------//

	template&lt;typename T&gt;
	inline void Console_LoginVar(std::string const&amp; name, T&amp; ref) { _debugConsole-&gt;LoginVar(name,ref); }

	//------------------------------------//

private:

	ISmartPointer&lt;IComponent&gt; _debugConsole;

	std::map&lt;std::string,IComponent*&gt; _mainThread;
	std::map&lt;std::string,IComponent*&gt;::iterator _mainItr;
	std::map&lt;std::string,std::pair&lt;IComponent*,HANDLE&gt;&gt; _externThread;

	void LoginMainThread(std::string s,IComponent* comp);
	void LoginExternThread(std::string s,IComponent* comp);

};

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;IComponentManager.h&quot;
#include &quot;IComponent.h&quot;

//------------Thread----------------//

DWORD WINAPI Thread(LPVOID param)
{
	IComponent* temp = (IComponent*)param;
	while( temp-&gt;active != false )
	{
		temp-&gt;Update();
	}

	return IRESULT_OK;
}

//-----------------------------------//

IComponentManager::IComponentManager() : _debugConsole(new IConsole) {

}

IComponentManager::~IComponentManager() {

}

IResult IComponentManager::Initialize(HINSTANCE hinst)
{

	IResult rs;
	rs = _debugConsole-&gt;Initialize();
	LoginExternThread(&quot;Console&quot;,_debugConsole.get());
	int i = 32;
    Console_LoginVar(&quot;i&quot;,i);

	return IRESULT_OK;
}

IResult IComponentManager::Terminate()
{
	IResult rs;
	rs = _debugConsole-&gt;Terminate();

	return IRESULT_OK;
}

void IComponentManager::Update()
{
	for(_mainItr = _mainThread.begin(); _mainItr != _mainThread.end(); _mainItr++)
	{
		_mainItr-&gt;second-&gt;Update();
	}

}

void IComponentManager::LoginMainThread(std::string s,IComponent* comp)
{
	_mainThread.insert(std::make_pair&lt;std::string,IComponent*&gt;(s,comp));
}

void IComponentManager::LoginExternThread(std::string s,IComponent* comp)
{
	HANDLE temp_h;
	temp_h = CreateThread(NULL, 0,Thread,comp,NULL,NULL);

	_externThread.insert(std::make_pair(s,std::make_pair(comp,temp_h)));

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2262299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262299</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Sat, 20 Oct 2012 13:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sat, 20 Oct 2012 22:33:59 GMT]]></title><description><![CDATA[<p>Mein problem ist gelöst.Einfach das object mittels cast -&gt; static_cast&lt;IConsole*&gt;(_debugConsole.get())-&gt;.. dann kann man alle Funktionen der ICoonsole Klasse aufrufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262400</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Sat, 20 Oct 2012 22:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sat, 20 Oct 2012 23:09:22 GMT]]></title><description><![CDATA[<p>Bob Wolfskin schrieb:</p>
<blockquote>
<p>Mein problem ist gelöst.Einfach das object mittels cast -&gt; static_cast&lt;IConsole*&gt;(_debugConsole.get())-&gt;.. dann kann man alle Funktionen der ICoonsole Klasse aufrufen</p>
</blockquote>
<p>Du machst irgendwas ganz komisches, aber ich versteh immer noch nicht so recht, was. Hier ist ein dynamic_cast auf jeden Fall passender als static_cast.</p>
<p>Das schaut alles noch irgendwie wenig durchdacht aus. Solche Sachen wie HINSTANCE, HANDLE usw. haben in Klassen, die Component oder ComponentManager heißen, überhaupt nichts verloren. Mit Threads auch nicht. Versteh immer noch überhaupt nicht, was du eigentlich willst und was du mit einloggen meinst.<br />
Du gibst die Threads nicht frei. An einigen Stellen übergibst du strings als konstante Referenzen (richtig), aber nicht überall. Deine Namensgebung ist teilweise etwas komisch. Unterstriche in Methodennamen sind ungewöhnlich. Iteratoren sollte man nicht als Membervariablen halten, und in deinem Fall seh ich da zu schon mal gar keinen Grund.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262403</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sat, 20 Oct 2012 23:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sun, 21 Oct 2012 08:49:23 GMT]]></title><description><![CDATA[<p>Und 100% Prozessor(bzw. Kern)-Auslastung sind wohl auch nicht so toll:</p>
<pre><code class="language-cpp">while( temp-&gt;active != false )
{
    temp-&gt;Update();
}
</code></pre>
<p>Ich denke auch, daß du dich mit deinem Vorhaben übernommen hast und eine falsche Vorstellung von dem Gesamtsystem (z.B. dem Thread-Handling) hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262431</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 21 Oct 2012 08:49:23 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sun, 21 Oct 2012 19:44:17 GMT]]></title><description><![CDATA[<p>Das mit dem Thread ist nur einfach so hingeschrieben, um das ganze zu Testen.<br />
Ich habe eben meine eigenen Schritte, die ich mache.<br />
Ich will zuerst ein bisschen rumexperimentieren und dan später dan eine Endfassung schafen.Bis hier hin funktioniert das eigendlich gang gut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262585</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Sun, 21 Oct 2012 19:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to Komponentensystem on Sun, 21 Oct 2012 20:05:40 GMT]]></title><description><![CDATA[<p>Bob Wolfskin schrieb:</p>
<blockquote>
<p>Bis hier hin funktioniert das eigendlich gang gut</p>
</blockquote>
<p>Das sagt jetzt nicht viel aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Es gibt auch Software, die aus Millionen Zeilen Code besteht und auch irgendwie funktioniert. Nur ist sie komplett unwartbar und von vorne bis hinten falsch, sodass sie komplett unflexibel ist und man nichts erweitern/verändern kann. Dann kommt bei jedem kleinen Änderungswunsch, wo man sich denkt, ist in 1-2 Tagen erledigt als Antwort gleich, das geht doch nicht, dazu müssten wir die Hälfte umbauen und das dauert mindestens ein halbes Jahr...</p>
<p>Ohne ein richtig und möglichst komplett durchdachtes Konzept anzufangen kann nur in eine Sackgasse führen, auch wenn es eine Weile zu funktionieren scheint und seinen Zweck erfüllt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2262593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2262593</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 21 Oct 2012 20:05:40 GMT</pubDate></item></channel></rss>