Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Blog, CMS, Wiki und Sonstige (https://boardunity.de/blog-cms-wiki-sonstige-f75.html)
-   -   www.koobi.de - wie gut ist das forum? (https://boardunity.de/www-koobi-de-gut-forum-t1755.html)

summimasta 23.04.2004 14:14

www.koobi.de - wie gut ist das forum?
 
Hallo,

ich weiss, dass man das vom äußeren Erscheinungsbild her nur schwer beurteilen kann, aber bitte schaut Euch einmal das Forum des Portalsystems "Koobi" an (==> http://www.koobi.de/forum.html ).

Glaubt ihr, dass dieses Forum für "höhere Aufgaben" (also größere Foren mit ein paar Hundert Beiträgen pro Tag) geeignet ist? Ich werde für mein nächstes Projekt nämlich ziemlich sicher Koobi einsetzen und jetzt bin ich mir nicht sicher, ob ich das "hauseigene" Forum verwenden, oder gleich eine bessere Forensoftware (vB, WBB2, phpBB,..) nehmen soll.

Natürlich wird das Koobi-Forum für den Anfang reichen, aber sollte das Projekt wachsen, muss gewährleistet sein, dass das Forum auch 1000 User oder mehr aushaltet.

Frederic Schneider 23.04.2004 14:28

Hallo,

ich arbeite derzeit selber mit dem System Koobi (Version 1 allerdings) als Redakteur.
Das Forum ist ganz in Ordnung und Arbeitet halt mit dem System an sich zusammen.
Wenn du nicht viel Anspruch an ein Forum stellst, ist dies mehr als ausreichend ;).

DaddyCool 23.04.2004 14:29

Setze lieber nicht auf das integrierte Forum. So wie ich das gesehen habe, deckt es nur die Basis Funktionen ab und kann sich allein vom Code her nicht mit den Standard Boards messen.

Ich habe nun schon mehrere gehabt, die liessen sich von mir andere Foren integrieren (gleiche Benutzerdatenbank etc.) und was ich da an Code gesehen habe, da krempelt es einem die Zehennägel hoch.

Wobei ich sagen muss das sich von Koobi2 zu Koobi3 doch schon was an der Qualität vom Code getan hat, es ist besser geworden. jedoch sollten verschiedene Dinge nicht passieren, so wurden in vielen Dateien Querys doppelt ausgeführt, und das ist einem Abstand von nur 10 bis 15 Zeilen, die sich ohne Probleme zusammen fassen liessen.

Darüberhinaus ist es fraglich ob Dream4 kapiert hat wofür Klassen sind und wie man die sinnvoll einsetzt. Teilweise wird für jeden Query eine neue Klasseninstanz erzeugt.

Setze lieber auf eine richtige Software, du tust dir und deinem Server/Hoster einen gefallen damit.

Such hier auch mal nach Themen von Jannefant, damit du dir ein Bild vom Support machen kannst. Besonders der neueste Beitrag zu diesem Thema ist sehr aufschlussreich.

Philipp Gérard 23.04.2004 14:43

Für deine Politikseite? Bloß nicht.

summimasta 23.04.2004 15:07

Ja, es wäre für ein Politikmagazin. Ich bin jetzt aber auch am überlegen, ob ich den xmentor und das phpBB einsetzen soll.

Patrick Gotthardt 23.04.2004 15:22

Off-Topic:
Zitat:

Darüberhinaus ist es fraglich ob Dream4 kapiert hat wofür Klassen sind und wie man die sinnvoll einsetzt. Teilweise wird für jeden Query eine neue Klasseninstanz erzeugt.
Hervorragend. :)
Also arbeiten sie wunderbar Objekt orientiert. ;)
Ich habe bei meiner Datenbank-Klasse auch ein Objekt "Datebank", dass für die Verbindung und das absetzen der Querys zuständig ist (eigentlich hätte ich das auch nochmal in 2 Klassen aufteilen müssen) und ein Objekt Query, dass für alles, was mit der Query gemacht werden soll zuständig ist.
Beispiel:
PHP-Code:

<?php
 $db 
= &new MySQLDatabase(DB_hostDB_userDB_passDB_tblDB_prefix);
 
$query $db->query('SELECT * FROM '.DB_prefix.'_posts'); // Eigentlich habe ich dafür die select-Methode...
 
while($row $db->fetch()) {
     echo 
$row['message'];
 }
 
?>

Das macht durchaus Sinn, wenn man Objekt Orientiert Programmiert.
Und wenn du das nicht einsiehst, ist es für mich fraglich, ob du kapiert hast, wofür Klassen und Objekte da sind. ;)

Aber gut... ich kenne den Code ja nicht.

DaddyCool 23.04.2004 15:39

Zitat:

Zitat von TheDragonMaster
Off-Topic:

Das macht durchaus Sinn, wenn man Objekt Orientiert Programmiert.
Und wenn du das nicht einsiehst, ist es für mich fraglich, ob du kapiert hast, wofür Klassen und Objekte da sind. ;)

Bitte zutreffendes ankreuzen
[ ] Du hast kapiert was ich geschrieben habe
[ ] Du weisst das man nicht für jeden einzelnen Query eine Klassen Instanz braucht

Ich rede nicht davon das auf einer Seite nur ein Query ausgeführt wird, und es deshalb unsinnig ist eine Klasse zu nutzen.

Was ich meinte ist, das in einem Script das von oben nach unten abgedudelt wird, für fast jeden Query eine Klasseninstanz erzeugt wird, die jedesmal wieder versucht eine Verbindung aufzubauen. (Was antürlich unsinnig ist)

Anstatt eine Klasseninstanz zu nutzen, über die man alle Querys absetzen kann (wie es Standard ist), wird für JEDEN EINZELNEN Query eine Klasseninstanz erzeugt. Bedenkt man das die Initiirung einer Klasse bei PHP4 länger dauert als das abspulen des normalen Codes, verliert man dadurch auch noch Zeit. (Einer der gründe für eine Neu Implementierung in PHP5)

Darüber hinaus werden Querys über Klassen und normalen mysql Funktionen abgesetzt, und das innerhalb eines Sriptes bunt gemischt.

Wenn du mir nun sagen willst, das dies so korrekt ist, frag ich mich ob du verstanden hast, wie man Klassen sinvoll einsetzt. Nach deinem letzten Beitrag muss ich ernsthaft daran zweifeln.

Keine Angst, ich weiß was Klassen sind, und nutze diese ausgiebig. In meinem Scripten läuft jeder Zugriff auf Daten über Klassen ab, um eine einheitliche Implemtierung zu gewährleisten. Natürlich gibt es für jeden Einsatzbereich jeweils eine eigene Klasse, die sich nur um diesen Teilbereich kümmert, und um nichts anderes. So ist es auch ohne Probleme möglich, eine Klasse durch einen Rewrite zu ersetzen, ohne das komplette Programm anpassen zu müssen.

Was ja der Sinn von Klassen ist.

Ich freue mich diesbezüglich schon auf PHP5, da diese eine bessere Implemetierung hat, die mehr in Richtung der Hochsprachen geht.

Patrick Gotthardt 23.04.2004 16:15

Zuerst einmal:
Zitat:

Aber gut... ich kenne den Code ja nicht.
Zitat:

Bitte zutreffendes ankreuzen
[ ] Du hast kapiert was ich geschrieben habe
[ ] Du weisst das man nicht für jeden einzelnen Query eine Klassen Instanz braucht
Kann ich beides nur teilweise ankreuzen. Aus deinem neueren Posting lese ich folgendes: Es wird für jede Query ein Objekt der Datenbank-Klasse erzeugt.
Aus dem davon habe ich eher soetwas wie in meinem Beispiel verstanden.
Von daher verwende ich für jeden einzelnen Query, der mir ein Ergebnis (d.h. Select-Statments und co.), eine eigene Instanz der Klasse MySQLQuery, ich erzeuge aber nicht für jede Query ein Objekt der Klasse MySQLDatabase erzeugt. Das IST Schwachsinn.

Zitat:

Was ich meinte ist, das in einem Script das von oben nach unten abgedudelt wird, für fast jeden Query eine Klasseninstanz erzeugt wird, die jedesmal wieder versucht eine Verbindung aufzubauen. (Was antürlich unsinnig ist)
In dem Fall hast du recht. Es ist nicht die Aufgabe des Query-Objektes eine Verbindung zur Datenbank herzustellen. Das Query-Objekt soll nur die Query absetzen und verarbeiten können.

Zitat:

Anstatt eine Klasseninstanz zu nutzen, über die man alle Querys absetzen kann (wie es Standard ist), wird für JEDEN EINZELNEN Query eine Klasseninstanz erzeugt. Bedenkt man das die Initiirung einer Klasse bei PHP4 länger dauert als das abspulen des normalen Codes, verliert man dadurch auch noch Zeit. (Einer der gründe für eine Neu Implementierung in PHP5)
Auch hier kommt es darauf an, was du nun eigentlich meinst.
Eine Klasseninstanz von WAS? Eine Instanz eines Query-Objektes ist vollkommen und absolut korrekt und auf internationalem Level auch absoluter Standart (bei den erfahreneren Leuten, die OO arbeiten), aber eine Instanz der Datenbank-Verbindung darf auf jedenfall nur einmal erstellt werden.
Mit dem Geschwindigkeitsverlust muss man Leben können. Es kommt darauf an, was man machen möchte, generell ist gegen OOP nichts einzuwenden. Der dadurch enstandene Code ist sauberer, klarer und logischer als der "normale".
Die Neuimplementierung ist allerdings dennoch sinnvoll, man möchte diese Zeit ja nicht zwingend verschenken. ^^"

Zitat:

Darüber hinaus werden Querys über Klassen und normalen mysql Funktionen abgesetzt, und das innerhalb eines Sriptes bunt gemischt.
Das wiederrum zeugt von einem miserablen Programmierstil. (Gut, dass ich mich damals doch nicht auf das Job-Angebot gemeldet habe... ^^")

Zitat:

Wenn du mir nun sagen willst, das dies so korrekt ist, frag ich mich ob du verstanden hast, wie man Klassen sinvoll einsetzt. Nach deinem letzten Beitrag muss ich ernsthaft daran zweifeln.
Ich arbeite (soweit möglich und sinnvoll) Objekt-Orientiert. Soll heißen Klassen sind nicht eine Ansammlung von Funktionen zu einem Thema, sondern Objekte. Das ist ein entscheidener Unterschied. Sie haben Eigenschaften und können Aktionen ausführen. Dafür sind Klassen da. Nicht um als Funktionssammlung zu fungieren.

Zitat:

Keine Angst, ich weiß was Klassen sind, und nutze diese ausgiebig. In meinem Scripten läuft jeder Zugriff auf Daten über Klassen ab, um eine einheitliche Implemtierung zu gewährleisten. Natürlich gibt es für jeden Einsatzbereich jeweils eine eigene Klasse, die sich nur um diesen Teilbereich kümmert, und um nichts anderes. So ist es auch ohne Probleme möglich, eine Klasse durch einen Rewrite zu ersetzen, ohne das komplette Programm anpassen zu müssen.
Solange du die Klassen als Objekte und nicht als Funktionssammlungen ansiehst: Ok.
Wenn nicht suche ich dir gerne einen oder zwei Artikel zum Thema OOP raus... damit du siehst, was ich meine. ;)

Zitat:

Ich freue mich diesbezüglich schon auf PHP5, da diese eine bessere Implemetierung hat, die mehr in Richtung der Hochsprachen geht.
me2.
Aber auch Konstrukte wie try-catch finde ich hervorragend.
An der neuen Implementierung finde ich vorallem das einbinden von public, private und protected sinnvoll. Diese Sachen fehlen mir in PHP4 wirklich. Interfaces sind natürlich eine Sache für sich. ;)

In diesem Sinne: Bitte zutreffendes ankreuzen:
[ ] Ich habe verstanden, was OOP bedeutet.
[ ] Ich arbeite OO.
[ ] Ich meine, dass bei jeder Query ein neues Datenbank-Verbindungs-Objekt erzeugt wird.
[ ] Ich meine, dass bei jeder Query ein neues Query-Objekt erzeugt wird.

;)

Björn 23.04.2004 16:20

also ich weiß gar nicht was du hast
ich verstehe daddycool's "meinung" voll und ganz. und ich denke ma er wird schon wissen was OOP ist, nur hat es nichts damit zu tun, dass jedes mal eine neue klasseninstanz aufgerufen oder erstellt wird (wie mans nennen will)

DaddyCool 23.04.2004 16:33

Ok, dann haben wir wohl nur aneinander vorbeigeredet. ;) :D

Zitat:

Zitat von TheDragonMaster
Solange du die Klassen als Objekte und nicht als Funktionssammlungen ansiehst: Ok.

Keine Angst, es sind keine reinen Funktionssammlungen und sie haben eigene Attribute/Eigenschaften. Ich habe in den letzten Jahren genug zu den Thema gelesen, zuletzt zu der Implementierung in C++, aber danke für das Angebot.

Die Koobi DB Klasse baut die Verbindung auf, führt den Query aus, holt die Ergebnisse und wird dann nicht mehr benutzt. Datenmüll sozusagen.

Die Trennung von Query und Verbindungsaufbau wäre ja kein Fehler sondern korrekt, wobei sich dies in PHP4 nicht sehr elegant lösen lässt. Da Objekte die ich an ein anderes Objekt übergebe nicht als Referenz sondern als Kopie genutzt werden, auch wenn ich das nette & davorsetze, aber das wird sich ja in PHP5 ändern. Deswegen bleibt einem aktuell nur wenig Möglichkeiten: globale Variablen, Kopie, Singleton

Wobei ich davon das Singleton Pattern bevorzuge.

Zitat:

In diesem Sinne: Bitte zutreffendes ankreuzen:
[x] Ich habe verstanden, was OOP bedeutet.
[x] Ich arbeite OO.
[ ] Ich meine, dass bei jeder Query ein neues Datenbank-Verbindungs-Objekt erzeugt wird.
[ ] Ich meine, dass bei jeder Query ein neues Query-Objekt erzeugt wird.

;)
Die letzten punkte kann ich nicht so einfach ankreuzen, da die Klasse beides macht. Sowohl Verbindung aufbauen als auch Query absetzen.

Aber selbst wenn sie nur die Querys absetzen würde wäre eine Instanz ausreichend. Man muss seinen Code nur gut planen.

Patrick Gotthardt 23.04.2004 16:46

Ok... nochmal. Ich gehe einfach davon aus, dass meine Erklärung heute zu schlecht ist...
Ich rede von folgendem:

Am Anfang erstellt man ja für gewöhnlich eine Instanz einer Datenbank-Klasse. Das macht phpBB so, das macht sogar Woltlab.
Nun. Was bekomme ich als Rückgabewert einer Query? Jemand, der OO denkt und auch so programmiert bekommt hier ein neues Objekt, eine Instanz der Klasse Query, mit dem er weiterarbeiten kann. Und dabei wird nunmal jedesmal, wenn eine Query mit Rückgabewert geliefert werden soll, ein neues Objekt der Klasse Query erzeugt.
Mit diesem Objekt kann man dann weiterarbeiten. Es ermöglicht das auslesen der Daten, auch die Anzahl der ausgelesenen Zeilen, usw..

Beispiel:
Für die Datenbankverbindung benötige ich 3 Klassen:
1. MySQLConnection
Methoden:
! connect
! disconnect
? getConnection
Attribute:
String db_host
String db_user
String db_pass
String db_tabl
mysql_connection connection
Beschreibung:
Diese Klasse stellt eine Verbindung (!) zur Datenbank her. Nicht mehr aber auch nicht weniger.
Ich mache es, da ich nicht absolut strikt OO programmiere, in die folgende Klasse mit hinein.

2. MySQLDatabase
Methoden (mindestens):
? query
? error
Attribute:
MySQLConnection connection
Beschreibung:
Diese Klasse ist für das "absetzen" der Querys zuständig und um eventuelle Fehler abzufangen. Die error-Methode liefert true wenn eine zuvor ausgeführte Aktion einen Fehler verursacht hat, während false bedeutet, dass kein Fehler aufgetreten ist.
Die query-Methode liefert letztlich ein Objekt vom Typ MySQLQuery.

3. MySQLQuery
Methoden (mindestens):
! free_result
? fetch
? count
? insertId
Attribute:
MySQL-Resource-ID query
MySQL-Connection connection (optional)
Beschreibung:
Diese Klasse ist für sämtliche Aktionen MIT dem Query zuständig. Sei es nun das auslesen der Daten (fetch) oder Informationen wie die Anzahl der Zeilen (count).

Ist nun klar, was ich meine? Wenn nicht: Vergesst einfach meine Einwände... ich hab einfach nicht das Talent um sowas zu erklären... ich bin mir nämlich eigentlich sicher, dass ihr wisst, was ich meine...

Edit: Wusst ich`s doch. *puh*
Zitat:

nicht als Referenz sondern als Kopie genutzt werden, auch wenn ich das nette & davorsetze
Das ist mir bislang noch nicht aufgefallen. Bei mir funktioniert das hervorragend. Wenn ich an einem übergebenen Objekt etwas ändere ist es auch dort, wo ich es übergeben habe verändert. Laut dokumentation funktionieren die Referenzen auch in PHP4.
Allerdings kein Vergleich zu PHP5. Das stimmt.
Das dumme ist nur, dass es echt schwer ist einen (kostengünstigen - jaja... all-inkl.com verwöhnt. ^^") Server mit PHP5 zu bekommen.

Zitat:

Die Koobi DB Klasse baut die Verbindung auf, führt den Query aus, holt die Ergebnisse und wird dann nicht mehr benutzt. Datenmüll sozusagen.
Das ist wirklich schwachsinnig. ^^"

DaddyCool 23.04.2004 17:08

ich sag ja wir reden aneinander vorbei.
Zitat:

Zitat von TheDragonMaster
Das ist mir bislang noch nicht aufgefallen. Bei mir funktioniert das hervorragend. Wenn ich an einem übergebenen Objekt etwas ändere ist es auch dort, wo ich es übergeben habe verändert. Laut dokumentation funktionieren die Referenzen auch in PHP4.

Jein, übergibst du ein Objekt als referenz wird innerhalb der Funktion trotzdem nur eine Kopie benutzt, auch wenn es sich auch auf das Objekt ausserhalb auswirkt. Es wird aber trotzdem mehr Arbeitsspeicher benötigt. Deswegen ist es doch recht unschön.

http://www.php.net/manual/en/languag...nces.arent.php

Nicht sehr deutlich erklärt dort, aber es sollte zeigen was ich meine.

Zitat:

Allerdings kein Vergleich zu PHP5. Das stimmt.
Das dumme ist nur, dass es echt schwer ist einen (kostengünstigen - jaja... all-inkl.com verwöhnt. ^^") Server mit PHP5 zu bekommen.
Am besten mal CannabisCow oder Phillip fragen, beide können bei ihren Hostern PHP5 nutzen.

Gast 29.04.2004 00:46

Mittlerweile ist 3.1 draussen. Und Version 4 ist in Arbeit. Vermutlich im August verfügbar. Das Forum ist vollkommend ausreichen und wird nun auch erweitert!

KooBI ist ein gutes Stück Software, die nach und nach immer besser wird.

Saro 01.05.2004 11:27

Also so schlecht wie hier manche Koobi machen ist es nun wirklich nicht ;-)

www.4players.de basiert z.B. auch auf Koobi und langsam läuft es nicht gerade. Und hat auch mehrere Tausend User pro Tag, haben allerdings ein phpBB dort eingebaut.

Frederic Schneider 01.05.2004 11:34

http://www.gamevision.de basiert auch auf Koobi und läuft gut - ein vBulletin 3 eingebaut ;).

Daniel Richter 01.05.2004 13:01

Es geht ja auch mehr um das Forum von Koobi. Und die beiden von euch genannten Beispiele nutzen beide das Forum nicht. Das sagt wohl einiges über die Qualität des Forums aus, oder?

MrNase 01.05.2004 14:07

4players.de hat in den Foren knapp 66666 Mitglieder.

Meines Wissens gibt es keinen Konverter der phpBB in das Koobi Forum umwandelt.
Von daher kann man nicht unbedingt behaupten, dass es an den Leistungen des Koobi Forums liegt.
Vielleicht wollte man ja wechseln, aber der Erfolg der Konvertierung war zu ungewiss!? Wer weiß...

Saro 01.05.2004 15:10

Zitat:

Zitat von codemonkey
Es geht ja auch mehr um das Forum von Koobi. Und die beiden von euch genannten Beispiele nutzen beide das Forum nicht. Das sagt wohl einiges über die Qualität des Forums aus, oder?

Nö sagt es garnicht da 4players noch eine Version von Koobi einsetzt wo garkein Forum integriert war. Soweit es mir bekannt ist. Aber es zeigt halt das es kein Problem ist später mal wenn das integrierte Forum nicht reicht ein anderes einzubauen denn viele Seiten haben ja ein eigenes eingebaut (vBulletin, phpBB usw.)

MrNase 01.05.2004 15:40

*eingebaut* kann man nicht sagen. Das Forum ist weder in die Seite integriert (vom Layout her) noch der Seite angepasst :)

Saro 01.05.2004 17:18

Zitat:

Zitat von MrNase
*eingebaut* kann man nicht sagen. Das Forum ist weder in die Seite integriert (vom Layout her) noch der Seite angepasst :)

Wie würdest du es den nennen?

-Kommentar Funktion in den News ist über das phpBB realisiert.
-Beim einloggen auf der Seite bist auch automatisch im Forum eingelogt.
-Die News werden aus dem Forum ausgelesen.

usw. Also wüsste gerne wie du das dann nennen würdest. Auch ansonsten ist das Forum meiner Meinung dem layout vom 4players angepasst.

itst 01.05.2004 17:45

4players hat sich bewusst für phpBB entschieden.

Frederic Schneider 01.05.2004 17:58

Zitat:

Zitat von itst
4players hat sich bewusst für phpBB entschieden.

:) - genauer?

Saro 01.05.2004 18:42

Zitat:

Zitat von frederic
:) - genauer?

Naja ich vermute mal weil wie du auch im Copyright vom Forum siehst:

Powered by phpBB 2.0.1-4p © 2001, 2002 phpBB Group

sprich eine 4p Version total umgemodet usw. und bei anderen Forensoftware wie vBulletin usw. oder so gäb es sicher Probleme mit manchen sachen und der Lizens. Ist jetzt allerdings nur eine Vermutung was ITST genau damit meint weiss ich auch nicht.

Daniel Richter 01.05.2004 18:54

Was für Lizenzrechtliche Probleme soll es denn da geben? Du darfst die Software für dich modifizieren, du darfst die Versionsnummer rausnehmen und demzufolge auch ändern.
Also auch alles mit dem vBulletin möglich, Saro.

Saro 01.05.2004 20:08

Zitat:

Zitat von codemonkey
Was für Lizenzrechtliche Probleme soll es denn da geben? Du darfst die Software für dich modifizieren, du darfst die Versionsnummer rausnehmen und demzufolge auch ändern.
Also auch alles mit dem vBulletin möglich, Saro.

Du kannst aber ein vBulletin nicht mal eben für 10 Seiten benutzen usw. und wer bei 4players kein eigenes Board hat kriegt ein gemodetes phpBB 4players version zur verfügung gestellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25