Je peux faire un clone de Twitter en un week end 6 Recently updated !
vendredi 20 janvier 2017 à 16:01Il ne se passe pas un mois sans que je ne lise le commentaire d’un abruti qui annonce être capable de réécrire service X en quelques jours. Des projets et des projets de clones pour le prouver.
Twitter, Uber, Imgur, whatever.
Une variante est de juger la stack d’un service en prétendant qu’on pourrait faire beaucoup mieux avec moins.
Je ne sais pas si c’est de la bêtise, de l’ignorance ou de l’arrogance. Probablement des trois.
Prenons par exemple Twitter. Easy non ? Des messages de 140 caractères, quelques tags.
Mais, mais, mais les amis. Ca c’était Twitter le premier week-end de sa sortie aussi.
Maintenant Twitter c’est beaucoup plus que ça:
- Suivi des messages en temps réel ou par historique complet.
- Suivi par personne ou tag.
- Possibilité de faire une recherche complexe sur des gens, tags ou du texte libre. Avec filtrage par settings comme la langue ou la date. Et obtenir les résultats en temps réel.
- API complète pour accéder au service.
- Analytics sur les tweets, personnes ou tags. Et l’auth, le bouton twitter, etc.
- Auto-complétion partout.
- UI responsive design, et compatible avec des dizaines de navigateurs.
- Et une app mobile qui fonctionne sur 2 OS majeurs.
- Upload de médias.
- Minification d’URLs.
- Instruments de modération et anti-spam.
- Intégration de miniatures de contenus liés.
- Intégrations avec services externes tels que Youtube, Slideshare, etc.
- Comptes avec fonctionnalités professionnelles.
Bien entendu avec son succès Twitter doit maintenant scaler et assurer:
- La connexion de centaines de millions d’utilisateurs chaque jour.
- Qui postent et lisent des messages.
- Qui peuvent être reçus par des millions d’utilisateurs. Et oui, c’est pas du chat. Un message ne va pas à une dizaine de destinataires.
- Qui peuvent être reçus par des tags lus par des centaines de services en ligne. Et oui, en plus des abonnés, les messages sont aussi distribués par tag. Des millions de tags. Combinables arbitrairement.
- L’historique de tous les tweets doit être accessible. Des milliards de tweet.
- Gérer tout ce bordel alors que les messages sont un graphe. Et oui, entre les utilisateurs, les tags, les RT récursifs, les réponses et les likes, twitter n’est pas une timeline linéaire. C’est un graphe. Traité en quasi temps réel.
- Se défendre contre les attaques, les abus du service, supporter le trending topics dûs à l’actualité.
- Fournir le service dans des centaines de pays avec des langues, cultures, lois et situations politiques différentes.
- Gérer la partie commerciale (faire de la thune) et marketing (préserver son image).
- Gérer la boite : l’équipe, la thune, les locaux, les projets.
- Gérer les incidents incongrus. Ben oui, si un truc à une chance de 0.0000000001% de se produire, sur un service qui a des centaines de millions de users qui s’activent comme les chimpanzés hystériques, ce truc arrive TOUS LES JOURS.
Aujourd’hui ce service, c’est des millions de lignes de code.
En prime, un service à succès n’est pas que du code, c’est aussi une énorme infra. Une logistique de dingue. Et un effort marketing colossal.
Personne ne peut reproduire ce que fait X actuellement en un an de travail. Je ne parle pas d’un week-end.
Les projets que l’on voit sont des “représentation du concept clé de X”.
Ca ne veut pas dire qu’il ne faut pas essayer de copier, concurrencer, proposer des alternatives, etc. Faut juste pas prendre les gens pour des cons.
Bref, à tous les prétendants au “c’est super simple” présents, passés et futurs :