Facebook a subi de très nombreux changements et n'a pas été conçu à l'origine pour être efficace. Il a été conçu pour faire son travail. Je n'ai absolument aucune idée de ce à quoi ressemble le code et vous ne trouverez probablement pas beaucoup d'informations à son sujet (pour des raisons évidentes de sécurité et de droits d'auteur), mais jetez simplement un œil à l'API. Regardez combien de fois elle change et combien de fois elle ne fonctionne pas correctement, plus ou pas du tout.
Je pense que le plus grand atout dans leur manche est le Hiphop. http://developers.facebook.com/blog/post/358 Vous pouvez utiliser le HipHop vous-même : https://github.com/facebook/hiphop-php/wiki
Mais si vous voulez mon avis, c'est une tâche très ambitieuse et probablement une perte de temps. Hiphop ne supporte pas tout, il ne peut pas simplement tout convertir en C++. Alors, qu'est-ce que cela nous dit ? Eh bien, cela nous dit que Facebook ne tire PAS pleinement parti du langage PHP. Il n'utilise pas la dernière version 5.3 et je suis prêt à parier qu'il y a encore beaucoup de choses qui sont compatibles avec PHP 4. HipHop EST UNE BONNE IDÉE et doit se développer et s'étendre, mais dans son état actuel, il n'est pas vraiment utile pour les nombreuses personnes qui créent de NOUVELLES applications PHP.
Il existe également des passerelles entre PHP et JAVA, par exemple via Resin/Quercus. Encore une fois, il ne supporte pas tout...
Une autre chose à noter est que si vous utilisez un module PHP non standard, vous ne pourrez pas non plus convertir ce code en C++ ou en Java. Cependant... Jetons un coup d'oeil aux modules PHP. Ils sont compilés en C++. Donc si vous pouvez construire des modules PHP qui font des choses (comme analyser le XML, etc.), alors vous travaillez (à quelques interactions près) à la même vitesse. Bien sûr, vous ne pouvez pas créer un module PHP pour chaque besoin possible et pour l'ensemble de votre application, car vous devriez recompiler et ce serait beaucoup plus difficile à coder, etc.
Cependant... Il existe quelques modules PHP pratiques qui peuvent aider à résoudre les problèmes de vitesse. Cependant, à la fin de la journée, nous avons cette chose géniale connue sous le nom de "cloud" et avec elle, nous pouvons faire évoluer nos applications (PHP inclus) de sorte que cela n'a plus autant d'importance. Le matériel devient de moins en moins cher. Amazon vient juste de baisser ses prix (encore) en parlant de ça.
Tant que vous codez votre application PHP autour de l'idée qu'elle devra un jour évoluer... Alors je pense que tout va bien et je ne suis pas vraiment sûr que je regarderais Facebook et ce qu'ils ont fait parce que quand ils l'ont fait, c'était un monde complètement différent et maintenant essayer de maintenir cette infrastructure et la maintenir... Eh bien, vous avez des choses comme HipHop.
Maintenant, comment le HipHop va-t-il vous aider ? Il ne le fera pas. Il ne peut pas. Vous repartez de zéro, vous pouvez utiliser PHP 5.3. Je vous recommande vivement de regarder les frameworks PHP 5.3 et tous les nouveaux avantages que PHP 5.3 apporte, ainsi que les bibliothèques SPL, et de penser aussi à votre base de données. Il est fort probable que vous serviez du contenu à partir d'une base de données. Jetez donc un coup d'œil à MongoDB et à d'autres types de bases de données sans schéma et orientées vers les documents. Elles sont beaucoup plus rapides et mieux adaptées au type de site/application web le plus "commun".
Regardez les NOUVELLES entreprises comme Foursquare et Smugmug et d'autres entreprises qui utilisent une NOUVELLE technologie et COMMENT elles l'utilisent. Malgré le succès de Facebook, je ne m'inspirerais pas d'eux pour savoir "comment" construire un site web ou une application efficace. Je ne dis pas qu'il n'y a pas de personnes très (très) talentueuses qui y travaillent et qui résolvent (leurs) problèmes de manière créative... Je ne dis pas non plus que Facebook n'est pas une bonne idée en général, qu'il n'a pas de succès et que vous ne devriez pas y puiser des idées... ..... Je dis simplement que si vous pouviez consulter l'intégralité de son code source, vous n'en tireriez probablement pas profit.
2 votes
2. L'échelle chez Facebook (vidéo) - infoq.com/presentations/Scale-at-Facebook 3. Chat sur Facebook - infoq.com/news/2008/05/facebookchatarchitecture
2 votes
También highscalability.com semble être un endroit idéal pour découvrir les architectures de nombreux sites populaires. Je n'ai aucune idée de la part de vérité et de la part de spéculation, mais c'est là et c'est juste quelque chose à grignoter...
1 votes
El facebook engineering blog dispose à l'occasion d'un aperçu important de leur architecture et des problèmes de mise à l'échelle.
0 votes
Puisqu'il ne s'agit techniquement pas d'une vraie question, nous vous encourageons à déplacer l'information vers le site Web de la Commission européenne. Wiki tag FB pour y conserver les informations au cas où cette question serait supprimée. Merci.
0 votes
Gordon, comment ajouter la balise FB Wiki ? L'étiquette "Facebook" n'est-elle pas déjà présente ? Ce n'est pas suffisant ?
0 votes
Oui, il existe déjà un wiki de tags. Mais si cette question est supprimée, tous les liens de cette page disparaîtront, alors pensez à les déplacer vers stackoverflow.com/edit-tag-wiki/2218