Bonjour et bienvenue dans un autre épisode de Une journée dans la vie d’un développeur Optimizely. Hier soir (1er mars 2023), j’étais ravi d’avoir assisté au Meetup OptiNorth de mars 2023 à Manchester et dans cet article de blog, je donnerai un aperçu de la soirée et de mes apprentissages et de mes principales conclusions.
Le lieu
Le lieu de rencontre était le Everyman Cinema situé sur Quay Street, Manchester. Je ne suis jamais allé dans un Everyman Cinema et j’ai été très impressionné par le lieu, en termes d’installations et de confort. Je suis arrivé à 17 h 15, accordant 45 minutes de réseautage avant le début des pourparlers à 18 h.
La mise en réseau de la zone a eu lieu dans le bar de l’Everyman Cinema et était un endroit parfait et relaxant pour discuter avec les participants et les conférenciers à la fois avant les présentations et pendant la pause à mi-parcours et après les présentations (également aidé par les deux l’onglet open bar et la nourriture).

Comme vous pouvez le voir sur l’image suivante, la salle de présentation se trouvait dans l’une des salles de cinéma, n’ayant jamais été dans un Everyman Cinema avant, je dois dire que j’ai été impressionné par l’utilisation de canapés et de coussins et que je me suis avéré être à la fois assez petit pour tout entendre et tout voir mais aussi confortable et relaxant en même temps.

Présentations
Les présentations ont débuté par une introduction par les sponsors de la réunion, notre propre Ibrar Hussain, directeur technique chez 26 et Paul Gruffydd, directeur technique chez Kin + Carta – ils ont tous deux donné un bref aperçu de qui ils étaient et de leurs rôles professionnels, et ont donné une petite introduction aux intervenants de la soirée et sur le sujet des discussions.

Simplifier la création d’un nouveau site Web sur CMS12
La première conversation lancée par un de mes collègues de travail à 26 Mark Stott, qui est notre développeur principal Optimizely ainsi qu’un OMVP – le contenu de son exposé portait sur la manière dont nous pouvons simplifier la création de nouveaux sites Web lors de l’utilisation d’Optimizely CMS12.

Le contenu de cette conférence a couvert les domaines suivants :
- Ce qui est génial avec CMS 12, notamment l’utilisation de l’architecture .Net 6 et donc bénéficier des améliorations de performances et de sécurité que ce nouveau framework apporte
- Comment pouvons-nous utiliser les bibliothèques de classes Razor pour créer des packages NuGet pour des domaines de fonctionnalités spécifiques qui sont généralement répétés dans de nombreuses versions de sites Web (par exemple, la fonctionnalité News, la fonctionnalité Events, etc.)
- Ces packages peuvent contenir toutes les propriétés génériques, les fonctionnalités, les vues JS et rasoir associées, des feuilles de style peuvent être ajoutées, mais comme la mise en page et le style diffèrent selon le site, il est recommandé de ne pas les ajouter.
- Une fois le package ajouté au projet, vous pouvez remplacer les classes pour masquer les propriétés qui pourraient ne pas s’appliquer à un client spécifique et vous pouvez également remplacer les vues de rasoir pour fournir une disposition/structure différente si cela est également nécessaire, à ce stade CSS des fichiers peuvent également être ajoutés pour fournir le style unique
- Il faut réfléchir à ce qui est mis dans la bibliothèque de classes Razor, mais il doit être aussi générique que possible pour être utile à de nombreux projets Web différents.
Mark est ensuite allé dans une démo de ceci montrant un exemple de bibliothèque de classes de rasoir pour fournir des fonctionnalités de nouvelles, cela a ensuite été ajouté en tant que package à une version CMS12, et il a ensuite montré comment nous pouvons utiliser puis remplacer les fonctionnalités et les vues

Dans son résumé, il a clairement indiqué que l’utilisation des bibliothèques de classes Razor peut vous aider à créer des fonctionnalités définies selon une norme exceptionnelle pouvant être installées sous forme de packages.
Modèle liquide
La conférence suivante a été donnée par Mark Everard, consultant Optimizely et propriétaire de la société FTT (First Three Things). Son exposé portait sur les modèles liquides. Pour ceux d’entre vous qui n’ont jamais entendu parler de Liquid, il s’agit d’un langage de modèles open source qui a été créé et utilisé en production par Shopify.

Au cours de son discours, Mark a couvert les domaines suivants, mais le raisonnement derrière la fourniture de modèles liquides est qu’Optimizely essaie de s’éloigner des compétences C # pour créer des vues fazor et les fonctionnalités associées. Il existe des équipes de développement réparties dans le monde entier qui ne disposent peut-être d’aucune ressource C #. Par conséquent, fournir Liquid Templating permet aux développeurs non C # de créer des fonctionnalités dans Liquid Templates tout en utilisant les méthodes d’assistance qu’il fournit.
- Qu’est-ce que la modélisation liquide, ses avantages et pourquoi Optimizely fait pression pour différents moteurs de vue
- Un aperçu du package Liquid Templating NuGet que Mark a créé en collaboration avec Optimizely
- Un aperçu des méthodes d’assistance que le package fournit également
Mark a ensuite fait une démonstration du package, qui comprenait comment créer des modèles liquides, comment ils sont ajoutés dans la solution Optimizely et quelques exemples d’utilisation des différentes classes de méthodes d’assistance disponibles.

Dans son résumé, il a réitéré la direction que Optimizely veut prendre et pourquoi le package Liquid Templating est utile pour certaines équipes de développement.
Une fois la discussion et l’heure des questions terminées, nous avons fait une pause pour manger et réseauter (qui n’aime pas la nourriture et les boissons gratuites lors d’un événement !!)
GraphQL et graphique de contenu optimisé
Après la pause, la prochaine personne à parler était Paul Gruffydd, directeur technique chez Kin + Carta qui a couvert GraphQL et Optimizely Content Graph.

L’exposé de Paul a commencé par un aperçu de ce qu’est GraphQL et pourquoi il est utile par rapport aux API REST, par exemple GraphQL vous permet de récupérer des informations spécifiques à partir d’un objet quand vous le souhaitez, alors que les API REST doivent généralement renvoyer le modèle complet de un objet utile pour différents cas d’utilisation.
En guise d’aperçu, les éléments suivants ont été abordés lors de cette conférence :
- Qu’est-ce que GraphQL et ses cas d’utilisation
- Comment GraphQL a été implémenté et mis à disposition par Optimizely Content Graph
- La différence de vitesse entre les requêtes GraphQL et les appels Api REST traditionnels
- Comment le client Strawberry Shake GraphQL pour Visual Studio peut être utilisé
Paul a ensuite fait une démonstration de la création et de l’exécution de certaines requêtes GraphQL dans Optimizely, tout en montrant à quel point les requêtes GraphQL sont plus rapides que les appels REST Api. Il a également montré comment le plugin Strawberry Shake Visual Studio peut être utilisé pour créer des clients GraphQL.

Comment mener à bien des projets d’expérimentation avec Optimizely
L’exposé final a été donné par Simon Chapman d’Optimizely, qui est un Lead Solution Architect et son exposé portait sur la manière de mener à bien des projets d’expérimentation avec Optimizely.

Simon a donné un aperçu de ce qu’est Optimizely Experimentation et de la manière dont il s’intègre dans le paysage de la suite de produits Optimizely, ainsi que dans les domaines suivants :
- La feuille de route d’intégration et comment elle peut s’intégrer à des éléments tels que BigQuery et une intégration à venir avec GA4 v1.1 et v1.2
- Concevez les meilleures pratiques lors de la planification d’expériences telles que l’utilisation d’identifiants uniques pour les éléments, évitez d’utiliser des tableaux HTML pour les mises en page, etc.
- Améliorer les performances du site pour les tests d’expérimentation, tels que le placement d’extraits, augmenter l’expiration du cache (TTL), déployer l’extrait de manière synchrone, etc.
- Une remarque importante sur l’utilisation des éléments afficher/masquer pour apporter des changements substantiels en dehors de Optimizely Wev Experimentation, par exemple en incorporant des images et du HTML dans les balises HTML natives, puis en utilisant afficher/masquer pour créer les versions des pages que vous testez.
- Un tableau comparatif des différentes plates-formes d’expérimentation qui montre que l’expérimentation d’Optimizely est la meilleure de sa catégorie
- Un bref aperçu de Optimizely Connect Platform (OCP) qui est un point d’intégration pour l’écosystème Optimizely et les plateformes tierces, et une vitrine de l’OCP App Marketplace.


Simon a ensuite terminé son exposé en montrant quelques exemples sur la façon de configurer certaines expérimentations et comment elles sont ensuite exécutées et les données capturées pour être analysées afin que vous puissiez déterminer les résultats des tests.
Principaux plats à emporter et apprentissages
Dans l’ensemble, l’événement a été très perspicace et m’a donné beaucoup de matière à réflexion sur la manière dont nous pourrions utiliser certaines de ces pratiques et technologies dans les constructions Optimizely que nous réalisons chez 26 – les principaux points que je retiens de cet événement sont les suivants :
- Comment les bibliothèques de classes Razor peuvent être utilisées pour créer des fonctionnalités spécifiques qui sont régulièrement utilisées dans les versions CMS, regroupées sous forme de packages NuGet et utilisées et remplacées dans les versions CMS, le découpage des fonctionnalités est un concept important qui, à mon avis, devrait être utilisé dans la mesure du possible et cela va un long chemin pour aider à cela, cela vous aide également à fournir de la valeur plutôt que des fonctionnalités.
- Qu’est-ce que Liquid Templating et pourquoi c’est la direction que Optimizely veut prendre, il a également été précisé comment il est utile pour les équipes de développement non-C #, j’ai particulièrement aimé voir la démo et combien de réflexion avait été consacrée à la fourniture de méthodes d’assistance .
- Qu’est-ce que GraphQL et pourquoi il peut être préférable à REST Apis, la démo a été une excellente vitrine de ses possibilités et la démonstration de la vitesse par rapport à REST Apis a été une révélation.
- Ma connaissance d’Optimizely Experimentation s’est maintenant beaucoup améliorée et j’ai été particulièrement impressionné par sa rapidité fulgurante et par la façon dont il surpasse ses concurrents. Il était également intéressant d’entendre parler de l’abandon de Google Optimize et de l’offre spéciale croisée qu’Optimizely a créée pour aider les clients à passer d’Optimize à Optimizely Experimentation.
Les références
Vous trouverez ci-dessous une liste de liens vers de plus amples informations sur les domaines des pourparlers par les quatre orateurs.
Simplifier les builds CMS12
https://github.com/GeekInTheNorth
https://www.linkedin.com/in/mark-antony-stott/
https://learn.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-7.0&tabs=visual-studio
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/class-libraries?view=aspnetcore-7.0&tabs=visual-studio
https://medium.com/swlh/using-razor-class-library-rcl-to-generate-a-common-ui-for-all-your-dotnet-web-projects-be970d4a82a0
Modèle liquide
https://github.com/markeverard
https://www.linkedin.com/in/everard/
https://github.com/episerver/liquid-templating-cms
https://world.optimizely.com/blogs/deane-barker/dates/2023/1/introducing-liquid-templating/
https://shopify.github.io/liquid/
https://nuget.optimizely.com/package/?id=Optimizely.CMS.Labs.LiquidTemplating
GraphQL et Optimizely Content Graph
https://www.linkedin.com/in/paulgruffydd
https://github.com/PaulGruffyddAmaze
https://docs.developers.optimizely.com/digital-experience-platform/v1.4.0-content-graph/docs/project-graphql
https://docs.developers.optimizely.com/digital-experience-platform/v1.4.0-content-graph/docs/using-the-graphql-api
https://docs.developers.optimizely.com/digital-experience-platform/v1.4.0-content-graph/docs
https://graphql.org/
https://chillicream.com/docs/strawberryshake/v13
https://marketplace.visualstudio.com/items?itemName=ChilliCream.strawberryshake-visualstudio
Projets d’expérimentation réussis avec Optimizely
https://www.linkedin.com/in/sgchapman/
https://www.optimizely.com/products/experiment/feature-experimentation/
https://docs.developers.optimizely.com/experimentation
https://docs.developers.optimizely.com/experimentation/v10.0.0-web/docs
https://www.optimizely.com/insights/feature-experimentation-demo/
https://www.optimizely.com/insights/experimentation-series-dev/
https://www.optimizely.com/google/optimize/
https://docs.developers.optimizely.com/experimentation/v3.1.0-full-stack/docs
03 mars 2023