{"id":230292,"date":"2022-11-17T10:48:00","date_gmt":"2022-11-17T07:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230292"},"modified":"2022-11-17T18:53:20","modified_gmt":"2022-11-17T15:53:20","slug":"programmazione-orientata-agli-oggetti-in-wordpress-analisi-parte-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/programmazione-orientata-agli-oggetti-in-wordpress-analisi-parte-2\/","title":{"rendered":"Programmazione orientata agli oggetti in WordPress: analisi, parte 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/it\/programmazione-orientata-agli-oggetti-in-wordpress-analisi-parte-1\/\" title=\"Nel primo post di questa serie\">Nel primo post di questa serie<\/a>, ho parlato di come volevo affrontare un&#8217;introduzione alla programmazione orientata agli oggetti nel contesto di WordPress.<\/p>\n<p>Ci sono alcune grandi risorse per la programmazione orientata agli oggetti, ma possono usare esempi inventati o possono spostarsi troppo velocemente per coloro che stanno solo cercando di iniziare.<\/p>\n<p>Nel tentativo di evitare che ci\u00f2 accada, penso che parlare di OOP in WordPress ci ancori a solide fondamenta e utilizzare esempi pratici sar\u00e0 sempre meglio che usare esempi generici difficili da tradurre nel dominio in cui stiamo lavorando.<\/p>\n<p>Per coloro che <a href=\"https:\/\/tommcfarlin.com\/register\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">devono ancora aderire<\/a> o che non hanno ancora raggiunto, il primo post tocca i seguenti argomenti:<\/p>\n<ul>\n<li>Analisi orientata agli oggetti,<\/li>\n<li>Determinazione dei must-have e dei piacevoli da avere,<\/li>\n<li>E perch\u00e9 \u00e8 difficile?<\/li>\n<\/ul>\n<p>Ed \u00e8 qui che riprender\u00e0 questo post.<\/p>\n<h2>Programmazione orientata agli oggetti: pi\u00f9 analisi<\/h2>\n<p>Lo so: quando si tratta di scrivere codice, la prima cosa che vogliamo fare \u00e8 sederci e iniziare a scrivere codice. Cosa c&#8217;\u00e8 di meglio che far succedere qualcosa sullo schermo?<\/p>\n<p>E quando lo fai per te stesso, non \u00e8 un grosso problema, ma quando scrivi il codice sar\u00e0:<\/p>\n<ul>\n<li>gestito da un team di persone,<\/li>\n<li>in vendita,<\/li>\n<li>o per tutto quanto sopra<\/li>\n<\/ul>\n<p>Fa la differenza. Perch\u00e9 una buona analisi pu\u00f2 portare a una buona organizzazione che pu\u00f2 portare a una buona manutenibilit\u00e0.<\/p>\n<p>Altrimenti, stai mettendo insieme qualcosa da spedire e non si adatter\u00e0 bene con le versioni future. E questo \u00e8 qualcosa di cui parleremo in modo approfondito per tutta la serie.<\/p>\n<p>Ma qual \u00e8 un buon modo per riassumere facendo una buona analisi in tre semplici passaggi? Questa non \u00e8 necessariamente una risposta a prova di proiettile, ma \u00e8 ci\u00f2 che cerchiamo di fare ogni volta che lavoriamo su progetti:<\/p>\n<ol>\n<li>Assicurati che il codice faccia ci\u00f2 che il cliente vuole,<\/li>\n<li>Applicare buone pratiche orientate agli oggetti,<\/li>\n<li>Obiettivo per un design manutenibile.<\/li>\n<\/ol>\n<p>Tutto questo suona bene in teoria, ma senza approfondire ciascuno di essi, come facciamo a sapere se lo stiamo facendo bene? In altre parole, \u00e8 qui che troviamo spesso libri, risorse e altre utilit\u00e0 che rendono difficile diventare un migliore programmatore orientato agli oggetti.<\/p>\n<p>Questo \u00e8 esattamente ci\u00f2 che voglio evitare, quindi approfondir\u00f2 ogni punto un po&#8217; pi\u00f9 a fondo.<\/p>\n<h3>1 Cosa vuole il cliente<\/h3>\n<p>Questo pu\u00f2 essere spesso uno degli aspetti pi\u00f9 impegnativi dell&#8217;intero progetto perch\u00e9 noi, come sviluppatori, parliamo una lingua diversa dal cliente.<\/p>\n<p>Non solo useranno spesso una terminologia che non useremmo, ma spesso pensano che quello che vogliono sullo schermo sia il modo migliore per farlo. Questo fa sembrare davvero condiscendente e sbagliato cercare di correggerli, vero?<\/p>\n<p>Voglio dire, immagina di provare a dire a qualcuno che sai cosa vuoi, e lui ti corregge. Gestire questo con cura \u00e8 qualcosa che pu\u00f2 ottenere una grande equit\u00e0 relazionale, ma ci vuole un certo lasso di tempo per &quot;scavare&quot; ci\u00f2 che vogliono veramente rispetto a ci\u00f2 che dicono di volere.<\/p>\n<p>E ci addentreremo maggiormente in questo in un prossimo post.<\/p>\n<h3>2 Pratiche orientate agli oggetti<\/h3>\n<p>Ovviamente, questo deriva dal sapere quali sono le buone pratiche orientate agli oggetti ed \u00e8 qualcosa che ho intenzione di coprire.<\/p>\n<p>Molte persone diranno cose usando cose come:<\/p>\n<ul>\n<li>i SOLID principi,<\/li>\n<li>eredit\u00e0,<\/li>\n<li>codice DRY,<\/li>\n<li>iniezione di dipendenza,<\/li>\n<li>e cos\u00ec via<\/li>\n<\/ul>\n<p>Sono tutti importanti per seguire buone pratiche orientate agli oggetti.<\/p>\n<p>E forse questa non \u00e8 una cosa popolare da dire, ma sono della mentalit\u00e0 che cercare di usare tutte le cose tutto il tempo non \u00e8 sempre una buona idea. Cio\u00e8, sicuramente non vuoi che il codice venga ripetuto in tutta la tua base di codice, ma devi avere ereditariet\u00e0 nella tua base di codice?<\/p>\n<p>No.<\/p>\n<p>Ci sono momenti in cui i principi dovrebbero essere applicati e in cui possono essere ignorati. Ma conoscerli, quando sono utilizzati al meglio e quando usarli sono la chiave per utilizzare correttamente tali pratiche.<\/p>\n<h3>3 Design manutenibile<\/h3>\n<p>In poche parole, l&#8217;applicazione di schemi e principi al tuo software durante la scrittura \u00e8 ci\u00f2 che render\u00e0 molto pi\u00f9 facile l&#8217;uso e la manutenzione in futuro.<\/p>\n<p>Ma, ancora una volta, questo dipende da:<\/p>\n<ol>\n<li>comprendere appieno ci\u00f2 che il cliente desidera,<\/li>\n<li>sapere quali pratiche esistono, quando applicarle e quando evitarle.<\/li>\n<\/ol>\n<p>E per fare tutto quanto sopra, dobbiamo guardare ogni punto all&#8217;interno del suo contesto prima di fare un passo indietro per guardare al quadro pi\u00f9 ampio.<\/p>\n<h2>Cosa vuole il cliente?<\/h2>\n<p>Ovviamente, c&#8217;\u00e8 molto terreno da coprire quando si tratta dei tre punti precedenti. Ma se vuoi scrivere un buon software gestibile all&#8217;interno dell&#8217;economia di WordPress, \u00e8 importante capire come tutto questo si adatta insieme.<\/p>\n<p>Quindi, piuttosto che saltare avanti nella scrittura di codice o andare avanti nel lavorare su un progetto, la prossima cosa che esamineremo \u00e8 come prendere ci\u00f2 che il cliente vuole e quindi decifrarlo in una serie di requisiti che ci consentano di creare un dichiarazione di lavoro.<\/p>\n<p>In questo modo, alla fine avremo un documento di lavoro su ci\u00f2 che il cliente desidera e ci\u00f2 che costruiremo, e saremo tutti sulla stessa pagina.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Parlare di programmazione orientata agli oggetti in WordPress ci ancora a solide fondamenta e l&#8217;uso di esempi pratici sar\u00e0 sempre meglio dei generici.<\/p>\n","protected":false},"author":1,"featured_media":165340,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,720],"tags":[1168],"class_list":["post-230292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-sviluppatore","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230292"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230292\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165340"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}