StreamBuilder : notre framework débarque en open source
Nos équipes d'ingénieurs en frétillaient d'impatience : nous pouvons enfin vous annoncer l'arrivée en open source de notre framework personnalisé utilisé pour alimenter votre tableau de bord. Son petit nom ? StreamBuilder. Et, cela fait maintenant plusieurs années que nous l'utilisons !
Pour commencer, que signifie "open source" ? Eh bien, c'est un modèle de développement d'applications décentralisé qui favorise la collaboration "ouverte". En d'autres termes (et pour le commun des mortels), ce sont des programmes dont le code source est mis à disposition des utilisateurs afin de pouvoir être consulté et/ou modifié.
En quoi consiste StreamBuilder ? Chaque fois que vous accédez aux onglets Abonnements ou Pour vous, aux résultats de recherche, aux billets d'un blog, à des billets comportant un tag donné, ou même lorsque vous consultez les recommandations d'un blog : vous utilisez StreamBuilder sans même vous en apercevoir. Si vous êtes d'humeur curieuse ou si vous souhaitez mettre les mains dans le cambouis code, jetez un coup d'œil sur GitHub (en anglais) !
L'architecture primaire de StreamBuilder s'articule autour des flux (ou streams) de contenus : qu'il s'agisse d'un billet de blog, de la liste de blogs auxquels vous êtes abonné, de billets utilisant un tag particulier ou de ceux correspondant à une recherche donnée. Et, ces différents types de flux peuvent être mixés ensemble, se voir filtrés en fonction de certains critères, être classés suivant leur pertinence ou leur probabilité d'engagement, etc.
Depuis deux semaines déjà, vous pouvez apercevoir sur votre tableau de bord un mélange de billets issus de ces différents flux : de blogs auxquels vous êtes abonnés, de tags que vous suivez et de recommandations de blogs. Même si ces flux sont séparés et ont leur propre logique de fonctionnement, ils utilisent le même framework. Des recommandations sont injectées à certains moments, des billets sont filtrés conformément à vos blogs bloqués, et les billets sont classés pertinemment en tenant compte de l'activation de l'option "Meilleurs contenus en premier" dans vos paramètres. Ce sont là quelques exemples de StreamBuilder en action.
Que propose StreamBuilder pour le moment ?
L'intégralité des librairies de code du framework que nous utilisons sur Tumblr afin d'alimenter la quasi-totalité des contenus que vous voyez sur la plateforme.
Une syntaxe YAML pour constituer des flux de contenus ainsi que la méthode pour les filtrer, les injecter ou les classer.
Une abstraction d'objets de programmation pour composer, filtrer, classer, injecter et déboguer les flux.
Une abstraction d'objets pour assembler certains flux, comme on peut le voir dans les carrousels par exemple : mettre des flux dans d'autres flux.
Une abstraction d'objets destinée à réaliser des paginations curseur complexes via des modèles.
Des tests unitaires de la librairie ainsi que de la plupart du code sous-jacent, permettant de simuler l'interface publique.
De la documentation (en anglais). Nos équipes souhaitent faire migrer de nombreuses informations de leurs outils internes vers cet espace open source.
Encore davantage d'exemples de modèles de flux et d'implémentations de différents flux communément utilisés.
Si vous avez des questions, adressez un petit message (en anglais) directement sur notre page GitHub.