Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Brainstorming Creating Framework

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Brainstorming Creating Framework

    Hallo zusammen,

    ich mach mir gerade Gedanken darüber ein extrem einfaches Framework zu basteln. Da ich das Gefühl nicht los werde, dass mir dir anderen Frameworks zu groß und komplex sind.

    Mit einfach meine ich eine Db-Klasse, PageControl, Registry, Sicherheit, User, Acl und Template.

    Die "fertigen" haben natürlich so gut wie alles an Bord. Registry, Security, Db, etc... Aber braucht man wirklich alles von diesen?

    Wenn ich jetzt anfange mir was eigenes zu bauen, habe ich gleich noch den Vorteil einiges zu lernen. Natürlich weiss ich auch, dass mein Kenntnisstand für so ein Vorhaben nicht vorteilhaft ist, aber irgendwo wäre das doch mal ne Herausforderung.

    Was würdet Ihr mir raten?

    Viele Grüße

  • #2
    Und du willst also für die Pflege, Patches, Bugfixes selbst sorgen? Es gibt genug Microframeworks, die nicht so umfangreich sind, wie z.B Symfony oder Zend.

    http://silex.sensiolabs.org/
    http://www.slimframework.com/
    http://flightphp.com/

    // Edit: Alleine für die technische Konzeption und grundlegenden Aufbau so eines Frameworks benötigt es schon sehr viel Zeit. Sonst wirst du früher oder später auf Probleme stoßen, die du nicht bedacht hast.

    Kommentar


    • #3
      Du weiß schon, daß die Umlaute auf Deinem Beta-Test nicht richtig dargestellt werden?

      Kommentar


      • #4
        Zitat von achtelpetit Beitrag anzeigen
        Du weiß schon, daß die Umlaute auf Deinem Beta-Test nicht richtig dargestellt werden?
        Warum erwähnst du denn so ein Offtopic Thema? Schreib ihm dazu doch lieber eine PM, wenn dir so etwas auffällt.

        Kommentar


        • #5
          Warum erwähnst du denn so ein Offtopic Thema?
          Weil ich eine Frage bezgl. der Konstruktion eines eigenen Frameworks nicht ernst nehmen kann, wenn so ein Fehler in einem Beta-Test auftritt.

          Kommentar


          • #6
            Zitat von achtelpetit Beitrag anzeigen
            Weil ich eine Frage bezgl. der Konstruktion eines eigenen Frameworks nicht ernst nehmen kann, wenn so ein Fehler in einem Beta-Test auftritt.
            Da gebe ich dir grundlegend Recht, aber die jeweilige Person kein Feedback zu geben, da man ihm unterstellt das seine Fähigkeiten ggf. nicht ausreichen können, aufgrund der Umlauteproblematik in seinem Browsergame, halte ich für nicht richtig.

            Kommentar


            • #7
              Ja, dass weiss, wird auch im nächsten Update gefixt, nur hatte dieses erstmal eine geringe Priorität als ein paar andere Bugs

              Dennoch danke.

              Erstmal auch Danke für die Links. Ob meine Kenntnisse ausreichend sind, werde ich definitiv bei der Planung und Umsetzung sehen. Das mit dem Framework kann man aber definitiv ernst nehmen, weil ich nie was mache ohne vorher gründlich drüber nachzudenken.

              Kommentar


              • #8
                Die "fertigen" haben natürlich so gut wie alles an Bord. Registry, Security, Db, etc... Aber braucht man wirklich alles von diesen?
                Wenn alles aus einem Guss sein soll, braucht man vieles davon. Und spätestesn beim dritten mal Implementieren der selben Komponente fragst Du Dich, warum das nicht im Core vorhanden ist.

                Mit einfach meine ich
                Da sehe ich aber einiges, was da noch fehlt. Und anderes (ACL, DB …) was vielleicht auch nicht jeder braucht.

                Insofern ist das eine rein subjektive Diskussion.

                Kommentar


                • #9
                  Zitat von nikosch Beitrag anzeigen
                  Wenn alles aus einem Guss sein soll, braucht man vieles davon. Und spätestesn beim dritten mal Implementieren der selben Komponente fragst Du Dich, warum das nicht im Core vorhanden ist.
                  Da hast du natürlich vollkommen recht. Deshalb möchte ich mir auch im Vorfeld soviel Input aus Erfahrung sammeln wie möglich, damit eine gute und sinnvolle Planung entstehen kann.
                  Zitat von nikosch Beitrag anzeigen
                  Da sehe ich aber einiges, was da noch fehlt. Und anderes (ACL, DB …) was vielleicht auch nicht jeder braucht.

                  Insofern ist das eine rein subjektive Diskussion.
                  Datenbank sehe ich doch schon dazugehörig, bei der acl gebe ich dir aber recht.,. Weil ich bis jetzt immer nur Sachen mit logins und acl erstellt habe, hätte ich diese mit in die innere wahl gesetzt.

                  Kommentar


                  • #10
                    Dass du die großen Frameworks so überladen findest, liegt vermutlich an der mangelnden Erfahrung (was nicht negativ gemeint ist!). Je mehr Erfahrungen du im Bereich OOP gesammelt hast, desto eher wirst du verstehen, dass diese Komponenten doch ungefähr so aussehen müssen, um den Anforderungen gerecht zu werden.

                    Außerdem muss man sich ja nicht gleich einem kompletten Framework bedienen, sondern vielleicht auch einfach den einzelnen Komponenten. Empfehlen kann ich dazu übrigens folgende Blog-Reihe von Fabien Potencier, dem Projekt-Gründer von Symfony: Create your own framework... on top of the Symfony2 Components

                    Darin baut er Schritt für Schritt ein einfaches Framework auf und verwendet dabei einige Symfony2-Komponenten. Statt dieser kann man natürlich auch Komponenten anderer Frameworks oder etwas Selbstgeschriebenes verwenden.

                    VG

                    Kommentar


                    • #11
                      Zend z.B. ist sehr modular aufgebaut, so dass du auf viele zusätzliche Packages verzichten kannst und somit das ganze Framework schlank halten kannst. Genauso ist es bei Silex, falls dir dann doch noch eine Komponente fehlt, einfach auf das Symfony2 Framework zurückgreifen.

                      Ich würde dir abraten ein eigenes Framework zu bauen, gerade weil du für viele Lösungen dann immer alles neu schreiben sowie implementieren musst. Macht aus meiner Sicht keinen Sinn.

                      Kommentar


                      • #12
                        Zitat von ph|L Beitrag anzeigen
                        Zend z.B. ist sehr modular aufgebaut, so dass du auf viele zusätzliche Packages verzichten kannst und somit das ganze Framework schlank halten kannst.
                        Jein, das Zend Framework ist zwar eher eine Komponentensammlung mit zusätzlichem MVC-Stack, aber die Koppelung zwischen den Komponenten ist doch recht hoch, zumindest in der 1er-Version - ZF2 hat da soweit ich das bisher gesehen habe deutliche Fortschritte gemacht.

                        Man kann zwar viele Komponenten einzeln verwenden, das Framework sollte dazu aber trotzdem am besten als ganzes installiert werden.

                        Die Symfony Components sind da sauberer getrennt. Und neu im Rennen in Sachen Modularität ist Aura mit dem Anspruch völlig unabhängiger Komponenten (also null Abhängigkeiten). Mit dem Framework habe ich allerdings noch nicht experimentiert, ich habe nur die Diskussion um diesen Ansatz verfolgt.

                        Kommentar


                        • #13
                          ...viele zusätzliche Packages verzichten kannst...
                          Stimmt schon, Symfony hat weniger Kopplung als das ZF2.
                          Würde eh Silex oder für ganz kleine Sachen Slim favorisieren

                          Kommentar


                          • #14
                            Also zum lernen ist es sicher nicht verkehrt - allerdings sollte man da klein anfangen wenn man vorher noch keine größeren Projekte bearbeitet hat.

                            Wichtig ist in erster Linie sich klar zu werden welche Funktionen man tatsächlich benötigt - und was man lieber modular anbindet - und da beginnt schon das erste problem: Wie erreicht man eine Modularität ohne das es auf Kosten der Performance geht? Ein ordentliches Konzept und Erfahrung im Bereich OOP, Design Patterns sind dafür ein Muss

                            Ich habe die letzten 2 Monate an einem eigenen Framework gearbeitet (ohne MVC) das mir die immer wiederkehrende Arbeit abnehmen soll speziell für kleinere Projekte. Ziel war es gewissen Funktionen out-of-the-box bereitzustellen ohne groß etwas konfigurieren zu müssen und gleichzeitig eine hohe Performance zu erzielen. Je mehr Funktionen drin stecken desto weiter fällt natürlich die Performance ab.

                            Derzeitige Funktionen (nahezu final für meinen Bedarf): User-Input handeln, eigenes Errorhandling, einige Debugging-Features, diverse Sicherheitsfunktionen, mehrstufiger Cache, Minify, serverseitige LESS-Integration, Kompression, Templates, Mehrsprachigkeit, Formulare (Überprüfen, Fehler auswerten und evtl. visualisieren), MySQLi (wird evtl. demnächst auf PDO upgradet), Sessions (in DB), ORM, Mailer, GarbageCollection, Hooks (derzeit in Arbeit)

                            Fazit:
                            Mein Ziel mit nur einer Codezeile meine ständig wiederkehrende Arbeit zu minimieren ist mit gelungen.
                            Die Ladezeiten der Webseiten sind dank intelligentem Caching sehr kurz.
                            Die gefundenen Bugs haben mich knapp die Hälfte der Arbeitszeit die darin steckt gekostet.

                            Kommentar


                            • #15
                              ich mach mir gerade Gedanken darüber ein extrem einfaches Framework zu basteln. Da ich das Gefühl nicht los werde, dass mir dir anderen Frameworks zu groß und komplex sind.
                              First rule about writing your own framework: don't do it! (siehe http://www.joelonsoftware.com/articl...000000007.html bzw. http://www.codinghorror.com/blog/200...ut-wheels.html)

                              Ein gutes Framework schreibst du nicht mal eben zur Übung, dafür braucht es lange Jahre Erfahrung im Design von Anwendungen, in der hands-on Entwicklung und Anwendung von Komponenten.

                              Aber trotzdem viel Erfolg!

                              Kommentar

                              Lädt...
                              X