{"id":4164,"date":"2025-04-13T00:46:55","date_gmt":"2025-04-12T21:46:55","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2025\/04\/13\/manual-is-your-best-friend\/"},"modified":"2025-04-15T12:50:54","modified_gmt":"2025-04-15T09:50:54","slug":"manual-is-your-best-friend","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/fr\/2025\/04\/13\/manual-is-your-best-friend\/","title":{"rendered":"Pourquoi la documentation est votre meilleur ami"},"content":{"rendered":"<p>(Et comment ne pas \u00eatre un gourou dont les conseils cessent de travailler apr\u00e8s la mise \u00e0 jour)<\/p>\n<p>&#8220;Les applications ne peuvent utiliser que des API publiques et doivent fonctionner sur le syst\u00e8me d&#8217;exploitation actuellement exp\u00e9di\u00e9.&#8221; Lignes directrices sur la revue des applications Apple<\/p>\n<p>Si vous avez d\u00e9j\u00e0 commenc\u00e9 \u00e0 travailler avec un nouveau cadre et que vous vous \u00eates surpris \u00e0 penser: &#8220;Maintenant, je comprendrai tout, la documentation est pour les al\u00e9sages&#8221; &#8211; vous n&#8217;\u00eates certainement pas seul. De nombreux d\u00e9veloppeurs ont un instinct naturel: d&#8217;abord, et seulement alors &#8211; lisez. C&#8217;est bien.<\/p>\n<p>Mais c&#8217;est \u00e0 ce stade que vous pouvez facilement d\u00e9sactiver la bonne voie et vous retrouver dans une situation o\u00f9 le code fonctionne &#8230; mais seulement aujourd&#8217;hui, et seulement &#8220;j&#8217;ai&#8221;.<\/p>\n<h2> Pourquoi est-il facile de \u00able comprendre\u00bb &#8211; n&#8217;est-ce pas suffisant? <\/h2>\n<p>Freimvorki, en particulier ferm\u00e9 et propri\u00e9taire, est complexe et multi-r\u00e9parties. Ils ont beaucoup de fonctionnalit\u00e9s de logique, d&#8217;optimisation et de mise en \u0153uvre cach\u00e9es, qui:<\/p>\n<p>* Non document\u00e9;<br \/>\n* non garanti;<br \/>\n* peut changer \u00e0 tout moment;<br \/>\n* sont un secret commercial et peuvent \u00eatre prot\u00e9g\u00e9s par des brevets<br \/>\n* Contient des bugs, des d\u00e9fauts connues uniquement des d\u00e9veloppeurs du cadre.<\/p>\n<p>Lorsque vous agissez &#8220;sur une intuition&#8221;, vous pouvez facilement construire une architecture dans des observations al\u00e9atoires, au lieu du support sur les r\u00e8gles clairement d\u00e9crites. Cela conduit au fait que le code devient vuln\u00e9rable aux mises \u00e0 jour et aux cas de bord.<\/p>\n<p><H2> La documentation n&#8217;est pas une restriction, mais le support <\/h2>\n<p>Les d\u00e9veloppeurs de cadres cr\u00e9ent des manuels pour une raison &#8211; il s&#8217;agit d&#8217;un accord entre vous et eux. Pendant que vous agissez dans le cadre de la documentation, ils promettent:<\/p>\n<p>* stabilit\u00e9;<br \/>\n* soutien;<br \/>\n* Comportement pr\u00e9visible.<\/p>\n<p>Si vous allez au-del\u00e0 de ce cadre &#8211; tout ce qui se passe ensuite devient exclusivement votre responsabilit\u00e9.<\/p>\n<p>Exp\u00e9riences? Certainement. Mais dans le cadre des r\u00e8gles.<br \/>\nLa curiosit\u00e9 est la super-via du d\u00e9veloppeur. Explorez, essayez les limites de test non standard &#8211; tout cela est n\u00e9cessaire. Mais il y a un &#8220;mais&#8221; important:<\/p>\n<p>Vous devez exp\u00e9rimenter dans le cadre de la documentation et des meilleures pratiques.<\/p>\n<p>La documentation n&#8217;est pas une prison, mais une carte. Elle montre quelles opportunit\u00e9s sont vraiment planifi\u00e9es et soutenues. Ce sont de telles exp\u00e9riences qui sont non seulement utiles, mais aussi s\u00fbres.<\/p>\n<h2> ATTENTION: Guru <\/h2>\n<p>Parfois, vous pouvez rencontrer de vrais &#8220;experts&#8221;:<\/p>\n<p>* Ils organisent des cours<br \/>\n* Percer aux conf\u00e9rences,<br \/>\n* \u00c9crivez des livres et des blogs,<br \/>\n* a partag\u00e9 &#8220;leur approche&#8221; du cadre.<\/p>\n<p>Mais m\u00eame s&#8217;ils semblent convaincants, il est important de se rappeler:<br \/>\nSi leurs approches sont contraires \u00e0 la documentation, elles sont instables.<\/p>\n<p>Ces \u00abmod\u00e8les empiriques\u00bb peuvent:<\/p>\n<p>* Travaillez uniquement sur une version sp\u00e9cifique du cadre;<br \/>\n* \u00eatre vuln\u00e9rable aux mises \u00e0 jour;<br \/>\n* Break dans des situations impr\u00e9visibles.<\/p>\n<p>Le gourou est cool lorsqu&#8217;ils respectent les manuels. Sinon, leurs conseils doivent \u00eatre filtr\u00e9s gr\u00e2ce \u00e0 la documentation officielle.<\/p>\n<h2> un peu solide <\/p>\n<h2><\/h2>\n<p>Trois id\u00e9es de principes solides sont particuli\u00e8rement pertinents ici:<\/p>\n<p>* Principe ouvert \/ ferm\u00e9: \u00e9largir le comportement via une API publique, n&#8217;entrez pas \u00e0 l&#8217;int\u00e9rieur.<br \/>\n* Principe de la substance Liskov: ne comptez pas sur la mise en \u0153uvre, comptez sur le contrat. Troubles &#8211; Tout va se casser lors du remplacement de la mise en \u0153uvre.<br \/>\n* Inversion de d\u00e9pendance: les modules de niveau \u00e9lev\u00e9 ne doivent pas d\u00e9pendre de modules de niveau bas. Les deux types devraient d\u00e9pendre d&#8217;abstractions. L&#8217;abstraction ne devrait pas d\u00e9pendre des d\u00e9tails. Les d\u00e9tails devraient d\u00e9pendre d&#8217;abstractions.<\/p>\n<p>Qu&#8217;est-ce que cela signifie dans la pratique? Si vous utilisez un cadre et directement li\u00e9 \u00e0 ses d\u00e9tails internes &#8211; vous violez ce principe.<br \/>\nAu lieu de cela, vous devez renforcer la d\u00e9pendance \u00e0 l&#8217;\u00e9gard des interfaces publiques, des protocoles et des contrats que le cadre soutient officiellement. Cela donne:<\/p>\n<p>* La meilleure isolement de votre code \u00e0 partir des modifications du cadre;<br \/>\n* La capacit\u00e9 de tester et de remplacer facilement les d\u00e9pendances;<br \/>\n* Comportement pr\u00e9visible et stabilit\u00e9 de l&#8217;architecture.<\/p>\n<p>Lorsque votre code d\u00e9pend des d\u00e9tails et non des abstractions, vous vous int\u00e9grez litt\u00e9ralement dans une impl\u00e9mentation sp\u00e9cifique qui peut dispara\u00eetre ou changer \u00e0 tout moment.<\/p>\n<h2> et si le bug? <\/h2>\n<p>Parfois, il arrive que vous ayez tout fait correctement, mais cela fonctionne mal. Cela se produit &#8211; les cadres ne sont pas parfaits. Dans ce cas:<\/p>\n<p>* Rassemblez un exemple minimum reproduit.<br \/>\n* Assurez-vous d&#8217;utiliser uniquement l&#8217;API document\u00e9e.<br \/>\n* Envoyer un bug-port-ils vous comprendront certainement et, tr\u00e8s probablement, vous aideront.<\/p>\n<p>Si l&#8217;exemple est construit sur des hacks ou des contournements, les d\u00e9veloppeurs ne sont pas tenus de le soutenir, et tr\u00e8s probablement votre cas manquera simplement.<\/p>\n<h2> comment serrer le maximum du cadre <\/h2>\n<p>* Lisez la documentation. S\u00e9rieusement.<br \/>\n* Suivez les guides et recommandations des auteurs.<br \/>\n* Exp\u00e9rience &#8211; mais dans le d\u00e9crit.<br \/>\n* V\u00e9rifiez les conseils (m\u00eame les haut-parleurs les plus c\u00e9l\u00e8bres!) \u00c0 travers le manuel.<br \/>\n* Pliez des insectes avec un minimum de cas et du respect du contrat.<\/p>\n<h2> Conclusion <\/h2>\n<p>Freimvorki ne sont pas des bo\u00eetes noires, mais des outils qui ont les r\u00e8gles d&#8217;utilisation. Les ignorer signifie \u00e9crire le code &#8220;au hasard&#8221;. Mais nous voulons que notre code vive pendant longtemps, ravit les utilisateurs et ne se d\u00e9tache pas de la mise \u00e0 jour mineure.<\/p>\n<p>Donc: faites confiance, mais v\u00e9rifiez. Et oui, lisez les manuels. Ils sont votre superpuissance.<\/p>\n<h2> Sources <\/h2>\n<p><a href=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\" rel=\"noopener\" target=\"_blank\">https:\/\/developer.apple.com\/app-store\/review\/guidelines\/<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/SOLID\" rel=\"noopener\" target=\"_blank\">https:\/\/en.wikipedia.org\/wiki\/SOLID<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/API\" rel=\"noopener\" target=\"_blank\">https:\/\/en.wikipedia.org\/wiki\/API<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/RTFM\" rel=\"noopener\" target=\"_blank\">https:\/\/en.wikipedia.org\/wiki\/RTFM<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Et comment ne pas \u00eatre un gourou dont les conseils cessent de travailler apr\u00e8s la mise \u00e0 jour) &#8220;Les applications ne peuvent utiliser que des API publiques et doivent fonctionner sur le syst\u00e8me d&#8217;exploitation actuellement exp\u00e9di\u00e9.&#8221; Lignes directrices sur la revue des applications Apple Si vous avez d\u00e9j\u00e0 commenc\u00e9 \u00e0 travailler avec un nouveau cadre<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/fr\/2025\/04\/13\/manual-is-your-best-friend\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Pourquoi la documentation est votre meilleur ami&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49],"tags":[],"class_list":["post-4164","post","type-post","status-publish","format-standard","hentry","category-blog","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"fr","enabled_languages":["en","ru","zh","de","fr","ja","pt"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/comments?post=4164"}],"version-history":[{"count":6,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4164\/revisions"}],"predecessor-version":[{"id":4172,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4164\/revisions\/4172"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/media?parent=4164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/categories?post=4164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/tags?post=4164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}