Framework ja oder nein, bei für eigenes CMS?

Giovanni

Mitglied
Hallo zusammen,

ich hoffe das die Frage noch nicht gestellt wurde? Durch die Suche habe ich jetzt nichts finden können.

Meine frage ist hier allgemein zu sehen, wenn jemand einen passenderen Titel hat kann er es mir ruhig schreiben.

Kurze Info, warum ich diese Frage an euch richte:
Ein Kumpel und ich wollen - just 4 fun ein CMS System erstellen. Wir haben uns überlegt ggf. die Fehlenden Feature bei großen CMS ein zu bauen und Mobile fähig zu machen, so wie auch neue Features einbauen / erfinden, die es so noch nicht gibt. Wir wollen somit unser Know-How erweitern. Da es auch immer im Gedanke hängt ein eigenes CMS zu schreiben, wollen wir den Sprung in ein so komplexes Thema wagen und wer weiß vielleicht erreichen wir damit ja neue Ansätze oder auch Ideen für die bekannten CMS. Man weiß nie was passiert, aber unser Ziel ist es für uns selbst ein anständiges und gutes CMS zu erstellen.

Somit die frage an euch - soll man ein Frameworks (im allgemeinem) benutzen oder ist es doch weniger von vorteile für sein eigenen CMS, ein Framework zu benutzen?

Man hat ja für sein eigenes CMS viele Ideen und Funktionen geplant sowie gewisse Features die es bei den bekannten CMS weitgehend verbreitet ist auch an zu bieten und mehr.

Zum Beispiel:
  • ACL & permission controll
  • Caching
  • Templating
  • Compressing/Mergin/Minify
  • Exntension(Plugins)
  • Widgets
  • HTML5
  • Mobile Support
  • Multilingual
  • Multisite-Management
  • Built-in image
  • uvm.


Ich weiß auch das man ein Framework nicht unbedingt braucht, und es je nach Vorliebe selbst zu entscheiden ist. Denn noch ist es von Vorteil wenn man sich ein Framework mit ins Boot nimmt oder ist es doch eher weniger von Vorteil?

Was ich gerne lesen würde:
  • Framework: ja oder nein?
  • Warum (ja oder nein)?
  • Welche Vorteile bzw. Nachteile bringt ein Framework mit sich?
  • Lern-Bilanz des Frameworks
  • Ist es für derartige Projekte wie CMS geeignet, das Framework?
  • Habt Ihr eigene Erfahrungen schon gesammelt?
  • Fazit - eigene Tendenz ob ihr ein Framework wirklich nutzen würdet oder nicht?
  • Was euch noch so einfällt, an Tipps, Ideen, Anregungen, usw.


Ich denke das ist bestimmt auch eine Hilfe für viele andere, die auch ein CMS entwickeln wollen oder ein auch größere Entwicklung vorhaben bzw. sich fragen soll ich ein Framework einsetzen oder nicht, ist es ein Overhead oder nicht...

Danke schon mal und ich bin gespannt auf eure Antworten.

Grüße
Giovanni
 
Das Problem mit derlei Konzeptfragen ist meines Erachtens tatsächlich immer, dass es euer Konzept ist, das ihr völlig frei bestimmen könnt.

Ansonsten: Ihr habt noch nie mit einem Framework gearbeitet, oder?

Versucht mal, ein kleines Projekt mit dem Zend Framework oder Symfony oder so umzusetzen (vielleicht ein Tutorial dazu machen). Danach dürftet ihr das Für und Wider wesentlich besser einschätzen können.

Wichtig zu erwähnen aber vielleicht: Frameworks können vielfach auch als Sammlungen von einzelnen Komponenten gesehen werden. Ihr müsst nicht zwingend die „MVC“-Struktur des Frameworks nutzen, sondern könnt euch auch die Komponenten rauspicken, die euch gefallen – auch aus verschiedenen Frameworks.

Die interessanteste Frage ist an der Stelle vielleicht die Lizenz, unter der euer CMS stehen soll.
 
Zuletzt bearbeitet:
Ich würde nen Framework benutzen, ja. Es zwingt einen in gewisser Weise auch, vernünftig strukturierten Code zu schreiben, wenn richtig angewendet.
 
Hi,

Danke schon mal für euere Antworten.

Naja ich hab schon mit einem Framework gearbeitet, CakePHP, Symphonie 2, Zend Framework 2, aber nie so richtig eingesetzt oder mich damit beschäftigt. Weil ich es damals einfach zu Overhead fand und die Einarbeitung in ein Framework nicht gerade mal so passiert.

Deswegen ist die Frage auch mehr so allgemein und als Diskussion zu sehen statt als Konzeptionsfrage. Da wie du schon sagst es frei vom Entwickler ist, sein Konzept zu gestallten und die Software so zu entwickeln.

Das mit dem rauspicken habe ich mir auch schon gedacht, nur da bin ich zu unerfahren was Frameworks angeht. Geht das so ohne weiteres? Oder ist man da eingeschränkt und was ist mit der Performance? - Ist das Komplette Paket nicht schneller wie einzeln?

Die Lizenz unseres CMS machen wir uns an aller letztes - da ja, unser eigener geschriebene Code unabhängig von der Lizenz ist. Wir werden wenn wir uns entscheiden ein Framework zu nutzen auf eine freie Lizenz achten, da wir keine unnötigen Kosten aufbringen wollen. Nicht das wir das Projekt mitten drin abbrechen ;-)

Was mich halt auch brennend Interessiert, sind die Frameworks besser wie der eigene Code - bezüglich Sicherheit, Caching, Sessions, Struktur usw. Man muss ja schließlich alles selber schreiben.

Hoffe es beteiligen sich hier ein paar mehr.

@alxy: Nur weil man ein Framework benutzt heißt es noch lang nicht das man vernünftigen, sauberen, ordentlichen oder strukturierten Code schreibt. Auch hier kann es Kraut und Rüben geben - bei richtiger Anwendung. Da jeder sein Code Schreibart, Struktur und Co selber verantwortlich ist. Daher finde ich deine Begründung "ja" un-ausreichend. ( Als gegen Beispiel: Ist das selbe als würde ich dir irgend eine Software verkaufen und einfach sagen: "ja die ist einfach besser" ;-) )

Grüße
Gio
 
Zuletzt bearbeitet:
Ein paar ungeordnete Punkte dazu:
Betrifft oft nicht nur Frameworks in dem Sinn, sondern fertigen Code allgemein

Ob man sich mit einem beschäftigen bzw. einlernen soll:
Wie wahrscheinlich ist es, dass es sich zeitlich (verglichen zur Arbeitsersparnis dadurch) lohnt?
(auch spätere mögliche Projekte etc. dazugenommen.
Erfahrung mit irgendeinem speziellen Ding kann auch zB. bei Arbeitssuche hilfreich sein.
Alles berücksichtigen)

Besserer Code: Grundsätzlich kochen alle Anderen auch nur mit Wasser.
Aber: Sie haben vielleicht mehr Zeit und Denkarbeit reingesteckt,
das spezielle Stück Software zu optimieren (in jeder Hinsicht.
Geschwindigkeit, Speicher, schöne Strukturierung...)

Sicherheit, Bugs: Mehr Augen sehen mehr.
Bekannte Libs/Frameworks dürften besser dran sein als Eigenkreationen.
Solange sich der Hersteller drum kümmert.

Das wäre auch der nächste Punkt:
Etwas, wo gemeldete Bugs jahrelang unbehoben bleiben...
(vBulletin, ich schau dich an :/)
da stellt sich wieder die Frage, ob sich der Aufwand lohnt, sich mit den Innereien der Lib auseinanderzusetzen, bis man sich gut genug auskennt, den Bug selbst zu beheben.
Oder ob das Ganze einfach zum Müll wandert.

Einzelne Teile rauspicken sollte das Ganze nicht prinzipiell langsamer machen
(und es ist überall etwas dabei, was man nicht benötigt.
Wenn es so lose strukturiert ist, dass man den Teil einfach weglassen kann, ists doch schön)
Was man aber vermeiden sollte: Weitere eigenständige Libs dazunehmen,
die das machen, was man vorher rausgenommen hat
(weil man sich vielleicht gar nicht mehr dran erinnert oder...)
Genau genommen kann das auch zu Verlangsamung führen
(mehr Dateien->schlechteres Cacheverhalten, mehr Initcode, ...)
 
Hallo Giovanni,

•Framework: ja oder nein?
•Warum (ja oder nein)?
•Welche Vorteile bzw. Nachteile bringt ein Framework mit sich?
•Lern-Bilanz des Frameworks
•Ist es für derartige Projekte wie CMS geeignet, das Framework?
•Habt Ihr eigene Erfahrungen schon gesammelt?
•Fazit - eigene Tendenz ob ihr ein Framework wirklich nutzen würdet oder nicht?
•Was euch noch so einfällt, an Tipps, Ideen, Anregungen, usw.
  • JA! Oder wollt ihr alle Standardklassen wie Datenbank-Verbindung, Controller/Views/Models neuprogrammieren? Das kostet euch viel mehr Zeit. Wie sheel schon sagte, bei Frameworks wird es weniger offensichtlichere Fehler geben.
  • Vor- und Nachteile hängen vom benutzten Framework ab.
  • Im Prinzip ist mir jedes bekannte MVC-Framework für ein CMS-System geeignet.
  • Ja, ich würde ein Framework nutzen. Keiner muss das Rad neu erfinden.
  • Tipp: ihr könnt euch auch ein Opensource-CMS schnappen und bei dem Verbesserungen "einschicken" (aka Pull Requests bei GitHub). Natürlich müsstet ihr euch zu erst ein wenig einlesen, aber der spätere Nutzen bringt jedem Enduser von diesem CMS was!

sheel hat gesagt.:
Genau genommen kann das auch zu Verlangsamung führen
(mehr Dateien->schlechteres Cacheverhalten, mehr Initcode, ...)
Um diesen Punkt nochmal aufzugreifen: es gibt die einen Frameworks, bei denen du dein Code sozusagen im Framework einbettest, und die andere Art von Bibliotheken, bei denen du mit Hilfe des Funktionsangebots dein CMS baust. Letzteres ist also nicht so restriktiv, was die Projektstrukturierung angeht.

alxy hat gesagt.:
Ich würde nen Framework benutzen, ja. Es zwingt einen in gewisser Weise auch, vernünftig strukturierten Code zu schreiben, wenn richtig angewendet.
Das stimmt! Teilweise zumindest.

Ich habe schon so einige Codes im Internet gesehen, da kann man einfach nur noch den Kopf schütteln und von MVC-Missbrauch reden!



Bezüglich eurer Funktionsliste:
Wisst ihr, wie lange ihr dafür brauchen würdet? Monate auf jeden Fall!

Wenn ihr von Grund auf anfangt, jedes noch so kleinste Detail implementieren müsst, dann ist das ein Haufen Arbeit!
 
Also ich bin anderer Ansicht, als die meisten hier. Wenn Ziel der Aufgabe tatsächlich der Spaß an der Sache ist und ihr einfach etwas lernen wollt, dann würde ich mich fragen, ob zum Lernprozess ein Framework dazugehören soll.

Ich würde also die Fragestellung ergänzen: Möchte ich mich in ein Framework einarbeiten und damit Erfahrungen sammeln (bspw. aus beruflichen Gründen).

Wenn es wirklich darum geht "euer Know how zu erweitern", lernt ihr auch sehr viel dabei, alles selbst zu schreiben. Klar, dauert das länger. Aber wenn es euch ums Know how geht, dann ist der Weg das Ziel.

In diesem Fall würde ich mir aber vielleicht erst mal ein leichter erreichbares Teilziel setzen. Ich würde das Projekt in Module zuschneiden und mich dann langsam vorarbeiten. Wenn ihr allerdings etwas einigermaßen vernünftiges machen wollt, werdet ihr nicht Monate, sondern mindestens 1-2 Jahre daran schreiben. Zumindest wenn ihr noch ein RL habt :)

Es schadet auch nicht, wenn man sich evtl. am Anfang überlegt, was man denn besser machen kann oder will als bestehende Systeme. Wenn man sich zu Beginn zunächst auf diese Dinge focussiert, habt ihr irgendwann ein System, das vielleicht eine Nische besonders gut abdeckt.
 
Eigentlich sind die beiden Optionen (Framework ja/nein) im Effekt gar nicht so gegensätzlich. Auch dann, wenn man es selbst schreibt, ist es nämlich so ziemlich der größte Fehler, den man machen kann, sich nicht die bestehenden Lösungen anzusehen. Wie hier schon andere Poster sagten: In entsprechenden Komponenten stecken jede Menge Zeit und Gehirnschmalz von Entwicklern, die was von ihrem Handwerk verstehen. Es ist Unsinn und Selbstüberschätzung, darauf nicht zurückzugreifen. So funktioniert auch Innovation nicht. In keinem Bereich. Auch in der Informatik nicht.

Wenn die Arbeit anderer nicht beachtet wird, läuft das ziemlich sicher auf das hier hinaus: „Okay, wir haben uns aus Gründen des Lerneffekts dafür entschieden, alles selbst zu schreiben.“ Wenige Tage später geht es dann mit Threads los wie: „Wie schreibt man denn eine ordentliche ACL? Was braucht die alles? Hat jemand Tipps?“

Ich wäre deshalb sehr vorsichtig mit der Befolgung so „pseudo-idealistischer“ Empfehlungen. (Wird im vorherigen Post ja zum Schluss auch wieder etwas relativiert.) Meines Erachtens gehen die völlig an der Realität vorbei. Sie sind kein guter Rat.
 
Zuletzt bearbeitet:
Danke für die Hilfreichen Antworten.

@sheel: Sehr Informativ und ich muss sagen so habe ich das ganze noch nicht betrachtet. Denn noch gebe ich da ein minimalen Widerspruch bezüglich der Arbeitssuche - das bezieht sich ja dann eigentlich auf die Bekanntesten wie Zend Framework, Cake PHP und / oder Symfony. Aber prinzipiell stimmt es denn noch.

@alxy: Sorry aber MicroFramworks bin ich kein Fan von - die sind auch nur von den großen aufgebaut und benutzen halt nur Teile davon - dann kann ich gleich Symfony benutzen und habe weit aus mehr Nutzen davon. Dein Microframework ist nämlich auch nur auf Symfony aufgebaut.

Ich weiß gar nicht was ich da noch schreiben soll - alles gute Antworten wo einen selbst zum nachdenken, noch mal bringt.

Was ich bis jetzt aber raushöre ist, das man auf jeden fall ein Nutzen-Aufwand-Vergleich machen sollte.

Bin denn noch gespannt was andere auch dazu sagen.

Danke nochmals.

Grüße
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück