


{"id":1262,"date":"2021-06-09T11:17:51","date_gmt":"2021-06-09T09:17:51","guid":{"rendered":"https:\/\/preprod.editions-eni.fr\/blog\/?p=1262"},"modified":"2023-12-06T11:03:44","modified_gmt":"2023-12-06T10:03:44","slug":"developpement-de-webapp-7-bonnes-pratiques","status":"publish","type":"post","link":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/","title":{"rendered":"D\u00e9veloppement de WebApp : 7 bonnes pratiques"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_row column_structure=&#8221;1_4,3_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px||false|false&#8221;][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/logo_webapp.png&#8221; alt=&#8221;webapp&#8221; title_text=&#8221;logo_webapp&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;3_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>Une\u00a0<\/span><a href=\"https:\/\/www.editions-eni.fr\/livre\/webapp-developpez-votre-application-responsive-avec-jquery-css-et-php-9782409024252\" target=\"_blank\" rel=\"noopener noreferrer\">WebApp<\/a><span>, ce n&#8217;est pas qu&#8217;un simple site web ! Du point de vue de l&#8217;utilisateur, il s&#8217;agit avant tout d&#8217;une application. Pour y parvenir, de nombreuses r\u00e8gles doivent \u00eatre respect\u00e9es, celles-ci combinent des notions aussi diverses que l&#8217;ergonomie et le design, l&#8217;adaptation au terminal utilis\u00e9, et aussi les transactions client-serveur. Mais ce n&#8217;est pas tout ! Il existe \u00e9galement de bonnes pratiques, qui facilitent le d\u00e9veloppement et les performances d&#8217;une WebApp, en voici quelques-unes partag\u00e9es par notre expert\u00a0<\/span><a href=\"https:\/\/www.editions-eni.fr\/pascal-barlier\" target=\"_blank\" rel=\"noopener noreferrer\">Pascal Barlier<\/a><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b01<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Cr\u00e9er des &#8220;Templates&#8221; HTML.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>Plut\u00f4t que de composer les \u00e9l\u00e9ments de l&#8217;interface par des requ\u00eates jQuery successives \u00e0 grands coups de appendTo, il est\u00a0<\/span><strong>bien plus efficace de placer \u00e0 la fin du code<span>\u00a0<\/span><a href=\"https:\/\/www.editions-eni.fr\/livre\/html5-et-css3-maitrisez-les-standards-de-la-creation-de-sites-web-2e-edition-9782409027567\" target=\"_blank\" rel=\"noopener noreferrer\">HTML<\/a><span>\u00a0<\/span>des blocs div<\/strong><span>\u00a0qui contiendront\u00a0<\/span><strong>du code HTML pr\u00eat \u00e0 \u00eatre utilis\u00e9<\/strong><span>. Ils sont g\u00e9n\u00e9ralement qualifi\u00e9s par le terme anglosaxon \u00ab template \u00bb, signifiant \u00ab mod\u00e8le \u00bb ou \u00ab gabarit \u00bb. Il est recommand\u00e9 de donner \u00e0 chacun de ces blocs un identifiant unique ainsi qu&#8217;un nom de classe commun \u00e0 tous. Par exemple \u00ab template \u00bb, cette classe ayant la r\u00e8gle display:none pour que les templates ne soient pas visibles. Pour en utiliser un, il suffit d&#8217;en faire une copie au moyen de la commande clone, puis d&#8217;\u00e9diter son contenu, puis l&#8217;ins\u00e9rer dans le DOM, et enfin retirer la classe template pour le rendre visible.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b02<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Un webservice ne doit renvoyer que des donn\u00e9es brutes.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>Inutile de surcharger le serveur \u00e0 cr\u00e9er une mise en page HTML.\u00a0<\/span><strong>Mieux vaut utiliser la puissance de calcul du navigateur c\u00f4t\u00e9 client<\/strong><span>\u00a0pour cela, le serveur web pouvant alors se consacrer \u00e0 des t\u00e2ches plus importantes. Le\u00a0<\/span><strong>format id\u00e9al pour le transfert de donn\u00e9es du serveur vers le client<\/strong><span>, lorsqu&#8217;il s&#8217;agit de tableaux ou de structures de donn\u00e9es, est le\u00a0<\/span><strong>format JSON<\/strong><span>, il est nativement g\u00e9r\u00e9 en JavaScript, mais \u00e9galement en PHP. Dans le sens inverse, le transfert de donn\u00e9es gagne aussi \u00e0 \u00eatre effectu\u00e9 en format JSON, et dans ce cas il est recommand\u00e9 d&#8217;<\/span><strong>employer une requ\u00eate de type POST<\/strong><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b03<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Sp\u00e9cifier le type MIME des donn\u00e9es renvoy\u00e9es.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>On ne pense pas toujours \u00e0 sp\u00e9cifier le type MIME dans un script PHP car s&#8217;il s&#8217;agit d&#8217;une simple page HTML et l&#8217;affichage sera correct. Cependant,\u00a0<\/span><strong>si le script doit retourner des donn\u00e9es au format JSON<\/strong><span>, il est alors fortement recommand\u00e9 d&#8217;<\/span><strong>indiquer explicitement le type MIME<\/strong><span>. Cela permet au navigateur de traiter les donn\u00e9es en tant que JSON et non pas en tant que texte brut, et les commandes jQuery (ajax, get ou post) retourneront directement des donn\u00e9es JSON, il ne sera donc pas n\u00e9cessaire de faire une conversion au moyen de JSON.parse.\u00a0<\/span><strong>Pour sp\u00e9cifier le type MIME, il suffit d&#8217;ajouter cette ligne au d\u00e9but du code PHP<\/strong><span>\u00a0(sans oublier de laisser un espace apr\u00e8s les deux points) :\u00a0<\/span><strong>header(&#8216;Content-Type: application\/json&#8217;)<\/strong><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b04<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Utiliser la r\u00e8gle CSS &#8220;!important&#8221; avec parcimonie.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>M\u00eame si la r\u00e8gle \u00ab\u00a0<\/span><strong>!important<\/strong><span>\u00a0\u00bb peut \u00eatre tr\u00e8s pratique, il est pr\u00e9f\u00e9rable de l&#8217;\u00e9viter chaque fois que cela est possible. Le principe de\u00a0<\/span><strong>fonctionnement des CSS<\/strong><span>\u00a0d\u00e9finit que lorsque plusieurs s\u00e9lecteurs s&#8217;appliquent au m\u00eame \u00e9l\u00e9ment, c&#8217;est celui qui cible le plus pr\u00e9cis\u00e9ment l&#8217;\u00e9l\u00e9ment qui est utilis\u00e9 pour s\u00e9lectionner les r\u00e8gles \u00e0 appliquer.<\/span><br \/><span>Si une r\u00e8gle ne veut pas s&#8217;appliquer, il faut commencer par passer par le\u00a0<\/span><strong>panneau de d\u00e9veloppement F12<\/strong><span>\u00a0pour afficher les r\u00e8gles et\u00a0<\/span><strong>trouver le s\u00e9lecteur qui s&#8217;applique<\/strong><span>. Il ne reste alors qu&#8217;\u00e0 modifier le s\u00e9lecteur qui doit \u00eatre actif pour qu&#8217;il devienne pr\u00e9dominant.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b05<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Profiter des classes CSS pour \u00e9viter de parcourir le DOM \u00e0 la main.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><strong>C&#8217;est une des grandes forces des classes CSS que de permettre de modifier une quantit\u00e9 importante d&#8217;\u00e9l\u00e9ments en une seule fois<\/strong><span>. Outre la\u00a0<\/span><strong>simplification du code<\/strong><span>, car il n&#8217;y a pas \u00e0 faire de boucle, l&#8217;op\u00e9ration sera\u00a0<\/span><strong>beaucoup plus rapide<\/strong><span>\u00a0car elle sera effectu\u00e9e par le navigateur. Pour cela, on utilise un s\u00e9lecteur, qui peut \u00eatre une simple classe CSS, et ainsi ajouter ou enlever une autre classe CSS \u00e0 tout un groupe d&#8217;\u00e9l\u00e9ments en une seule op\u00e9ration :\u00a0<\/span><strong>$(&#8216;.classeDeBase&#8217;).addClass(&#8216;classeEnPlus&#8217;)<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||||false|false&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b06<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Utiliser la fonction CSS &#8220;calc&#8221; pour faire des mises en page pr\u00e9cises.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>Il arrive r\u00e9guli\u00e8rement que l&#8217;on ait l\u2019intention de faire une r\u00e9partition de la mise en page (grid, flex ou table) m\u00e9langeant des dimensions proportionnelles, o\u00f9 l&#8217;on utilise l&#8217;unit\u00e9 % et des dimensions fixes, d\u00e9finies en px, em etc.<\/span><br \/><strong>La<span>\u00a0<\/span><a href=\"https:\/\/www.editions-eni.fr\/livre\/hmtl5-css3-flexbox-et-grid-coffret-de-2-livres-pour-des-sites-web-modernes-et-responsives-9782409024948\" target=\"_blank\" rel=\"noopener noreferrer\">fonction CSS<\/a><span>\u00a0<\/span>calc permet de d\u00e9terminer les dimensions proportionnelles avec pr\u00e9cision<\/strong><span>. Par exemple, pour cr\u00e9er un gros bloc de texte avec une petite bordure de chaque c\u00f4t\u00e9, plut\u00f4t que de d\u00e9finir : \u00ab 2em 95% 2em \u00bb, qui poserait des difficult\u00e9s avec une\u00a0<\/span><strong>application responsive<\/strong><span>, il vous suffit d&#8217;utiliser la fonction calc de cette fa\u00e7on :\u00a0<\/span><strong>2em calc( 100% &#8211; 4em ) 2em<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>Bonne pratique n\u00b07<\/h3>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_margin_tablet=&#8221;||10px||false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221;]<\/p>\n<h4>Utiliser les classes CSS dans un but fonctionnel et non pas technique.<\/h4>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><span>Il pourrait \u00eatre tentant de reproduire en CSS le principe de formatage d\u00e9j\u00e0 utilis\u00e9 en HTML, et donc, par exemple, de d\u00e9finir une r\u00e8gle bold {font-weight:bold} que l&#8217;on pourrait utiliser \u00e0 chaque fois que l&#8217;on veut mettre un texte en gras, de la m\u00eame fa\u00e7on qu&#8217;avec un tag b.<\/span><br \/><span>Cependant,\u00a0<\/span><strong>les classes CSS doivent correspondre \u00e0 des notions fonctionnelles<\/strong><span>, et non techniques. Si l&#8217;on veut mettre un \u00e9l\u00e9ment en \u00e9vidence car il sert \u00e0 indiquer une erreur, on ne lui mettra pas deux classes bold et red, mais une classe error qui correspondra \u00e0 la\u00a0<\/span><strong>r\u00e8gle error {font-weight:bold ; color:red}<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px||20px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<h3>En conclusion<\/h3>\n<p>[\/et_pb_text][et_pb_text quote_border_color=&#8221;#3BB6D5&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221;]<\/p>\n<p><strong>Construire une WebApp<\/strong><span>\u00a0sans appliquer de bonnes pratiques, c&#8217;est prendre le risque de se retrouver bloqu\u00e9 \u00e0 un moment ou un autre, et de devoir alors reprendre une partie du d\u00e9veloppement d\u00e9j\u00e0 effectu\u00e9. Le web est en constante \u00e9volution, les bonnes pratiques le sont aussi. Pascal Barlier vous en a pr\u00e9sent\u00e9 quelques-unes dans cet article. Il en existe \u00e9videmment bien d&#8217;autres.<\/span><br \/><span>Celles pr\u00e9sent\u00e9es ici sont valables actuellement, mais seront peut-\u00eatre moins pertinentes dans quelques ann\u00e9es. C&#8217;est pour cela que nous vous recommandons de\u00a0<\/span><strong>les mettre en \u0153uvre sans plus tarder<\/strong><span>, et aussi, de\u00a0<\/span><strong>vous tenir inform\u00e9 r\u00e9guli\u00e8rement des nouvelles pratiques et mises \u00e0 jour pouvant survenir afin de garantir le bon fonctionnement de vos WebApps<\/strong><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_testimonial author=&#8221;Pascal Barlier&#8221; job_title=&#8221;notre expert en WebApps&#8221; portrait_url=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/Barlier_Pascal_portrait.jpg&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_padding=&#8221;||||false|false&#8221;]<\/p>\n<p><span>Pascal Barlier s&#8217;est toujours passionn\u00e9 pour l&#8217;informatique et la programmation. Cette passion le conduit \u00e0 d\u00e9buter sa carri\u00e8re professionnelle en tant que r\u00e9dacteur en chef d&#8217;un magazine d&#8217;informatique et \u00e0 poursuivre dans ce domaine.<\/span><br \/> <span>Suivant l&#8217;\u00e9volution d&#8217;Internet et l&#8217;arriv\u00e9e de nouvelles technologies, il d\u00e9veloppe au fil des ann\u00e9es des sites web interactifs, et plus particuli\u00e8rement aujourd&#8217;hui la cr\u00e9ation de WebApp. Utilisateur de Linux depuis les ann\u00e9es 2000, il d\u00e9veloppe \u00e9galement sur son temps de loisirs des projets autour de l&#8217;Arduino. Il partage volontiers toute son exp\u00e9rience au travers les pages de ses livres.<\/span><\/p>\n<p>[\/et_pb_testimonial][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_line_height=&#8221;1.8em&#8221; header_font=&#8221;||||||||&#8221; header_2_font=&#8221;Overpass|300|||||||&#8221; header_2_font_size=&#8221;35px&#8221; header_2_line_height=&#8221;1.5em&#8221; custom_margin=&#8221;||0px||false|false&#8221; header_2_font_size_tablet=&#8221;30px&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; border_color_all=&#8221;#1a0a38&#8243;]<\/p>\n<h2>Pour aller <span style=\"color: #3bb6d5;\">plus loin<\/span><\/h2>\n<p>[\/et_pb_text][et_pb_divider color=&#8221;#3BB6D5&#8243; divider_position=&#8221;center&#8221; divider_weight=&#8221;3px&#8221; _builder_version=&#8221;4.9.0&#8243; max_width=&#8221;90px&#8221; max_width_tablet=&#8221;13%&#8221; max_width_last_edited=&#8221;off|desktop&#8221; custom_margin=&#8221;5px||||false|false&#8221; custom_padding=&#8221;|||&#8221; locked=&#8221;off&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_4,1_4,1_4,1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;display:flex;&#8221; custom_css_main_element_phone=&#8221;display:inherit;&#8221;][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/livre\/webapp-developpez-votre-application-responsive-avec-jquery-css-et-php-9782409024252_XL.jpg&#8221; alt=&#8221;Scratch et Raspberry Pi Projets maker pour s&#8217;initier \u00e0 l&#8217;\u00e9lectronique et \u00e0 la robotique&#8221; title_text=&#8221;scratch-et-raspberry-pi-projets-maker-pour-s-initier-a-l-electronique-et-a-la-robotique-2e-edition-9782409027901_M&#8221; url=&#8221;https:\/\/www.editions-eni.fr\/livre\/webapp-developpez-votre-application-responsive-avec-jquery-css-et-php-9782409024252&#8243; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;85%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;||10px||false|false&#8221; box_shadow_style=&#8221;preset3&#8243; transform_styles__hover_enabled=&#8221;on|hover&#8221; transform_scale__hover=&#8221;105%|105%&#8221; transform_scale__hover_enabled=&#8221;on|hover&#8221; transform_translate__hover_enabled=&#8221;on|desktop&#8221; transform_rotate__hover_enabled=&#8221;on|desktop&#8221; transform_skew__hover_enabled=&#8221;on|desktop&#8221; transform_origin__hover_enabled=&#8221;on|desktop&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#3BB6D5&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; custom_margin=&#8221;||5px||false|false&#8221;]<\/p>\n<p>Livre<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;|10px|||false|false&#8221; custom_padding_phone=&#8221;|0px|||false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p><strong>WebApp<\/strong><br \/> D\u00e9veloppez votre application responsive avec jQuery, CSS et PHP<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/livre\/apprendre-a-developper-des-applications-web-avec-php-et-symfony-2e-edition-9782409041488_L.jpg&#8221; alt=&#8221;Flutter D\u00e9veloppez vos applications mobiles multiplateformes avec Dart&#8221; title_text=&#8221;flutter-developpez-vos-applications-mobiles-multiplateformes-avec-dart-9782409025273_M (1)&#8221; url=&#8221;https:\/\/www.editions-eni.fr\/livre\/apprendre-a-developper-des-applications-web-avec-php-et-symfony-2e-edition-9782409041488&#8243; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;85%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;||10px||false|false&#8221; hover_enabled=&#8221;0&#8243; box_shadow_style=&#8221;preset3&#8243; transform_styles__hover_enabled=&#8221;on|hover&#8221; transform_scale__hover=&#8221;105%|105%&#8221; transform_scale__hover_enabled=&#8221;on|hover&#8221; transform_translate__hover_enabled=&#8221;on|desktop&#8221; transform_rotate__hover_enabled=&#8221;on|desktop&#8221; transform_skew__hover_enabled=&#8221;on|desktop&#8221; transform_origin__hover_enabled=&#8221;on|desktop&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#3BB6D5&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; custom_margin=&#8221;||5px||false|false&#8221;]<\/p>\n<p>Livre<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;|10px|||false|false&#8221; custom_padding_phone=&#8221;|0px|||false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p>Apprendre \u00e0 d\u00e9velopper des applications web avec <strong>PHP<\/strong> et <strong>Symfony<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/presentiel-dev.jpg&#8221; alt=&#8221;formation en live&#8221; title_text=&#8221;presentiel-dev&#8221; url=&#8221;https:\/\/www.eni-service.fr\/index.php\/fomation\/developpement-dapplications-web-front-end-html-css-responsive-web-design-bootstrap-javascript-et-jquery\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;85%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;||10px||false|false&#8221; box_shadow_style=&#8221;preset3&#8243; transform_styles__hover_enabled=&#8221;on|hover&#8221; transform_scale__hover=&#8221;105%|105%&#8221; transform_scale__hover_enabled=&#8221;on|hover&#8221; transform_translate__hover_enabled=&#8221;on|desktop&#8221; transform_rotate__hover_enabled=&#8221;on|desktop&#8221; transform_skew__hover_enabled=&#8221;on|desktop&#8221; transform_origin__hover_enabled=&#8221;on|desktop&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#3BB6D5&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; custom_margin=&#8221;||5px||false|false&#8221;]<\/p>\n<p>Formation<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;|10px|||false|false&#8221; custom_padding_phone=&#8221;|0px|||false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p><strong>D\u00e9veloppement d\u2019applications Web Front End<\/strong> (HTML, CSS, Responsive Web Design, Bootstrap, JavaScript et jQuery)<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/presentiel-web.jpg&#8221; alt=&#8221;formation en live&#8221; title_text=&#8221;presentiel-web&#8221; url=&#8221;https:\/\/www.eni-service.fr\/index.php\/fomation\/developpement-web-front-end-javascript-avance-jquery-typescript-angular\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;85%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;||10px||false|false&#8221; box_shadow_style=&#8221;preset3&#8243; transform_styles__hover_enabled=&#8221;on|hover&#8221; transform_scale__hover=&#8221;105%|105%&#8221; transform_scale__hover_enabled=&#8221;on|hover&#8221; transform_translate__hover_enabled=&#8221;on|desktop&#8221; transform_rotate__hover_enabled=&#8221;on|desktop&#8221; transform_skew__hover_enabled=&#8221;on|desktop&#8221; transform_origin__hover_enabled=&#8221;on|desktop&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#3BB6D5&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; custom_margin=&#8221;||5px||false|false&#8221;]<\/p>\n<p>Formation<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;|10px|||false|false&#8221; custom_padding_phone=&#8221;|0px|||false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p><strong>D\u00e9veloppement Web Front End<\/strong> (JavaScript avanc\u00e9, jQuery, TypeScript, Angular)<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_row _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;||||||||&#8221; text_line_height=&#8221;1.8em&#8221; header_font=&#8221;||||||||&#8221; header_2_font=&#8221;Overpass|300|||||||&#8221; header_2_font_size=&#8221;35px&#8221; header_2_line_height=&#8221;1.5em&#8221; custom_margin=&#8221;||0px||false|false&#8221; header_2_font_size_tablet=&#8221;30px&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; border_color_all=&#8221;#1a0a38&#8243;]<\/p>\n<h2>Ces articles peuvent aussi <span style=\"color: #3bb6d5;\">vous int\u00e9resser<\/span><\/h2>\n<p>[\/et_pb_text][et_pb_divider color=&#8221;#3BB6D5&#8243; divider_position=&#8221;center&#8221; divider_weight=&#8221;3px&#8221; _builder_version=&#8221;4.9.0&#8243; max_width=&#8221;90px&#8221; max_width_tablet=&#8221;13%&#8221; max_width_last_edited=&#8221;off|desktop&#8221; custom_margin=&#8221;5px||||false|false&#8221; custom_padding=&#8221;|||&#8221; locked=&#8221;off&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;60%&#8221; width_last_edited=&#8221;off|tablet&#8221; custom_margin_tablet=&#8221;|10px||10px|false|false&#8221; custom_margin_last_edited=&#8221;off|tablet&#8221; custom_css_main_element_last_edited=&#8221;off|tablet&#8221; custom_css_main_element_tablet=&#8221;display:flex;&#8221; custom_css_main_element_phone=&#8221;display:inherit;&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_slider use_bg_overlay=&#8221;on&#8221; bg_overlay_color=&#8221;rgba(26,10,56,0.6)&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h4&#8243; header_font=&#8221;Overpass||||||||&#8221; header_font_size=&#8221;18px&#8221; height=&#8221;320px&#8221; custom_margin=&#8221;0px||40px||false|false&#8221; custom_padding=&#8221;180px|0px|0px|0px|false|false&#8221; custom_padding_tablet=&#8221;150px||||false|false&#8221; custom_padding_phone=&#8221;&#8221; custom_padding_last_edited=&#8221;on|desktop&#8221; link_option_url=&#8221;\/blog\/pourquoi-developper-des-applications-mobiles-multiplateformes-avec-flutter\/&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset3&#8243; custom_margin__hover_enabled=&#8221;on|hover&#8221; custom_margin__hover=&#8221;-10px||30px||false|false&#8221; custom_padding__hover_enabled=&#8221;on|desktop&#8221; custom_padding__hover=&#8221;||0px||false|false&#8221; height__hover=&#8221;330px&#8221; height__hover_enabled=&#8221;on|desktop&#8221;][et_pb_slide button_link=&#8221;\/blog\/excel-et-tableaux-croises-dynamiques\/&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_flutter.jpg&#8221; background_enable_image=&#8221;on&#8221; custom_padding=&#8221;||||false|false&#8221; custom_padding__hover_enabled=&#8221;off|desktop&#8221; custom_padding__hover=&#8221;280px||||false|false&#8221; sticky_transition=&#8221;on&#8221;]<\/p>\n<h4>D\u00e9velopper des applications mobiles avec Flutter<\/h4>\n<p>[\/et_pb_slide][\/et_pb_slider][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_slider use_bg_overlay=&#8221;on&#8221; bg_overlay_color=&#8221;rgba(26,10,56,0.6)&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h4&#8243; header_font=&#8221;Overpass||||||||&#8221; header_font_size=&#8221;18px&#8221; height=&#8221;320px&#8221; custom_margin=&#8221;0px||40px||false|false&#8221; custom_padding=&#8221;180px|0px|0px|0px|false|false&#8221; custom_padding_tablet=&#8221;150px||||false|false&#8221; custom_padding_phone=&#8221;&#8221; custom_padding_last_edited=&#8221;on|desktop&#8221; link_option_url=&#8221;\/blog\/flask-developper-sa-premiere-application-web-en-python\/&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset3&#8243; custom_margin__hover_enabled=&#8221;on|hover&#8221; custom_margin__hover=&#8221;-10px||30px||false|false&#8221; custom_padding__hover_enabled=&#8221;on|desktop&#8221; custom_padding__hover=&#8221;||0px||false|false&#8221; height__hover=&#8221;330px&#8221; height__hover_enabled=&#8221;on|desktop&#8221;][et_pb_slide button_link=&#8221;\/blog\/creation-de-site-web\/&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_flask.jpg&#8221; background_enable_image=&#8221;on&#8221; custom_padding=&#8221;||||false|false&#8221; custom_padding__hover_enabled=&#8221;off|desktop&#8221; custom_padding__hover=&#8221;280px||||false|false&#8221; sticky_transition=&#8221;on&#8221;]<\/p>\n<h4>Flask : d\u00e9velopper sa premi\u00e8re application web en Python<\/h4>\n<p>[\/et_pb_slide][\/et_pb_slider][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_slider use_bg_overlay=&#8221;on&#8221; bg_overlay_color=&#8221;rgba(26,10,56,0.6)&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h4&#8243; header_font=&#8221;Overpass||||||||&#8221; header_font_size=&#8221;18px&#8221; height=&#8221;320px&#8221; custom_margin=&#8221;0px||40px||false|false&#8221; custom_padding=&#8221;180px|0px|0px|0px|false|false&#8221; custom_padding_tablet=&#8221;150px||||false|false&#8221; custom_padding_phone=&#8221;&#8221; custom_padding_last_edited=&#8221;on|desktop&#8221; link_option_url=&#8221;\/blog\/5-bonnes-raisons-dutiliser-python-pour-la-data-science\/&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; box_shadow_style=&#8221;preset3&#8243; custom_margin__hover_enabled=&#8221;on|hover&#8221; custom_margin__hover=&#8221;-10px||30px||false|false&#8221; custom_padding__hover_enabled=&#8221;on|desktop&#8221; custom_padding__hover=&#8221;||0px||false|false&#8221; border_radii__hover_enabled=&#8221;off|hover&#8221; border_radii__hover=&#8221;on||||&#8221; height__hover=&#8221;330px&#8221; height__hover_enabled=&#8221;on|desktop&#8221;][et_pb_slide button_link=&#8221;\/blog\/azure\/&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/05\/carre08.jpg&#8221; background_enable_image=&#8221;on&#8221; custom_padding=&#8221;||||false|false&#8221; custom_padding__hover_enabled=&#8221;off|desktop&#8221; custom_padding__hover=&#8221;280px||||false|false&#8221; sticky_transition=&#8221;on&#8221;]<\/p>\n<h4>5 bonnes raisons d\u2019utiliser Python pour la Data Science<\/h4>\n<p>[\/et_pb_slide][\/et_pb_slider][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une\u00a0WebApp, ce n&#8217;est pas qu&#8217;un simple site web ! Du point de vue de l&#8217;utilisateur, il s&#8217;agit avant tout d&#8217;une application. Pour y parvenir, de nombreuses r\u00e8gles doivent \u00eatre respect\u00e9es, celles-ci combinent des notions aussi diverses que l&#8217;ergonomie et le design, l&#8217;adaptation au terminal utilis\u00e9, et aussi les transactions client-serveur. Mais ce n&#8217;est pas tout [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1304,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[4,18],"tags":[],"genre":[],"class_list":["post-1262","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpement","category-paroles-d-experts"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog<\/title>\n<meta name=\"description\" content=\"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog\" \/>\n<meta property=\"og:description\" content=\"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/\" \/>\n<meta property=\"og:site_name\" content=\"Eni Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-09T09:17:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-06T10:03:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nathalie Hervoche\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nathalie Hervoche\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/\",\"name\":\"D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg\",\"datePublished\":\"2021-06-09T09:17:51+00:00\",\"dateModified\":\"2023-12-06T10:03:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/90914566552378aeb25260958ea73b3a\"},\"description\":\"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)\",\"breadcrumb\":{\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg\",\"contentUrl\":\"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg\",\"width\":1920,\"height\":680,\"caption\":\"bandeau WebApp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.editions-eni.fr\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"D\u00e9veloppement de WebApp : 7 bonnes pratiques\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#website\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/\",\"name\":\"Eni Blog\",\"description\":\"Blog des Editions ENI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.editions-eni.fr\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/90914566552378aeb25260958ea73b3a\",\"name\":\"Nathalie Hervoche\",\"url\":\"https:\/\/www.editions-eni.fr\/blog\/author\/nhervoche\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog","description":"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)","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":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/","og_locale":"fr_FR","og_type":"article","og_title":"D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog","og_description":"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)","og_url":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/","og_site_name":"Eni Blog","article_published_time":"2021-06-09T09:17:51+00:00","article_modified_time":"2023-12-06T10:03:44+00:00","og_image":[{"width":1920,"height":680,"url":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg","type":"image\/jpeg"}],"author":"Nathalie Hervoche","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Nathalie Hervoche","Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/","url":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/","name":"D\u00e9veloppement de WebApp : 7 bonnes pratiques - ENI Blog","isPartOf":{"@id":"https:\/\/www.editions-eni.fr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage"},"image":{"@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage"},"thumbnailUrl":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg","datePublished":"2021-06-09T09:17:51+00:00","dateModified":"2023-12-06T10:03:44+00:00","author":{"@id":"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/90914566552378aeb25260958ea73b3a"},"description":"Apprenez \u00e0 d\u00e9velopper facilement une WebApp et \u00e0 en optimiser les performances, en respectant les nombreuses r\u00e8gles (ergonomie, design, transactions...)","breadcrumb":{"@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#primaryimage","url":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg","contentUrl":"https:\/\/www.editions-eni.fr\/blog\/wp-content\/uploads\/2021\/06\/bandeau_webapp.jpg","width":1920,"height":680,"caption":"bandeau WebApp"},{"@type":"BreadcrumbList","@id":"https:\/\/www.editions-eni.fr\/blog\/developpement-de-webapp-7-bonnes-pratiques\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.editions-eni.fr\/blog\/"},{"@type":"ListItem","position":2,"name":"D\u00e9veloppement de WebApp : 7 bonnes pratiques"}]},{"@type":"WebSite","@id":"https:\/\/www.editions-eni.fr\/blog\/#website","url":"https:\/\/www.editions-eni.fr\/blog\/","name":"Eni Blog","description":"Blog des Editions ENI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.editions-eni.fr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.editions-eni.fr\/blog\/#\/schema\/person\/90914566552378aeb25260958ea73b3a","name":"Nathalie Hervoche","url":"https:\/\/www.editions-eni.fr\/blog\/author\/nhervoche\/"}]}},"_links":{"self":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/1262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/comments?post=1262"}],"version-history":[{"count":48,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/1262\/revisions"}],"predecessor-version":[{"id":5594,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/posts\/1262\/revisions\/5594"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/media\/1304"}],"wp:attachment":[{"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/media?parent=1262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/categories?post=1262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/tags?post=1262"},{"taxonomy":"genre","embeddable":true,"href":"https:\/\/www.editions-eni.fr\/blog\/wp-json\/wp\/v2\/genre?post=1262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}