Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie gehe ich an ein neues Projekt ran?

Einklappen

Neue Werbung 2019

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

  • Wie gehe ich an ein neues Projekt ran?

    Hallo zusammen,

    ich will eine Website realisieren, bei der sich Firmen und ihre Produkte präsentieren können. Das ganze soll erst mal nur im kleinen lokalen Umfeld stattfinden (ca. 50 Firmen). In meinem fall gehe ich von ca. 20 Produkten pro Firma aus. Das Aufkommen an Usern, welche sich auf der Site informieren, ist schwer abzuschätzen. Allerdings sollte das Projekt so aufgestellt werden, dass steigende User- und Firmenzahl nicht ein komplettes Umstrukturieren der Codestruktur erforderlich machen. Auf Grund meiner Kenntnisse sollten PHP, MySQL, HTML, CSS, JS zum Einsatz kommen.

    Die Website soll sich grob in drei Bereiche unterteilen:

    1. Dem offenen Userbereich. Hier werden dem Besucher der Website die Firmeninformationen und Produkte dargestellt. Der Besucher kann, muss sich aber nicht registrieren (eine Registrierung bietet nur kleine Zusatzfunktionen; Profilverwaltung nur im ganz keinen Sinne-> Username, PW und Email ändern z.B.).

    2. Dem geschlossenen Firmenbereich. Hier können die Firmen ihre Daten und Produkte verwalten.

    3. Dem Admin-Bereich. Hier bin ich tätig und erhalte Informationen zu den Firmen, Produkten und Usern. Hier kann ich Daten ändern etc.

    So, nun stellt sich mir gerade vor dem Hintergrund, dass das Projekt ggf. mit der Zeit größer wird, die Frage, wie ich da am besten herangehen. So wie ich das sehe, bieten sich mir folgende Möglichkeiten:
    - ein einigermaßen passendes CMS suchen und das an meine Bedürfnisse anpassen (nicht mein Favorit)
    - Ein PHP-Framework nutzen (Yii, Symfony...)
    - Selbst Hand anlegen und weitestgehend selbst entwickeln

    Wie schon gesagt, will ich eigentlich kein CMS verwenden, da mir da zu viel Code drin ist, den ich nicht brauche und ich auch nur wenig Einblick in die zugrunde liegende Struktur habe.

    Ein Framework wäre schon eher mein Fall. Zur Zeit experimentiere ich mit Yii2 und Symfony2. Allerdings stellt sich mir hier die Frage, ob der entstandene Code, zumindest in Teilen, relativ einfach in anderen Projekten wiederverwendbar ist. Vorteile sind natürlich die vorhanden Grundstruktur und die Tatsache, dass eine gewaltige Schar an Entwicklern das Ganze in allen möglichen Szenarien getestet hat.

    Sollte ich selbst von Grund auf alles entwickeln, kommen natürlich trotzdem diverse Libraries zum Einsatz. Hier sehe ich halt den Vorteil, dass ich den Code so strukturieren kann, dass ich erstellte Module einfach in andere Projekte einbinden kann. Ich bin mir aber bewusst, dass mir bei meinem Kenntnisstand diverse Fehler unterlaufen werden.


    Grundsätzlich möchte ich bei der Sache auch für mich den größtmöglichen Erfahrungszuwachs verbuchen. Allerdings soll die Website nicht erst in 5 Jahren online gehen

    Das was ich hier im Forum oder über Google zu dem Thema gefunden habe, hat mir keine klare Lösung geboten. Von der Verwendung eines CMS wird in der Regel abgeraten. Meistens geht es in die Richtung Framework.

    Über Funktionsumfang, DB-Struktur etc. habe ich mir schon Gedanken gemacht und auch zu Papier gebracht. Der Knackpunkt ist nun die Umsetzung.

    Über konstruktive Vorschläge zur Herangehensweise wäre ich sehr dankbar.

    Mit PHP habe beschäftige ich mich jetzt schon eine gewisse Zeit. Im Bereich OOP bin ich allerdings noch recht unbedarft, will dies aber ändern.

    Ein großes Dankeschön schon mal!!!

  • #2
    Wenn du dich für ein Framework entscheidest und du glaubst das du noch nicht Blickst was Frameworks können und wie man das ganze darin angehen kann, würde ich dir raten ein Framework zu nutzen das die steilste Lernkurve für dich hat ( ich denke das wäre dann Laravel ).

    Für dich wird es am Anfang sehr schwer sein Module zu basteln die wiederverwendet werden können, da du noch nicht das nötige Schablonen-Denken hast, was für autarke Module nötig ist.

    Was den Zeitrahmen für dein Projekt angeht, nach etwas Einarbeitung in das Framework deiner Wahl sollte das Projekt irgendwo in Monaten und nicht Jahren fertig sein. Kommt ganz darauf an ob du dir selbst Druck machst und ob du dich noch erst in Dinge wie Unittests hineinfinden musst.

    Meine Empfehlung für Leute die sich ein etwas größeres Projekt ans Bein binden wollen und dabei jetzt nicht das Pro-Wissen für Frameworks mitbringen ist Laravel.

    Du wirst dir auch irgendwann um das Drumherum Gedanken machen müssen ( Welche Datenbank ? Warum diese Datenbank ? Eigener Server ? Welche Platform ? )
    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

    Kommentar


    • #3
      Vielen Dank für die schnelle Antwort tr0y!

      Zitat von tr0y Beitrag anzeigen
      Meine Empfehlung für Leute die sich ein etwas größeres Projekt ans Bein binden wollen und dabei jetzt nicht das Pro-Wissen für Frameworks mitbringen ist Laravel.
      Und Yii oder Symfony sind für den Einstieg eher weniger geeignet? Symfony scheint auch ganz gut dokumentiert zu sein.

      Laravel besticht natürlich mit Laracast, das macht den Einstieg leicht. Und die 9$ investiere ich dann gerne.

      Zitat von tr0y Beitrag anzeigen
      Du wirst dir auch irgendwann um das Drumherum Gedanken machen müssen ( Welche Datenbank ? Warum diese Datenbank ? Eigener Server ? Welche Platform ? )
      Da sich meine Kenntnisse in Sachen Datenbank auf MySQL beschränken, würde ich wohl diese Option vorziehen. Zumal ich dahingehend weiterführende Lektüre daheim rumstehen habe (welche ich nicht umsonst gekauft haben möchte ).

      Server..hmmm...daheim einen eigenen Server aufbauen geht aufgrund meiner Internetverbindung nicht. Einen Dedicated Server oder vServer mieten ist auch heikel, da ich mit dem Betreiben von Servern keine Erfahrung habe.

      Bleiben managed Server oder Cloud-Angebote.
      In Sachen Cloud-Angebote habe ich mich mal bei Amazon (AWS), Google Cloud und Microsoft Azure umgeschaut. Vorteile sind hier scheinbar die nicht vorhandene Vertragslaufzeit, die variablen Ressourcen und ein breites Spektrum an Funktionen und Werkzeugen. Allerdings frage ich mich, in wie weit hier Änderungen möglich sind (z.B. PHP-Erweiterungen aktivieren bzw. installieren). Die Kosten sind ebenfalls ein fragwürdiger Punkt. Am Anfang zwar sehr gering, aber wenn dann plötzlich mehr Traffic entsteht, steigen die Kosten doch recht schnell.

      Managed Server dagegen scheinen (zumindest meistens) eine Vertragslaufzeit von min 12 Monaten zu haben. Allerdings ist hier der Preis fix. Aufwand entsteht wieder beim Umzug, sollte die Technik nicht mehr ausreichen..

      Irgendwelche Empfehlungen was den Server betrifft?

      Sollte man von Anfang an einen separaten DB-Server betreiben, also getrennt vom Server mit der Applikation?

      Kommentar


      • #4
        Unterhalte dich doch mit einem Hoster deines Vertrauens darüber. Die Leute von Rackspace oder Mediatemple haben da recht viel Erfahrung drin und Beraten auch.

        http://www.rackspace.com/de/
        http://mediatemple.net/

        Es gibt zum ganzen Pakete-Preise-Konzept auch noch Alternativen: https://uberspace.de/
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          Uberspace sieht ja echt mal interessant aus, zumindest für kleinere Sachen und/oder zum Testen. Werde ich auf jeden Fall mal anschauen, danke

          Allerdings steht die Serverwahl im Moment noch relativ weit hinten. Dauert ja noch bis ich da was brauche..^^

          Macht es denn Sinn, die Datenbank von Anfang an auf eigenen Server zu verlagern?

          Kommentar


          • #6
            @tr0y: Aha, noch ein Ubernaut.

            Zum Thema der Skalierbarkeit: PHP ist, besonders wenn man es nicht als Apache-Mod laufen lässt, relativ mächtig. D.h. bevor du mit PHP an die wirklichen Grenzen kommst (und das bedeutet du hast die Anwendung dann schon entsprechend im Cache und blablabla), wird sicherlich eine längere Zeit vergehen.

            Bei sauberen Code und einem anständig konfigurierten Server, wirst du mit deiner kleinen Anwendung sicherlich nie schwierigkeiten bekommen. Wenn das ganze dann in Richtung Enterprise geht, kannst du dich noch immer auf deiner aktuellen Codebasis um andere Lösungen bemühen. Appserver.io soll wohl kaum Änderungen benötigen, bei HHVM sollte deine Anwendung auch nur vereinzelt Probleme machen (wenn du wirklich bei Laravel bleibst).

            Und NEIN, es macht keinen Sinn die Datenbank auf einen externen Server zu legen. Weil du es nicht brauchst. MySQL (als Beispiel) hat so viel Rechenpower. Da musst du schon richtig abgefuckte Dine machen, bevor du da einen eigenen Server brauchst. Und selbst wenn irgendwann der Tag kommt, an dem du einen eigenen DB-Server brauchst: Die Einrichtung ist recht simpel und eigentlich ändert dies an deiner Anwendung kaum etwas (eigentlich nichts, wenn du bspw. bei einem Framework bleibst).

            Kommentar


            • #7
              Ich bin kein Ubernaut. Ich akzeptiere nur mehrere Lösungen und kenne entsprechend viele Möglichkeiten. Ich persönlich arbeite auf gemieteten und eigenen Servern.
              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

              Kommentar


              • #8
                Muss sich ja nich ausschließen.

                Kommentar


                • #9
                  Zitat von werwiewas Beitrag anzeigen
                  Zum Thema der Skalierbarkeit: PHP ist, besonders wenn man es nicht als Apache-Mod laufen lässt, relativ mächtig. D.h. bevor du mit PHP an die wirklichen Grenzen kommst (und das bedeutet du hast die Anwendung dann schon entsprechend im Cache und blablabla), wird sicherlich eine längere Zeit vergehen.
                  Da habe ich mir eh keine Sorgen gemacht Mir ging es ja nur um die Art und Weise, wie ich PHP einsetzen soll. Also Framework, fertiges CMS, alles selbst gemacht usw..

                  Hab mich jetzt erstmal für Laravel entschieden. Und die Datenbank landet dann eben auch erstmal auf dem selben Server.

                  Eins noch: Hat einer von euch Erfahrungen mit Amazon Web Services, Microsoft Azure und/oder Google Cloud Plattform gemacht?

                  Kommentar


                  • #10
                    Alles selber machen kann ich dir nicht empfehlen. Du hast noch keine Erfahrungen mit OOP und ohne das wird ein solches Projekt schwer zu realisieren. Irgendwann kommst du an einen Punkt bei dem du dich dann fest fährst.
                    Symfony 2 würde ich dir auch nicht direkt ans Herz legen, da du dich wahrscheinlich noch nicht sehr mit modularer Softwareentwicklung auseinandergesetzt hast. Und Symfony 2 ist komplett modular mit seinen Bundles.
                    Ich kann dir CodeIgniter empfehlen.
                    Hat eine richtig gute Dokumentation und ist auch nicht allzu komplex und du drüftest eine gute Lernkurve haben.
                    Laravel ist aber bestimmt auch eine gute Wahl für dich, da hat jeder andere Vorzüge.


                    Warum am Anfang nicht mit einem Webspace anfangen?
                    Da musst du dich um nichts kümmern, die sind bis zu einem gewissen Grad skalierbar und sehr kostengünstig.
                    Davon holst dir gleich zwei Stück, dann hast du eine Testumgebung und einen für den Produktiveinsatz.
                    Dazu noch Bitbucket oder GitHub und alles ist unter Dach und Fach
                    "Software is like Sex, it's best if it's free." - Linus Torvalds

                    Kommentar


                    • #11
                      Wie wäre es denn mit ner Kombination aus Framework (zufällig Laravel, und ja, sogar in der aktuellen 5er Variante) und CMS: http://octobercms.com/
                      Was du oben beschreibst würde man mit October (zumindest die grundlegenden Dinge) in wenigen Stunden realisiert bekommen - kein Scherz.
                      Falls du jetzt nicht weiß, ob das etwas für dich ist, würde ich dir raten, das Video auf der Startseite mal anzuschauen, außerdem dieses Video: https://vimeo.com/97088926
                      (Falls danach noch Bedarf besteht: http://octobercms.com/resources ) Was ein bisschen doof ist, das mittlerweile viele Plugins Geld kosten und nicht so hochwertig sind, wie man sich das vielleicht vorstellt. Die RainLab Plugins (im Video benutzt) sind allerdings kostenfrei und decken das wichtigste schon ab

                      Kommentar


                      • #12
                        alxy Ich habe schon mit dem October CMS gearbeitet. Ist an sich auch eine gute Sache. Allerdings möchte ich für mein jetziges Projekt keine CMS nutzen. Ich arbeite jetzt mit Laravel und komme super damit zurecht. So habe ich doch noch etwas mehr Kontrolle und Einblick in den zugrunde liegenden Programmcode.
                        October CMS nutze ich für anderes

                        Kommentar

                        Lädt...
                        X