Ich bin dabei, ein groß angelegtes Web-App-Projekt zu beginnen. Die Prämisse dieses Projekts ist eine Zielwebsite, die Inhalte sammelt (Inhalt wird mit einem Crawler / Bot gesammelt, der unabhängig und in festgelegten Intervallen zum Indizieren von Daten von Partnern läuft, die unsere Technik genehmigt haben) und diesen Inhalt anzeigt Benutzer. Benutzer können den Inhalt, den die Plattform ihnen präsentiert, durch Ranking der Inhalte anpassen, um der Plattform Daten zur Verfügung zu stellen, um zu bestimmen, welche Inhalte der Benutzer wahrscheinlich als günstig empfindet. (Ja, ich weiß, das klingt genau wie stumbleupon.com)
Der Schöpfer dieser Idee ist nicht-technisch und er hat bereits Erfahrung mit der Entwicklung von Webseiten mit Wordpress. Aus diesem Grund war sein erster Instinkt, ein CMS für dieses Projekt zu benötigen. Mein Instinkt als Entwickler, der umfangreiche Web-Entwicklungserfahrung beim Erstellen von Web-Apps mit PHP / Codeigniter hat, ist, dass ein CMS nie dazu gedacht war, eine solche zweckspezifische maßgeschneiderte App wie diese zu erstellen - und zu versuchen, eine solche zu verwenden verursachen Sie viel unnötigen Overhead / Unordnung im Projekt.
Ich denke, es wäre besser, eine Back-End-Schnittstelle zum Anzeigen / Hinzufügen / Bearbeiten / Entfernen von Inhalten zu erstellen, die die Spinne sammelt, da ich mir vorstelle, dass dies die einzige Art von Zugriff / Kontrolle für nicht-technische Partner ist brauchen in diesem Projekt. (möglich ist auch, Nutzer zu verbieten, unangemessene Kommentare zu Inhalten zu entfernen usw.)
Aber was denkst du, gibt es einen Wert, den ein CMS einem solchen Projekt bieten könnte? Gibt es Situationen, in denen es eine allgemein anerkannte Regel ist, dass ein CMS gut / schlecht ist? Ich komme aus jahrelanger PHP-App-Entwicklung mit Frameworks wie codeigniter, und in letzter Zeit musste ich auf einer Wordpress-Site arbeiten - was für mich wie ein ekelhaftes Durcheinander globaler Variablen und endloser "Hooks" für Code erschien führe wann / wo du es brauchst, etc.
---- BEARBEITEN ----
Ich sollte hinzufügen, dass eine beabsichtigte Funktion, die zu all dem hinzugefügt werden soll, Benutzer sind, die ihren eigenen Inhalt zu unserer Sammlung von aggregierten Inhalten hinzufügen können. Nur ein weiteres Merkmal, das mich denken lässt, dass diese App zu "einzigartig" ist, um auf einem CMS richtig entwickelt zu werden.
---- BEARBEITEN ----
Eine weitere Sache, die hinzugefügt werden sollte, ist Skalierbarkeit ist ein großes Anliegen. Wir wollen das schaffen, um mit 200.000 - 2.000.000 - 20.000.000 Unique Visitors pro Monat umgehen zu können. Das bedeutet, dass wir alles nutzen müssen, Lastausgleich, Memcached-Caching, Worker-Prozesse / Server, Hochverfügbarkeits-MySQL- und Mongodb-Datenbanken (für verschiedene Zwecke in unserer Web-App), Content-Delivery-Netzwerke, Hosting von Asset-Dateien unabhängig vom Anwendungsserver usw. Ich habe keine Lust, die Kontrolle über den gesamten Code zu verlieren, weil ich in der Vergangenheit meine Fähigkeit genutzt habe, alles zu berühren, um Performance-Probleme / Engpässe zu beheben.
Nun, die meisten CMS gibt es nicht nur CMS, sondern auch umfassende PHP-Frameworks mit grundlegenden Funktionen. Allerdings sind diese CMS eher für Websites geeignet, die auf Inhalten basieren, wie Websites mit vielen Artikeln. Es ist viel einfacher, solche Websites durch die Benutzer, die keine technischen Benutzer sind, zu aktualisieren und zu verwalten. Aber wenn es um WebApps geht, benötigen sie viel mehr Interaktionen, z.B. a in einer CRM-Anwendung die Einsätze, liest, Updates passieren sehr häufig.
Andere Punkte, die beachtet werden sollten sind
1) wäre es skalierbar, wenn ich CMS für meine App verwende, wenn Sie glauben, dass Ihre App in Zukunft wachsen wird, und Sie beginnen, sie von Grund auf neu zu erstellen, bis Ihr eigener Code in einem Framework umgewandelt wird für deine App Die Dinge werden sehr einfach zu aktualisieren sein, einige neue Funktionen hinzufügen usw.
2) Flexibilität, wenn Sie mit CMS gehen, müssen Sie sich in der CMS-Umgebung einschränken. Was ist, wenn Sie eine bestimmte Funktionalität in Ihrer Website benötigen, aber Sie nichts passendes dafür finden. In diesem Fall müssen Sie es selbst entwickeln, was lange dauern könnte, als es sonst dauern würde.
3) Leistung, CMS sollte für den Zweck verwendet werden, für den sie gebaut wurden, ein CMS lädt alles, was es benötigt, um richtig zu funktionieren, während vieles von diesen Sachen für Ihre App überhaupt nicht benötigt wird.
Ich würde sagen, dass wir mit einem Framework arbeiten, das den Entwicklungsprozess unterstützt, wie CakePHP, CodeIgniter, Yii etc.
Das wird beim Kochen ganz einfach:
Müssen nicht technische Benutzer den Inhalt auf der Website verwalten können?
Für so ziemlich jede moderne Website lautet die Antwort "ja". Das Internet ist jetzt Mainstream und Facebook, Twitter, Wordpress, etc. haben gezeigt, dass Sie kein Programmierer sein müssen, um Webinhalte zu erstellen / zu pflegen.
Ihre ursprüngliche Frage sagt so viel. Also, ja, Sie brauchen ein CMS (ein System, das die Inhaltsverwaltung durch Endbenutzer ermöglicht).
Ihre eigentliche Frage ist also " Soll ich mein eigenes CMS erstellen oder ein bestehendes CMS verwenden? ". Diese benutzerdefinierten Oberflächen, die Sie oben beschreiben, sind Content Management. Sie beschreiben das Erstellen eines grundlegenden CMS.
-
Zu dieser Frage möchte ich sagen: Das "Content-Management" für die Endnutzer zugänglich zu machen, ist viel schwieriger, als die meisten Programmierer zu erwarten scheinen. Sogar die Implementierung eines Rich Text (WYSIWYG) -Editors, der nicht vollständig fragil ist & amp; Buggy ist eine monumentale Aufgabe.
Und das ist nur die Spitze des Eisbergs: Berechtigungen, Versionierung, Workflow, Taxonomie, Analyse, Personalisierung, Feeds, Kommentare, Moderation, Fehlerprotokollierung, etc., usw.
Dies können Funktionen sein, die Sie beim Start benötigen, oder nicht, aber wenn die Website reifer wird, müssen diese Möglichkeiten oft angesprochen werden.
-
Ich arbeite für eine Firma , die ein CMS erstellt, also bin ich voreingenommen, aber ich halte die Entscheidung, ein CMS zu kreieren, für verrückt. Aus technischer Sicht ist es kompliziert und aus Usability-Perspektive noch komplizierter. Als Ein-Mann-Band (oder sogar als Zehn-Mann-Band) haben Sie keine Zeit, alle Features zu erstellen, die mit vorhandenen CMS-Paketen verfügbar sind. Dies bedeutet, dass es schwieriger ist, die Website für neue Ideen oder moderne Praktiken zu entwickeln. Du wirst immer hinter dir stehen und aufholen.
Mein Rat: Finden Sie eine CMS-Plattform, die sich an den Bedürfnissen Ihrer Kunden orientiert, engagieren Sie sich in ihrer Community und bauen Sie auf dieser Grundlage auf. Es könnte kurzfristig schwieriger sein (mit Ihren PROGRAMMING-Idealen, um eine Plattform unterzubringen), aber es dient Ihrem Kunden besser, nicht von einem selbstgebackenen CMS abhängig zu sein, das ein anderer Entwickler irgendwann erben wird (und hassen wird).
>Ich denke, es wäre besser, eine Backend-Schnittstelle zu erstellen Anzeigen / Hinzufügen / Bearbeiten / Entfernen von Inhalten, die die Spinne sammelt, da ich mir das vorstelle Dies ist die einzige Art von Zugriff / Kontrolle für nicht technische Partner wird in diesem Projekt benötigt. (möglich auch Nutzer verbieten, entfernen unangemessene Kommentare zum Inhalt usw.)
Ja, es wäre eine gute Idee, es gibt Ihnen mehr Kontrolle. Ihr nicht technischer Partner wird diese Funktionen nur benötigen, denke ich. Oder Sie können Ihren Partner fragen, welche Art von Steuerung er benötigt. Ich meine, welchen spezifischen Anwendungsfällen er folgen wird
Aber was denkst du, gibt es eine Art von Wert, dass ein CMS könnte zu einem Projekt wie diesem beitragen? Gibt es Situationen, wo es ist eine allgemein anerkannte Regel, dass ein CMS gut / schlecht ist? Ich komme aus Jahre PHP App-Erstellung mit Frameworks wie Codeigniter, und Vor kurzem musste ich auf einer Wordpress-Site arbeiten - was mir schien wie ein ekelhaftes Chaos globaler Variablen, endlose "Haken" zu bekommen Code, der ausgeführt wird, wenn / wo Sie es brauchen, usw.
Ich denke, CMS kann Ihnen auch in dieser Angelegenheit helfen. Was ich empfehle, ist in diesem Fall DRUPAL. DRUPAL ist mächtig genug, um dies zu kontrollieren. Sie können auch eine benutzerdefinierte Liste von Aktionen (wie Hinzufügen, Bearbeiten oder Löschen) in DRUPAL erstellen, auf die Ihr nichttechnischer Partner leicht zugreifen kann. DRUPAL hat viele Plugins (Module), ich bin mir sicher, dass Sie so etwas finden werden oder Sie können einige Plugins kombinieren, um Ihre Arbeit zu erledigen. Wenn Sie ein vorhandenes CMS verwenden, erhalten Sie eine Bestätigung, dass es stabil ist.
Die Überlegung lautet immer: "Was sind die Geschäftsanforderungen und wie kann Software das unterstützen?" Sie müssen sich überlegen, was die Kernanforderungen sind, und dann beurteilen, wie der beste Ansatz aussehen könnte, sei es die Verwendung eines CMS, das Roll-in Ihres eigenen Systems oder die Anpassung eines vorhandenen Produkts an die Geschäftsanforderungen.
Die Zugriffskontrolle rechtfertigt nicht die Verwendung eines CMS - ein CMS eignet sich hervorragend für vom Nutzer generierte und gepflegte Inhalte, etwas, das Sie (aus Ihrer Beschreibung) nicht wirklich tun. Es klingt für mich so, als hätten Sie benutzerspezifische Einstellungen, die Teil eines CMS sind, aber nicht wirklich ein wichtiger Dienst von ihnen.
WordPress ist kein gutes Beispiel für ein CMS, zumindest im Kern - es hat einige der Kernfunktionen eines CMS (Benutzer, Publishing, usw.), aber Sie sammeln Inhalte an einem zentralen Ort und dann Anpassen der Anzeige dieser Daten. Es fällt meiner Meinung nach nicht wirklich in den Bereich eines CMS.
Bearbeiten: Ok, damit Ihre Benutzer Inhalte hinzufügen / erstellen, sollten Sie dann einen CMS in Erwägung ziehen. Ihre Herausforderung wäre, den aggregierten Inhalt nahtlos in Ihr CMS zu integrieren. Es ist nicht unmöglich, und wie bereits erwähnt, wäre eine der etablierten CMS-Plattformen ein guter Ausgangspunkt.
Tags und Links php web-applications content-management-system