
Drupal nach dem Wechsel von einem benutzerdefinierten CMS
Manchmal finde ich Fragen wie die folgende in Internetforen: „Ich möchte eine Website erstellen. Soll ich ein standardmäßiges CMS (wie Drupal) verwenden oder ein proprietäres CMS entwickeln?“ Ich habe eine Weile mit einem großen, kundenspezifischen CMS gearbeitet, das entwickelt wurde, sowie mit Drupal, und ich wollte meine Einblicke teilen.
Das Rad neu erfinden
Das erste, was mir auffiel, war der Unterschied in der Menge an Zeit und Aufwand, die für das Umschreiben standardmäßiger Lösungen aufgewendet wird. Jede Website, egal wie groß oder klein, hat einige wiederkehrende Elemente, denen Sie normalerweise als Benutzer keine Aufmerksamkeit schenken. Sie sind im Hintergrund vorhanden. Allerdings bedeutet das nicht, dass sie nicht viel Arbeit erfordern.
Beispiele hierfür sind die Anpassung des Bildes auf einer Website an ein bestimmtes Format, Sitemap, alle Arten von Umfragen usw. Ich könnte endlos weitermachen. Jede dieser Funktionen muss entwickelt werden, die Fehler müssen erfasst werden, und leider werden einige der Fehler erst in der Produktion entdeckt.
Selbst einfache Änderungen, wie das Hinzufügen eines neuen Datenformats oder das Ändern von grafischen Elementen, können in einem von Grund auf neu geschriebenen System eine Herausforderung darstellen. Sie müssen bedenken, dass die Entwicklung neuer Funktionen nicht nur das Schreiben des Codes umfasst, sondern auch das Finden aller Fehler, die Anpassung an den Rest des Systems und dann das Einspielen in die Produktion, damit es einer Feuerprobe unterzogen werden kann.
Es gibt einen Unterschied zwischen dem Verbringen einer Woche mit dem Schreiben von Code, der bestehenden Lösungen ähnelt, oder dem einfachen Installieren eines Moduls, wie es bei Drupal der Fall ist.
Ich habe auch festgestellt, dass in einem kundenspezifischen CMS der Arbeitsaufwand für die Verwaltungsoberfläche weitaus größer ist als die Zeit, die darauf verwendet wird, Lösungen dafür zu finden, wie der Kunde/Verbraucher den Inhalt sieht.
Darüber hinaus können Sie beim Entwickeln für Drupal die Ergebnisse Ihrer Arbeit teilen, indem Sie ein Modul erstellen und veröffentlichen, damit andere es verwenden können.
Modularität
Zweitens mag ich die Modularität von Drupal. Unser Standardvorgehen besteht darin, ein vorhandenes Modul zu finden oder unser eigenes zu entwickeln, das den Betrieb des Standardmoduls erweitert oder modifiziert. Die Philosophie von Drupal ermöglicht einfache Modifikationen aller Elemente.
Verwenden Sie die Benutzeroberfläche
Zusätzlich ist es erstaunlich, wie viel in Drupal erledigt werden kann, ohne auch nur eine einzige Codezeile im Editor zu schreiben, indem stattdessen das Drupal-Menü verwendet wird.
Zum Beispiel haben wir in unserem Unternehmen Droopler erstellt – eine Drupal-Distribution, die es Benutzern ermöglicht, schnell professionell aussehende Websites zu erstellen. Ich arbeitete an der Entwicklung der Oberfläche zur Erstellung eines Blogs. Abgesehen vom Styling wurde fast die gesamte Funktionalität, einschließlich der Verwaltungsoberfläche, durch Klicken auf die entsprechenden Einstellungen im Drupal-Menü erstellt (die Hauptseite und Unterseiten mit Beiträgen, Inhaltszugabeschnittstelle, Absatztypen und Bildformate, Erstellungsdatum, Eintragskategorien usw.).
Standards
Das Problem bei kundenspezifischen Content-Management-Systemen ist ein Mosaik an Lösungen, die dort zu finden sind. Zum Beispiel kann es passieren, dass der Code für eine bestimmte Funktionalität von einer Person geschrieben wurde, die zu einem anderen Unternehmen gewechselt ist und niemand im Unternehmen die Lösung vollständig versteht. In Drupal wird dies in gewissem Maße minimiert, da wir Standardfunktionen zur Modifikation verwenden, wir haben spezifische Datenstrukturen, Arten von Konfigurationen zu speichern und so weiter. Dadurch weiß ich, dass die andere Person dieselben Standards verwendet, und es ist einfacher für mich, den Code zu verstehen. Außerdem ist es einfacher, Ordnung im Code zu halten und das Auftreten des so genannten „Spaghetti-Codes“ zu begrenzen.
In Drupal sind die Hauptdatenstrukturen gut durchdacht, erprobt und es besteht keine Notwendigkeit, das Rad neu zu erfinden.
Fehler sind ein völlig separates Thema. Fast jeder Fehler in einem kundenspezifischen CMS bedeutet Ärger. Mit Drupal können Sie sicher sein, dass jemand bereits die Probleme gelöst hat, mit denen Sie zu kämpfen haben.
Community
Nun, wir sind beim Hauptpunkt angelangt – der Community. Drupal ist ein Open-Source-Projekt und hat eine lebendige Community. Das Projekt wird nicht nur von Privatpersonen, sondern auch von Unternehmen, die Drupal nutzen, entwickelt. Dank dessen stehen Ihnen eine Vielzahl von Modulen, eine Fülle an zusätzlichem Material, Lösungen für häufige Probleme, regelmäßige Treffen rund um die Welt, umfangreiche Literatur und Online-Kurse zur Verfügung.
Nachteile von Drupal
Ich habe mich auf die Vorteile konzentriert, aber das bedeutet nicht, dass Drupal keine Einschränkungen oder Nachteile hat. Zum Beispiel... Drupal ist ein mächtiges System, alles kann auf verschiedene Arten durchgeführt werden. Wenn Sie ein Element auf einer Seite ändern möchten, können Sie verschiedene Methoden verwenden: ein Block erstellen, die Daten mit einer der mehreren möglichen Hook-Funktionen ändern oder vielleicht das Skin ändern. Das kann problematisch sein, wenn Sie eine bestehende Codebasis ändern, da die Zeile, nach der Sie suchen, die für das Erscheinungsbild eines bestimmten Elements verantwortlich ist, an vielen verschiedenen Stellen sein kann.
Manchmal können Sie auch auf Einschränkungen stoßen, mit denen Sie nie gerechnet hätten. Ein solches Beispiel ist die Tatsache, dass die Möglichkeit, mehrere Elemente in der Liste auszuwählen, standardmäßig nicht erlaubt, diese auf mehreren Seiten auszuwählen.
Drupal hat auch seinen eigenen spezifischen Stil, weshalb Sie einige Zeit mit dem Lernen verbringen müssen. Es ist nicht möglich, ein großes Projekt zu starten, nur indem man PHP kennt oder wenig Erfahrung mit anderen Frameworks hat. Sie müssen lernen, wo und wann der Code geändert werden muss, wie die Daten am besten modifiziert werden, die Datenstrukturen, die interne API kennenlernen.
Zusammenfassung
Zusammengefasst, wenn ich meine Arbeit mit einem kundenspezifischen CMS mit der in Drupal vergleichen würde, gewinnt Drupal. Tausende erweiterbare Module, gut durchdachte Datenstrukturen, Standards und die Menge an Materialien und Dokumentation machen es möglich, nach einer gewissen Einarbeitungszeit Aufgaben effizient und produktiv zu lösen und exzellente Software zu erstellen.