2 Stimmen

Wo sind die Rahmenwerke für die Erstellung von Bibliotheken?

Immer wenn ich eine PHP-Bibliothek (kein Framework) erstelle, neige ich dazu, alles jedes Mal neu zu erfinden.

"Wohin mit den Konfigurationsoptionen?"

"Welches Entwurfsmuster soll hier verwendet werden?"

"Wie sollen sich die einzelnen Klassen gegenseitig ergänzen?"

und so weiter...

Dann denke ich: Gibt es nicht irgendwo einen guten Bibliotheksrahmen, den man verwenden kann?

Es ist wie ein Framework für eine Webanwendung (Symfony, Cakephp...), aber anstatt eine Webanwendung zu erstellen, wird dieses Framework dem Programmierer helfen, eine Bibliothek zu erstellen, die alle Standardstrukturen und -klassen (Observer Pattern, Dependency Injection etc.) bereitstellt.

Ich denke, das wird das nächste große Ding sein, wenn es nicht schon jetzt verfügbar ist. Auf diese Weise wird es einen Standard geben, an den man sich bei der Erstellung von Bibliotheken halten kann. Andernfalls ist es wie ein Dschungel, in dem jeder seine eigene Struktur erstellt, und viele Programmierer programmieren einfach drauflos, ohne an Wiederverwendbarkeit usw. zu denken.

Es gibt zur Zeit kein Framework für die Erstellung von Bibliotheken?

Wenn nicht, stimmen Sie mir dann nicht zu, dass dies der richtige Weg ist, mit einem Bibliotheksrahmen?

Denn ich verbringe wirklich viel Zeit (Wochen!) damit, darüber nachzudenken, wie ich die Dinge organisieren kann, sowohl auf Code- als auch auf Dateiebene, wenn ich doch einfach anfangen sollte, die Logik zu programmieren.

Teilen Sie Ihre Gedanken mit!

4voto

Bill Karwin Punkte 493880

Ich denke, es gibt Rahmenwerke, die Ihren Bedürfnissen entsprechen. Entwickler unterscheiden zwischen Full-Stack-Frameworks und eher komponentenbasierten Frameworks.

Die komponentenbasierten Frameworks umfassen eine Sammlung von feiner abgestuften Komponenten, die mehr oder weniger unabhängig voneinander verwendet werden können. Beispiele sind Konfiguration, Authentifizierung, E-Mail, Webdienste usw.

Wenn Sie von einem Rahmen sprechen, der die Entwicklung dieser Komponenten erleichtert, bin ich mir nicht sicher, worin der Wert besteht. Frameworks bieten einen Mehrwert, indem sie allgemeinen Code abstrahieren, von dem sie sicher sind, dass Sie ihn brauchen werden. Was ist der gemeinsame Code zwischen einer Authentifizierungskomponente und einer E-Mail-Komponente?

Frameworks erhöhen die Produktivität von Entwicklern für bekannte Aufgaben. Je spezifischer und bekannter die Aufgabe ist, desto mehr kann das Framework davon ausgehen, dass es weiß, wie sie zu erledigen ist. Beispiel: Drupal oder MediaWiki.

Aber Frameworks übernehmen nicht den OO-Entwurf für beliebigen Code für Sie. Das geht in die entgegengesetzte Richtung, weg von spezifischeren, hin zu breiteren Aufgaben. Es ist schwer, den gemeinsamen Code zu identifizieren, der von einem so breiten Satz von Technologien wie "Bibliotheken" abstrahiert werden kann.

4voto

Gordon Punkte 304254

Tja, jetzt Bill grundsätzlich alles gesagt, was ich sagen wollte, aber egal. Ich kann ein paar Links einfügen:

Wenn Sie etwas wollen, das Sie einfach in Ihr Webroot werfen und mit der Codierung Ihrer Anwendung beginnen können, suchen Sie nach einem Full-Stack-Framework, das stark auf Konvention vor Konfiguration . Von den modernen Rahmenwerken, Symfony kommt mir in den Sinn.

Wenn Sie eigenständige Komponenten wünschen, suchen Sie nach Komponentenbibliotheken wie Zeta-Komponenten (ehemals ezComponents) o Zend-Framework o Symfony-Komponenten (enthält eine DI-Rahmen ). Sie können diese wiederverwenden oder erweitern, um zusätzliche Anforderungen hinzuzufügen. Oder verwenden Sie Doktrin wenn Sie ein ORM benötigen. Und vergessen Sie nicht BIRNE .

Die Art und Weise, wie Sie die oben genannten Informationen verwenden oder was Sie damit machen, ist jedoch nichts, was Sie irgendwo herunterladen könnten. Architektur y Gestaltung ist die Aufgabe des Entwicklers (oder Architekten). Sie können es nicht herunterladen, weil es wahrscheinlich nicht für Ihre Anwendung geeignet ist, wenn Sie es nicht stark modifizieren. Muster, wie das GOF-Muster oder die PoEAA-Muster bieten Leitlinien für die Lösung von Problemen auf allgemeiner Ebene, aber Sie müssen sie immer an Ihre Anwendung anpassen.

1voto

Dinah Punkte 50664

Das meiste von dem, was Sie beschreiben, nennt man Softwaretechnik. Es ist das Wesen der Verwendung von Basissoftware und Sprachwerkzeugen, um eine komplexe Lösung zu schaffen. Was die Vereinfachung und Abstraktion der sich wiederholenden Teile angeht, so versuchen die meisten modernen Sprachen genau das.

Ich denke, die Antwort auf Ihre Frage lautet: Python, .NET, Ruby

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X