Wir bereiten uns auf den Aufbau einer Website mit großem Potenzial vor. Wenn die Waage kommt, wollen wir bereit sein! Wir haben uns für PHP, Apache und MySQL entschieden. Sollten wir irgendeine Art von PHP-Framework (PHPulse, CodeIgniter, CakePHP, Zend, ...) verwenden, oder ist es besser, alles von Grund auf neu zu erstellen? Die Art der Website wird Facebook ähneln, aber es wird hauptsächlich Textdaten geben (nicht viele Bilder, Videos). Die Website wird in der Cloud gehostet.
Was würden Sie empfehlen?
Grüße ...
Diese Frage wurde schon oft gestellt. Der allgemeine Konsens ist immer zu tun, was Sie tun können. Mach dir keine Sorgen, dass es von Anfang an zu skalierbar ist, behalte es einfach im Kopf. Der Versuch, von Anfang an zu skalierbar zu bauen, ist anstrengend und Sie würden höchstwahrscheinlich aufgeben.
Wenn Sie wegen der großen Popularität Probleme bekommen, ist das großartig! Sie sind dann populär genug und hoffentlich verdienen genug, um anfangen zu müssen, sich über das Bezahlen für teurere hosting und höhere Endprogrammierung / Datenbankrahmenwerke und -motoren zu sorgen.
Erstellen Sie es von Grund auf neu. Die Kontrolle jedes Bits hilft bei der Optimierung. Facebook kontrolliert sogar seinen PHP-Compiler: Ссылка
Benutze kein Framework, da PHP bereits ein Framework und eine Template-Engine ist: Ссылка
Verwenden Sie eine Caching-Bibliothek wie memcached. Ich bin mir nicht sicher, ob Sie es in der Cloud verwenden können oder ob die Cloud ein eigenes Caching-System bereitstellt.
Wenn Sie wissen, dass Sie es bald skalieren müssen, ist es eine gute Idee, vorhandene bewährte Frameworks zu verwenden, anstatt Ihre eigenen von Grund auf neu zu erstellen. Nicht so sehr wegen der Skalierbarkeit, sondern eher, um Ihre Arbeit später zu vereinfachen, und Sie sind sich sicher, dass der Standardcode gut genug funktioniert.
Andererseits, wenn Sie noch nie eines der erwähnten Frameworks verwendet haben, können Sie die Zeit abwägen, die Sie benötigen, um die anfängliche Lernkurve zu überbrücken.
Setzen Sie mehr Aufwand als gewöhnlich ein, um sicherzustellen, dass Ihre Domain-Ebene so weit wie möglich vom Rest des Codes entfernt ist. Auf diese Weise sollten Sie in der Lage sein, die Tür offen zu lassen, wenn Sie Probleme mit den anderen Layern feststellen / p>
Verwenden Sie auf jeden Fall ein Framework, um das System zu starten, aber hüten Sie sich davor, eigene CRUD-Utilities zu verwenden (CI, ich sehe Sie an).
Wenn Sie sich entscheiden, eine ORM-Lösung zu verwenden, dann wählen Sie vielleicht eine, die mit einer Reihe von Frameworks gut funktioniert.
Wenn Sie jedes einzelne Ding von Grund auf neu erstellen, wird es sicher einige Zeit dauern, aber nur Sie werden die interne Logik des Codes kennen. Im Gegensatz dazu, wenn Sie ein Framework verwenden, werden Sie schnell Entwicklung, aber in diesem Fall machen Sie Ihre Website auf diesen Code, der für jeden geöffnet ist, bedeutet mehr Chancen, gehackt zu werden. Jede Methode hat ihre eigenen Pro und Corns. Wie auch immer, Sie können sich die besten Frameworks von PHP Top 10 Frameworks von PHP ansehen. Und ich würde Code Igniter
empfehlenIch würde nein sagen, weil es heute bessere Sprachen gibt. Python, Ruby und C # haben viel bessere Namespacing- und Entwicklungstools als PHP.
Dein wirkliches Problem wird jedoch nicht die Sprache sein. Es wird die Datenbankschicht sein, da diese viel zentralisierter sein wird. Sie können Memcached verwenden, um die Belastung der Datenbank zu reduzieren. Wenn Sie ein ORM verwenden, überprüfen Sie, ob es die Möglichkeit bietet, gerade Abfragen auszuführen und Masseneinfügungen auszuführen, oder verwenden Sie Verknüpfungen statt Lazy Loaded-Abfragen, um verwandte Objekte zu erhalten.
Sie sollten auch Warteschlangen verwenden, um das Laden von Seiten zu beschleunigen. Wenn Sie langsame Operationen ausführen, die außerhalb der Seitenanforderungen ausgeführt werden können, verschieben Sie sie in eine Warteschlange und verarbeiten sie später, möglicherweise auf einem anderen Server. E-Mails und Bildgrößenanpassung ist ein gutes Beispiel.
Wenn Sie eine wirklich skalierbare Webanwendung wollen, müssen Sie die Apache, MySQL-Blase verlassen und Werkzeuge wie Nginx und nicht-relationale Datenbanken verwenden.
Im Moment ist es das Beste, sich nicht zu sehr um das Problem zu kümmern, bevor es überhaupt existiert. Stellen Sie nur sicher, dass das Framework, das Sie auswählen, lose gekoppelt ist, damit Sie Dinge wie das Verschieben der Datenbankebene tun können. Vermeiden Sie Codeigniter wie die Pest, es ist überhaupt nicht modular und hat kein ORM und eine wirklich schlechte Formularbibliothek. Ich würde Django (Python) empfehlen, es gibt eine Reihe von Firmen, die Cloud-Hosting dafür betreiben. Ich habe gesehen, wie ein Laden von PHP auf Python umgestiegen ist, und sie haben es schließlich sehr gemocht. Denken Sie nicht, dass Sie in PHP eingeschlossen sein müssen, besonders wenn Sie das Hosting wählen.
Bearbeiten, antworten Sie auf Cartoonle Django. Aber wenn Sie wirklich PHP wollen, vielleicht Symfony, aber es ist bekannt dafür, langsam zu sein. Kohana ist wie CI, aber mehr Community-getrieben und OOP, also wurden einige der Hauptfehler des Codeigniters vor langer Zeit in Kohana gelöst. Ich habe auch nette Dinge über Cake gehört, aber habe es selbst nie probiert. Wie für Codeigniter, ja viele mögen es, es ist einfach, aber es fehlen viele gute Software-Muster zugunsten hässlicher Abkürzungen. Ich arbeitete ein Jahr lang damit, nach einer Weile stimmten alle im Team zu, dass wir das Rad zu sehr neu erfanden und etwas anderes brauchten. Wenn Sie eine Zeit lang damit gearbeitet haben, beginnen die Probleme zu explodieren. Wir diskutierten für eine Weile, schließlich endete mit Django tatsächlich. War eine harte Entscheidung, aber zahlte sich mit höherer Produktivität aus. Plus Google benutze es, ich denke, das sagt viel.
Ernsthaft Python ist eine der einzigen Sprachen, die in comp sci 101 Kursen und professionell verwendet werden. Eines der Ziele von Python war es, Lehr-Sci leicht zu machen. Es ist nicht so gruselig, öffne ein Terminal, tippe python
ein und spiele herum. Es gibt auch viele nette Tools dafür, wie pip, das wie PHP-pear funktioniert, aber auch mit git, gzip, hg und einer Reihe anderer Formate neben dem wunderbaren Python-Paket-Repository arbeitet.
Es gibt auch einen Haufen Pakete dafür, was ich mit PHP nicht annähernd so gut sehe. Ссылка
Geben Sie ihm zumindest eine Chance, indem Sie das Tutorial machen, das ~ 2 Stunden dauert. Es kommt mit einem eingebauten Webserver, so dass es außer Python selbst nichts zu konfigurieren gibt.
Tags und Links php frameworks cloud scalability cloud-hosting