Vorteile beim Erstellen eines benutzerdefinierten mvc-Frameworks

8

Würde die Erstellung eines benutzerdefinierten PHP-Framework von Grund auf völlig sinnlos für eine kleine digitale Agentur sein?

Ich habe kürzlich von einem Freund gehört, dass seine Kollegen tatsächlich Zeit für ein solches Projekt in ihrer Agentur haben. Ihr Argument gegen die Verwendung eines anderen wie Kuchen oder Zend ist, dass sie mit so vielen ungenutzten Funktionen und daher viel unnötigem Code kommen.

Ich hätte gedacht, dass ein solches Vorgehen völlig sinnlos und in der Tat eine Verschwendung von Zeit und Geld ist. Sicherlich wäre es sinnvoller, ein Framework, das Ihren Anforderungen entspricht, so nah wie möglich auszuwählen und dann anzupassen / zu erweitern. Auf solchen Frameworks wie zend wird der Code sicherlich von einem viel besseren / getesteten Niveau sein als das von 1 oder 2 Programmierern in ein paar Monaten schaffen könnte.

Es macht einfach keinen Sinn für mich - kann mich jemand anders verfolgen?

    
David 30.07.2010, 20:48
quelle

9 Antworten

6

Nein, ich denke, Sie werden feststellen, dass die meisten hier mit Ihnen übereinstimmen würden - ich bin sicher, dass es eine völlige Zeitverschwendung ist. Vor allem, da sie eine kleine Agentur sind, könnten ihre begrenzten Ressourcen besser woanders ausgegeben werden.

Da sie sich Gedanken über ein aufgeblähtes Framework machen, schlage ich vor, dass sie stattdessen ein leichtgewichtiges PHP-Framework wie CodeIgniter und Kohana .

    
Justin Ethier 30.07.2010 20:51
quelle
6

Die Verwendung eines eigenen Frameworks hat einen großen Vorteil gegenüber anderen Lösungen. Es bedeutet, dass Sie total haben, ich meine GESAMT! kontrolliere es darüber. Egal, was mit anderen Frameworks passiert, denn eines Tages haben Sie Open-Source-Software und an einem anderen Tag könnte das Projekt abgebrochen oder gestoppt werden. Und Ihr Framework wird noch entwickelt werden. Selbst wenn es bedeutet, dass Sie ständig einige Funktionen hinzufügen müssen, wird es sich mit der Zeit auszahlen. Außerdem ist PHP wie ein riesiger Rahmen, und es entwickelt sich weiter. Wenn du dein eigenes Framework schreibst, wirst du mit dieser Technologie auf dem neuesten Stand bleiben :) Natürlich ist es auch gut, mit anderen Frameworks oder CMSs zu arbeiten, weil deine Kunden sie vielleicht verwenden wollen und du auch von ihnen lernen und einige Lösungen umsetzen kannst Ihre Software: D

    
Caspius 25.01.2011 13:44
quelle
4

Ich sehe es sinnlos. Aber es ist ein Fluch von PHP-Programmierern, die das Rad immer wieder neu erfinden. Ich weiß wovon ich rede. Ich habe es auch versucht.

Der beste Ansatz scheint zu sein, einen Rahmen zu lernen und wenn es nicht passt, fragen Sie Freunde, die andere Frameworks kennen, um zu lernen, wie das spezielle Problem in anderen Frameworks gelöst wird und wenn keiner von ihnen gut aussieht, dann ist es Zeit Beginnen Sie mit der Arbeit an einem neuen Framework.

Der Punkt mit viel ungenutztem Code ist nicht vollständig gültig. Zend enthält Klassen, die, soweit ich weiß, entfernt werden können.

BEARBEITEN: Die Leistung von PHP kann zum Beispiel über eAccelerator verbessert werden. Ich finde es einfacher, als einen brandneuen Rahmen zu bauen.

    
Martin Vseticka 30.07.2010 20:51
quelle
3

MVC FW ist weniger als 5% der durchschnittlichen Projektcode-Basis, daher empfehle ich dringend, MVC für jedes Projekt zu erstellen und es an die Projektspezifikationen anzupassen. Wenn jemand genug Wissen über MVC-Muster und etwas Erfahrung in der Verwendung und dem Aufbau von MVC-Frameworks hat, kann es in einigen Tagen erstellt werden.

Die allgemeinen Argumente sind Geschwindigkeit und Leistung, die von der benutzerdefinierten FW vorgegeben werden.

    
codez 30.07.2010 23:30
quelle
3

Manchmal, wenn Menschen Angst vor Veränderungen haben und neue Dinge lernen, haben sie viele dumme Gründe, warum etwas schlecht ist und nicht verwendet werden sollte.

Ich habe einmal in einer Firma gearbeitet, die entschlossen war, ihr eigenes Web-Framework zu schreiben, anstatt Django zu benutzen. Einer der Entwickler, der am "admin" -Teil des Frameworks arbeitete, sagte, ich wollte, dass er seinen Job verliert, da Django automatisch generierten Admin hat.

Es sei denn, es ist ein sehr spezifischer Rahmen und Sie haben sehr gute Gründe und genügend Mittel für das Projekt. Es ist nie eine gute Idee, das Rad neu zu erfinden, wenn Sie es nicht genauso oder besser machen können als das, was bereits da draußen ist.

    
Davor Lucic 30.07.2010 23:45
quelle
2

Es hängt davon ab, welche Art von Projekten sie durchführen und welche Bedürfnisse sie haben. Vergessen Sie nie, dass in der Software das "Beste" immer davon abhängt, was Sie tun. Es gibt keine "goldene Lösung" für alles. Dies beinhaltet mvcs.

Es gibt verschiedene Gründe, einen eigenen mvc zu programmieren:

  • Sie können es auf Ihre spezifischen Bedürfnisse anpassen
  • Sie können die Quelle geschlossen halten, wodurch die Belichtung verringert und die Sicherheit aufgrund von Unklarheiten erhöht wird
  • Du kannst es weiter entwickeln und es dann in die Welt entlassen, wenn es reif ist und einen Hauptzweck erfüllt - eine Menge aktueller mvcs ist auf diese Weise entstanden.
  • Sie können mit der Entwicklung fortfahren, den Quellcode behalten und umfangreiche SaaS-Dienste und -Anwendungen darauf aufbauen, für die Sie die vollen Rechte behalten. Kann aber auch mit Apache-Lizenz gemacht werden.
  • Sie können einen Zweck erfüllen, der von keinem anderen mvc erfüllt wird. Obwohl jeder MVC seine Zeloten hat, die glauben, dass sie die eine und alles Lösung haben, hat jeder MV seine Schattenseiten. Und zu glauben, dass "alles, was getan werden kann, getan wurde", weil 15-20 mvcs draußen sind, ist so dumm, zu sagen: "alles, was entdeckt werden kann, wurde entdeckt". Und es gab Leute, die das zu Beginn des 20. Jahrhunderts sagten.

Ganz zu schweigen davon, dass Sie mit einem externen mvc, den Sie verwenden, dem Projektteam von mvc für viele Dinge verpflichtet sind. Sie haben vielleicht bereits Dinge, die Sie nicht mögen, oder können sie einführen, oder sogar Ihre spezifischen Anwendungen behindern.

Ganz zu schweigen davon, dass sie einfach aufgegeben werden. Kann dem Größten passieren. Codiegniter war der letzte Schrei. Was ist passiert ? Ellis ist es im Grunde genommen. Die Entwicklung verlangsamte sich. Wahrscheinlich bald völlig stockend. Open Source ist kein Garant für ein Projekt - es gab viele Open-Source-Projekte, die ähnliche Wege gehen.

Was passiert mit Leuten, die wichtige Anwendungen mit Codeigniter programmiert haben? Werden sie die Sicherheit der Codeigniter-Installationen, die sie selbst besitzen, übernehmen? De facto zu Maintainern ihres eigenen mvc zu werden? Oder werden sie externe Parteien einstellen, um den mvc für sie aufrechtzuerhalten?

Keine gute Zukunftsinvestition.

Meine Präferenz für die Programmierung meines eigenen mvc besteht hauptsächlich darin, einen mvc zu haben, der zu meinem eigenen Codierungsstil passt. Meine Kriterien für ein mvc:

  • Schnelle Entwicklung
  • Schnelle Änderung
  • Geringer Wartungsaufwand
  • Geschwindigkeit
  • Sicherheit
  • Extreme Einfachheit
  • Zuverlässigkeit in Bezug auf die zukünftige Entwicklung

Ich habe vorher ein großes mvc für mich selbst programmiert. und ich betreibe es immer noch erfolgreich auf einer meiner Hobby-Webseiten, die ~ 600.000-1.200.000 Unique Visitors pro Monat bearbeiten. Zu einem bestimmten Zeitpunkt können mehr als 250 Besucher (Google Analytics - es enthält keine Bots) auf der Seite präsent sein, Seite für Seite gehämmert. Und es blinkt nicht einmal. Ich mag es. Obwohl es verschiedene Mängel hat, die ich nicht mag, funktioniert es spektakulär.

Im aktuellen Modus mache ich die Lektionen, die ich aus dem vorherigen gelernt habe, so wie sie für meine speziellen Zwecke gelten.

Nicht zu vergessen, es ist eine großartige Möglichkeit, neue Fähigkeiten zu entwickeln und zu verfeinern.

Aber eine Sache ist ein Muss: Plane es sehr gut und baue darauf weiter, verändere und verbessere es.

    
unity100 22.08.2014 14:58
quelle
1

Für jedes Framework

Vorteile

  • erhalten Sie genau die Funktionalität, die Sie wollen
  • Kontrolle über kleine Details, die für Ihr Projekt wichtig sind
  • Vertrautheit mit Code

Nachteile

  • alles, was dich bricht, muss dich selbst reparieren
  • lerne nicht aus den Fehlern der Vergangenheit
  • wird aufgrund einer kleineren Zielgruppe nicht so viele Fehler bemerken

Persönlich empfehle ich, bestehende Frameworks zu untersuchen, bevor Sie überhaupt daran denken, Ihre eigenen zu schreiben. Denken Sie daran, dass es in Ordnung ist, wenn Sie nicht alles an einem Tag verstehen!

    
corsiKa 30.07.2010 20:50
quelle
1

Es ist Zeitverschwendung. Es sei denn, sie bauen eine Website mit dem Traffic von Facebook auf, die Performance-Hits, die sie mit etwas wie Yii gegen ihre eigenen bekommen, sollten sehr wenig ausmachen

    
Eric C C 30.07.2010 20:52
quelle
0

Es ist nicht unbedingt Zeitverschwendung, aber ich stimme dir zu, ich habe es auch selbst ausprobiert. Ich verwende Zend, Code Igniter und Fuel, je nachdem, an welchem ​​Projekt ich gerade arbeite.

Die Folge, die ich hatte, um meinen eigenen Rahmen zu schaffen, ist die Deadline. Wenn Sie an einem Projekt mit sehr knappen Fristen arbeiten, wäre die Erstellung eines eigenen Frameworks eine schlechte Idee.

    
user2351410 19.02.2014 13:47
quelle

Tags und Links

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '326848',
    'url' => 'benefits-of-creating-a-custom-mvc-framework',
];

$_COOKIE = [
    'advanced-frontend' => '094c87dabf397f67112233c7f44aa717',
    '_csrf-frontend' => '01bc9c45794d6ef3636dbd1c46ca40cc2d4a202f67eeeecd4285bb99ea0d1249a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"xtRXmoCWGHkia8lCPNIJtHE_HuNhiLkl";}',
];

$_SESSION = [
    '__flash' => [],
];