La Blackroom 2 Alexandre BALMES
twitter.com/pockystar
github.com/pocky
! Chef de projet
Développeur
<3 Symfony Mon parcours 2001 - Au revoir le lycée 2003 - CAP d’électricien dans le BTP 2005 - Technicien Supérieur Informatique (BTS) 2005 - Bonjour Web 2006 - Bonjour Intégration (et la sémantique) 2008 - Bonjour PHP 2012 - Bonjour Symfony
La Blackroom 4 • Vous connaissez certainement quelques moyens de donner du sens à vos contenus via : • Le RDFa • Les microformats • Les microdatas • Et… Piqure de rappel
La Blackroom 5 • Ressource Description Framework for attributes • Basé sur RDF • Utilisable aussi bien dans des pages HTML que des documents XML • Recommandation 1.0 du W3C le 14 Octobre 2008 (HTML 4 - XHTML) • Recommandation 1.1 du W3C le 22 Aout 2013 (HTML 5) • Généralement dur à appréhender (tryptique, verbeux…) • http://fr.wikipedia.org/wiki/RDFa Piqure de rappel - RDFa
La Blackroom 6 • N’est pas un standard ! • L’objectif premier est d’appliquer des RFCs tierces (vCard, vCalendar, ATOM…) au (X)HTML • Très simple • http://fr.wikipedia.org/wiki/Microformats Piqure de rappel - Microformats
La Blackroom 7 • N’est pas un standard ! • Schema.org • Né d’un rapprochement équivalent à celui de sitemap.org de la part de Bing/Google/Yahoo! le 2 juin 2011 puis Yandex le 1er novembre 2011 • Adaptation et transposition en HTML (RDFa + Microdata) et JSON-LD d’un grand nombres de langage sémantique à travers un socle commun • http://fr.wikipedia.org/wiki/Micro-donn%C3%A9es Piqure de rappel - Microdatas
La Blackroom 8 • GoodRelations • XFN • FOAF • OpenCyc • Tout ce que vous pouvez mettre dans vos flux XML pour ajouter des namespaces • … Piqure de rappel - Et…
La Blackroom 11 • Toutes les compétences “front” sont bien meilleurs que les développeurs à ce niveau (même les mecs qui font du Wordpress) • Très peu de développeurs s’intéressent à la sémantique Le constat qui fait mal
La Blackroom 13 • Le challenge sémantique c’est : • Trouver des design récurrents • Segmenter les designs en éléments fonctionnels et indépendants • Faciliter la communication entre tous les acteurs du projet • Complémentaire au DDD (Domain Driven Design) ! Qu’est-ce que c’est ?
La Blackroom 14 • Définir les propriétés récurrentes d’une “chose” • Améliorer la communication via un référentiel de langage universel (en complément du Domaine issu de l’approche DDD) Avantages
La Blackroom 15 • Peut rapidement devenir très compliqué • Doit toujours jongler avec un juste milieu • On fait du PHP… (c’est la que tu te dis que l’héritage multiple et les Traits ça n’a vraiment rien à voir) • Il faut accepter les règles des outils qu’on utilise Inconvénients
La Blackroom 17 • Accepter les règles de langage • Si une règle ne vous parait pas correcte, fixer en une nouvelle (Documentation, PR…) ! • Exemple : • La hierarchisation des bundles de Symfony : Bridge/ Bundle/Component • Les prefix/suffix de classes : Abstract/Interface Généralités
La Blackroom 19 • Attention à la surenchère • Il faut trouver un juste milieu entre la sémantique et le domaine du client • Doit correspondre à une approche globale et une vraie réflexion entre les différents acteurs • Correspond mieux aux environnements NoSQL • Simplicité !== Complexité Généralités
La Blackroom 22 • Dans une approche DDD, le domaine est une adaptation du langage du client • Ne vous contentez pas de suivre le langage du client • Utilisez également le référentiel sémantique • Echangez avec lui • Fixez des “constantes” : • “Name” !== “Title” Le nommage
La Blackroom 28 • L’approche sémantique va vous permettre : • Une “simplification” de la conception de votre modèle • D’être extensible ! • L’approche sémantique à pour inconvénient : • D’être plus adapté au NoSQL (Document et Graph) • Dans un environnement *SQL, vous aurez beaucoup de colonnes La modélisation
La Blackroom 29 • Pour trouver un équilibre : • Utilisez les DTO (Data Transfer Object) afin de compléter votre modèle métier en un modèle sémantique • “Encapsulez” • Lib : Model • Bundle : Document/Entity/… • Application : Jointures / Références / Embed La modélisation
La Blackroom 34 La modélisation WebPage Application Client Person User Event Organization PostalAddress Date GeoCoordinates Place OppeningHours Seat Service Comment