{"id":352,"date":"2013-04-22T11:50:11","date_gmt":"2013-04-22T09:50:11","guid":{"rendered":"http:\/\/www.lafabriquedecode.com\/blog\/?p=352"},"modified":"2013-04-22T11:50:11","modified_gmt":"2013-04-22T09:50:11","slug":"les-10-mauvaises-habitudes-du-developpeur","status":"publish","type":"post","link":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/","title":{"rendered":"Les 10 (mauvaises) habitudes du d\u00e9veloppeur"},"content":{"rendered":"<p>R\u00e9cemment il m&rsquo;est venu \u00e0 l&rsquo;id\u00e9e, dans un but ludique \u00e9videmment, de compiler quelques-uns des d\u00e9fauts\u00a0les plus couramment rencontr\u00e9s chez les d\u00e9veloppeurs. Ce n&rsquo;est pas une liste exhaustive ni m\u00eame une charge en r\u00e8gle contre les miens, mais plut\u00f4t une esp\u00e8ce d&rsquo;introspection, d&rsquo;auto-critique. En effet, quel d\u00e9veloppeur aurait la pr\u00e9tention de dire qu&rsquo;il n&rsquo;a jamais \u00e9t\u00e9 la victime, consentante ou pas, d&rsquo; au moins un des points list\u00e9s ci-dessous ?<\/p>\n<p><a href=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-369\" alt=\"dirty-computer-keyboard-used-with-gloves\" src=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves.jpg\" width=\"400\" height=\"267\" srcset=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves.jpg 400w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves-300x200.jpg 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<h1 style=\"text-align: left;\">1 &#8211; Le test&#8230;en prod !<\/h1>\n<p style=\"text-align: left;\">Les fonctionnalit\u00e9s sont test\u00e9es \u00e0 la va-vite dans un coin par le d\u00e9veloppeur avant d&rsquo;\u00eatre parachut\u00e9es sans piti\u00e9 en production. Apr\u00e8s tout, on ne teste jamais mieux qu&rsquo;en condition r\u00e9elle, n&rsquo;est-ce pas ? Le (mauvais) d\u00e9veloppeur n&rsquo;a jamais entendu parler des tests unitaires, fonctionnels ou d&rsquo;int\u00e9gration. Pour lui, le test est un processus visant \u00e0 d\u00e9montrer que tout marche \u00e0 merveille, qu&rsquo;il a fait du bon travail ! Non, c&rsquo;est justement tout le contraire : le test est un processus <strong>AGRESSIF<\/strong> ! Alors \u00e9videmment, des bugs vont survenir en production et le d\u00e9veloppeur ira les corriger directement sur le serveur, \u00e0 grands coups de Ctrl+S ou bien, \u00e0 peine moins sale, en passant autant de fois que n\u00e9cessaire des branches de <em>hotfixes<\/em> !<\/p>\n<h1 style=\"text-align: left;\">2 &#8211; L&rsquo;app\u00e9tit vorace pour la salade de technologies<\/h1>\n<p style=\"text-align: left;\">Tr\u00e8s fr\u00e9quente chez les jeunes d\u00e9veloppeurs et principalement dans le milieu du d\u00e9veloppement web. On utilise des outils \u00e0 la mode, sans trop chercher \u00e0 conna\u00eetre leur niveau de maturit\u00e9, leur fr\u00e9quence de mise \u00e0 jour ou leur r\u00e9sistance \u00e0 de fortes charges, une fois d\u00e9ploy\u00e9s. Tout le monde en parle et ces technos font le <em>buzz<\/em> sur des forums tr\u00e8s fr\u00e9quent\u00e9s, c&rsquo;est forc\u00e9ment qu&rsquo;il y a une raison : il nous FAUT les avoir !!!\u00a0Le code finit par ressembler \u00e0 une grande marmite dans laquelle on aurait jet\u00e9 tous les ingr\u00e9dients trouv\u00e9 sur les \u00e9tag\u00e8res de la cuisine et \u00e0 terme le code va se retrouver emprisonn\u00e9 dans un \u00e9cosyst\u00e8me\u00a0de d\u00e9veloppement trop h\u00e9t\u00e9rog\u00e8ne et qui n&rsquo;est pas sans rappeler la jungle&#8230;C&rsquo;est une d\u00e9rive du principe DRY (<em>Don&rsquo;t Repeat Yourself<\/em>); comme tout a (presque) d\u00e9j\u00e0 \u00e9t\u00e9 fait, on se contente d&rsquo;agr\u00e9ger des outils tierce-partie sans forc\u00e9ment en mesurer toutes les cons\u00e9quences. Ne vous rendez pas inutilement d\u00e9pendants des autres : si \u00e7a existe et que c&rsquo;est \u00e9prouv\u00e9, prenez ! Sinon, prenez&#8230;le temps de le faire !<\/p>\n<h1 style=\"text-align: left;\">3 &#8211; Le code zombie (qui ne meurt jamais vraiment)<\/h1>\n<p style=\"text-align: left;\">M\u00eame lorsque certains d\u00e9veloppeurs travaillent avec des outils de gestion des versions (SVN, Git), ils conservent la mauvaise habitude de commenter des pav\u00e9s de code entiers, comme s&rsquo;ils voulaient garder tout \u00e7a \u00ab\u00a0au cas o\u00f9\u00a0\u00bb&#8230;Le vieux code n&rsquo;est d&rsquo;aucune utilit\u00e9, et encore moins si vous utilisez du <em>version control<\/em> ! Vivez et laissez\u00a0mourir\u00a0!<\/p>\n<h1 style=\"text-align: left;\">4 &#8211; Le freinage technique<\/h1>\n<p style=\"text-align: left;\">Le d\u00e9veloppeur qui est r\u00e9fractaire au changement constitue un frein technique. Cette fossilisation des pratiques dans des temps recul\u00e9s (le cambrien ?) est p\u00e9nalisante pour le reste de l&rsquo;\u00e9quipe. Il le sait, mais l&rsquo;\u00e9volution n&rsquo;est pas la premi\u00e8re de ses pr\u00e9occupations : il a souvent connu l&rsquo;\u00e9poque des langages proc\u00e9duraux et ne voit pas bien\u00a0l\u2019int\u00e9r\u00eat\u00a0de toutes ces choses \u00ab\u00a0nouvelles\u00a0\u00bb qui sont selon lui des lubies de programmeurs inexp\u00e9riment\u00e9s (\u00ab\u00a0Les objets ne sont que des containers passifs de donn\u00e9es\u00a0\u00bb, \u00ab\u00a0Les classes ne servent \u00e0 rien\u00a0\u00bb, \u00ab\u00a0Les contraintes d&rsquo;int\u00e9grit\u00e9 r\u00e9f\u00e9rentielles contraignent trop le sch\u00e9ma des donn\u00e9es\u00a0\u00bb&#8230;). Son adage favori ?<\/p>\n<blockquote><p>\u00c7a\u00a0marche, alors on ne touche pas !<\/p><\/blockquote>\n<h1 style=\"text-align: left;\">5 &#8211; Le nommage inconsistant des variables<\/h1>\n<p style=\"text-align: left;\">Le (mauvais) d\u00e9veloppeur ne voit pas trop ce qu&rsquo;on gagne \u00e0 donner des identifiants \u00ab\u00a0parlants\u00a0\u00bb \u00e0 des variables. S&rsquo;il pouvait toutes les appeler \u00ab\u00a0variable\u00a0\u00bb, il le ferait volontiers !\u00a0S&rsquo;il a besoin de mat\u00e9rialiser une assurance, il\u00a0appellera\u00a0sa variable \u00ab\u00a0a\u00a0\u00bb : a comme assurance, enfin ! Et puis si demain les cas d&rsquo;utilisation mettent en \u00e9vidence la n\u00e9cessit\u00e9 d&rsquo;avoir 3 assurances et bien qu&rsquo;\u00e0\u00a0cela\u00a0ne tienne, il cr\u00e9era a2 et a3 ! J&rsquo;ai vu de tout personnellement; des objets nomm\u00e9s o, des\u00a0bool\u00e9ens\u00a0nomm\u00e9s b et m\u00eame des variables portant le nom des personnes qui les avaient cr\u00e9\u00e9es&#8230;les identifiants de variable doivent \u00eatre courts et \u00e9vocateurs !<\/p>\n<h1 style=\"text-align: left;\">6 &#8211; L&rsquo;absence d&rsquo;optimisation<\/h1>\n<p style=\"text-align: left;\">Quand on \u00e9crit une requ\u00eate SQL, pourquoi se pr\u00e9occuper du temps qu&rsquo;elle prend \u00e0 s&rsquo;ex\u00e9cuter ? Elle est syntaxiquement correcte et fait (\u00e0 peu pr\u00e8s) le job et puis \u00e7a sert \u00e0 quoi les ORM ? On leur fait aveugl\u00e9ment confiance et tout se passera bien, ils sont faits pour \u00e7a !\u00a0De m\u00eame pour le cache web, c&rsquo;est g\u00e9r\u00e9 par une couche d\u00e9di\u00e9e \u00e0 \u00e7a dans mon <em>framework<\/em> favori alors pourquoi devrai-je en plus\u00a0m\u2019int\u00e9resser\u00a0\u00e0 tout cela, j&rsquo;ai d\u00e9j\u00e0 bien assez de travail comme \u00e7a ! Attention \u00e0 ce genre de n\u00e9gligences quand on travaille sur des environnements \u00e0 fort taux de charge ! Ne vous contentez pas de tourner la cl\u00e9 du v\u00e9hicule et de l&rsquo;utilisez, ouvrez le capot pour tirer le maximum de b\u00e9n\u00e9fices de vos outils et des bonnes pratiques de d\u00e9veloppement !<\/p>\n<h1 style=\"text-align: left;\">7 &#8211; Le refus cat\u00e9gorique de la documentation<\/h1>\n<p style=\"text-align: left;\">Le (mauvais) d\u00e9veloppeur pense qu&rsquo;il est bon et c&rsquo;est bien l\u00e0 le drame ! Pour lui, il suffit de lire son (excellent) code pour que tout apparaisse soudainement \u00e9vident aux yeux de ses camarades codeurs qui vont avoir \u00e0 reprendre son travail. La documentation c&rsquo;est compliqu\u00e9, il faut mettre des mots sur ce que l&rsquo;on a fait, d\u00e9tailler, \u00e9ventuellement justifier des choix&#8230;Ne n\u00e9gligez pas cette \u00e9tape, un d\u00e9veloppeur qui ne documente pas ce qu&rsquo;il fait, c&rsquo;est du savoir qui va potentiellement s&rsquo;\u00e9vaporer !<\/p>\n<h1 style=\"text-align: left;\">8 &#8211; Le copier\/coller comme m\u00e9thode de d\u00e9veloppement<\/h1>\n<p style=\"text-align: left;\">La programmation par Ctrl+C\/Ctrl+V est un mal qui s\u00e9vit depuis toujours&#8230;A quoi bon r\u00e9fl\u00e9chir, il suffit de dupliquer les choses autant de fois qu&rsquo;il sera n\u00e9cessaire. Et la maintenance ? Et les 10 classes \u00e0 passer en revue \u00e0 la moindre modification ? L&rsquo;abus de Ctrl+C\/Ctrl+V fait perdre 10 fois plus de temps que ce qu&rsquo;il en fait gagner, mais on ne s&rsquo;en rend compte souvent que des mois ou des ann\u00e9es apr\u00e8s; cette fa\u00e7on de faire est une v\u00e9ritable bombe \u00e0 retardement, g\u00e9n\u00e9ratrice de dette technique !<\/p>\n<h1 style=\"text-align: left;\">9 &#8211; L&rsquo;obsession de la centralisation<\/h1>\n<p style=\"text-align: left;\">Le (mauvais) d\u00e9veloppeur croit comprendre que, pour limiter les modifications \u00e0 tout va quand le temps du changement sera venu, il suffit simplement de tout mettre au m\u00eame endroit ! Ses classes sont des monolithes de 3000 lignes qui font tout \u00e0 la fois.<\/p>\n<h1 style=\"text-align: left;\">10 &#8211; L&rsquo;euphorie de la d\u00e9couverte<\/h1>\n<p style=\"text-align: left;\">Elle se produit lorsque le d\u00e9veloppeur trouve de nouveaux outils; quand il d\u00e9couvre les classes abstraites, il veut en mettre de partout, idem quand il d\u00e9couvre l&rsquo;h\u00e9ritage, les fonctions statiques ou les designs patterns.\u00a0Lorsque la solution est trouv\u00e9e avant le probl\u00e8me, rien de bon ne peut en r\u00e9sulter.\u00a0Souvenez-vous de cet adage populaire :<\/p>\n<blockquote>\n<p style=\"text-align: left;\">Quand tout ce qu&rsquo;on a comme outil c&rsquo;est un marteau, on a tendance \u00e0 voir tous les probl\u00e8mes comme des clous<\/p>\n<\/blockquote>\n<div id=\"attachment_367\" style=\"width: 710px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirtyKeyboard.jpg\"><img aria-describedby=\"caption-attachment-367\" loading=\"lazy\" class=\"size-full wp-image-367\" alt=\"photo de clavier sale\" src=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirtyKeyboard.jpg\" width=\"700\" height=\"525\" srcset=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirtyKeyboard.jpg 700w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirtyKeyboard-300x225.jpg 300w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirtyKeyboard-624x468.jpg 624w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-367\" class=\"wp-caption-text\">On a les d\u00e9veloppements qu&rsquo;on m\u00e9rite !<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9cemment il m&rsquo;est venu \u00e0 l&rsquo;id\u00e9e, dans un but ludique \u00e9videmment, de compiler quelques-uns des d\u00e9fauts\u00a0les plus couramment rencontr\u00e9s chez les d\u00e9veloppeurs. Ce n&rsquo;est pas une liste exhaustive ni m\u00eame une charge en r\u00e8gle contre les miens, mais plut\u00f4t une esp\u00e8ce d&rsquo;introspection, d&rsquo;auto-critique. En effet, quel d\u00e9veloppeur aurait la pr\u00e9tention de dire qu&rsquo;il n&rsquo;a jamais [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[40,14,29],"tags":[43,42,41],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog\" \/>\n<meta property=\"og:description\" content=\"R\u00e9cemment il m&rsquo;est venu \u00e0 l&rsquo;id\u00e9e, dans un but ludique \u00e9videmment, de compiler quelques-uns des d\u00e9fauts\u00a0les plus couramment rencontr\u00e9s chez les d\u00e9veloppeurs. Ce n&rsquo;est pas une liste exhaustive ni m\u00eame une charge en r\u00e8gle contre les miens, mais plut\u00f4t une esp\u00e8ce d&rsquo;introspection, d&rsquo;auto-critique. En effet, quel d\u00e9veloppeur aurait la pr\u00e9tention de dire qu&rsquo;il n&rsquo;a jamais [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/\" \/>\n<meta property=\"og:site_name\" content=\"La Fabrique de code - Tech blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-22T09:50:11+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:site\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/\",\"name\":\"Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog\",\"isPartOf\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\"},\"datePublished\":\"2013-04-22T09:50:11+00:00\",\"dateModified\":\"2013-04-22T09:50:11+00:00\",\"author\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\"},\"breadcrumb\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.lafabriquedecode.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Les 10 (mauvaises) habitudes du d\u00e9veloppeur\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/\",\"name\":\"La Fabrique de code - Tech blog\",\"description\":\"PHP objet, MySQL, Design Patterns, OOP...et plus !\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"caption\":\"admin\"},\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/","og_locale":"fr_FR","og_type":"article","og_title":"Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog","og_description":"R\u00e9cemment il m&rsquo;est venu \u00e0 l&rsquo;id\u00e9e, dans un but ludique \u00e9videmment, de compiler quelques-uns des d\u00e9fauts\u00a0les plus couramment rencontr\u00e9s chez les d\u00e9veloppeurs. Ce n&rsquo;est pas une liste exhaustive ni m\u00eame une charge en r\u00e8gle contre les miens, mais plut\u00f4t une esp\u00e8ce d&rsquo;introspection, d&rsquo;auto-critique. En effet, quel d\u00e9veloppeur aurait la pr\u00e9tention de dire qu&rsquo;il n&rsquo;a jamais [&hellip;]","og_url":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/","og_site_name":"La Fabrique de code - Tech blog","article_published_time":"2013-04-22T09:50:11+00:00","og_image":[{"url":"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/dirty-computer-keyboard-used-with-gloves.jpg"}],"author":"admin","twitter_card":"summary","twitter_creator":"@LaFabrique2Code","twitter_site":"@LaFabrique2Code","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/","url":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/","name":"Les 10 (mauvaises) habitudes du d\u00e9veloppeur - La Fabrique de code - Tech blog","isPartOf":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website"},"datePublished":"2013-04-22T09:50:11+00:00","dateModified":"2013-04-22T09:50:11+00:00","author":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162"},"breadcrumb":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/les-10-mauvaises-habitudes-du-developpeur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.lafabriquedecode.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Les 10 (mauvaises) habitudes du d\u00e9veloppeur"}]},{"@type":"WebSite","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website","url":"http:\/\/www.lafabriquedecode.com\/blog\/","name":"La Fabrique de code - Tech blog","description":"PHP objet, MySQL, Design Patterns, OOP...et plus !","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/","url":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","contentUrl":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","caption":"admin"},"url":"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/352"}],"collection":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":18,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/352\/revisions"}],"predecessor-version":[{"id":372,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/352\/revisions\/372"}],"wp:attachment":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/media?parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/categories?post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/tags?post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}