{"id":255458,"date":"2023-06-08T11:14:00","date_gmt":"2023-06-08T08:14:00","guid":{"rendered":"https:\/\/inform.click\/modelli-di-design-per-principianti\/"},"modified":"2023-06-08T11:26:00","modified_gmt":"2023-06-08T08:26:00","slug":"modelli-di-design-per-principianti","status":"publish","type":"post","link":"https:\/\/inform.click\/it\/modelli-di-design-per-principianti\/","title":{"rendered":"Modelli di design per principianti"},"content":{"rendered":"<p>\n  Se hai gi\u00e0 scritto programmi per prodotti o applicazioni software, grandi\/piccole, \u00e8 molto probabile che tu abbia utilizzato molti Design Pattern\u2026 anche se \u00e8 possibile che non siano uno dei Design Pattern pi\u00f9 utilizzati\/standard.\n<\/p>\n<p>\n  Ma s\u00ec, c'\u00e8 un'ovvia differenza tra l'implementazione di un design pattern e l'&#8221;utilizzo&#8221; di un design pattern&#8230; in ogni caso, la persona che lavora con i design pattern lo capisce o lo capir\u00e0 facilmente.\n<\/p>\n<p>\n  Il punto \u00e8 che i design pattern non sono nuovi per i programmatori.\n<\/p>\n<p>\n  In questo articolo di seguito, sto cercando di spiegare i modelli di progettazione, nelle sue basi, e studieremo i dettagli di vari modelli, esempi, ecc. In un altro articolo.\n<\/p>\n<p>\n  Che cos'\u00e8 un modello di progettazione?\n<\/p>\n<p>\n  <strong>Iniziare\u2026<\/strong>\n<\/p>\n<p>\n  Penso che il modo migliore per iniziare a comprendere i modelli di progettazione sia comprendere i modelli non tecnici che seguiamo consapevolmente o inconsapevolmente nella nostra vita quotidiana.\n<\/p>\n<p>\n  Ad esempio, prendiamo molti CV inviati per un'offerta di lavoro. Il curriculum di tutti non ha lo stesso aspetto&#8230; anche se tutti tendono a fare la stessa cosa, ovvero dire a un lettore in cosa sono abili o come pu\u00f2 essere adatto per il lavoro.\n<\/p>\n<p>\n  La maggior parte di coloro che inviano curriculum ai lavori, sa che devono inviare un curriculum con un particolare insieme di informazioni in un documento Word formattato.\n<\/p>\n<p>\n  Questo&#8230; \u00e8 uno schema, secondo cui tutti inviano un curriculum con un particolare insieme di informazioni espresse in esso.\n<\/p>\n<p>\n  Se hai voglia&#8230; chiamalo Modelli invece di Schemi. Modelli di progettazione.\n<\/p>\n<p>\n  Ci sono molte di queste cose nella vita reale che sono schemi. Ad alcune persone piacciono gli esempi seguenti:\n<\/p>\n<p>\n  Tutti gli chef di tutto il mondo cucinano la pizza o le patatine fritte allo stesso modo. Anche se possono completarlo \/ aromatizzarlo in modo diverso. Questo \u00e8 uno schema.\n<\/p>\n<p>\n  Il design di ogni auto segue un modello di progettazione di base, quattro ruote, volante, il sistema di trasmissione principale come acceleratore-frizione, ecc.\n<\/p>\n<p>\n  Tutte le cose ripetutamente costruite\/prodotte, devono inevitabilmente seguire uno schema nel suo design&#8230; che si tratti di automobili, pizze, bancomat, qualunque cosa&#8230; persino lo spazzolino da denti.\n<\/p>\n<p>\n  Progetti che sono quasi diventati un modo standard per codificare alcune logiche\/meccanismi\/tecniche nel software, quindi sono diventati noti come \u2013 e quindi \u2013 studiati come Software Design Patterns.\n<\/p>\n<h3>\n  Perch\u00e9 \u00e8 importante un modello di progettazione?<br \/>\n<\/h3>\n<p>\n  Fondamentalmente per due motivi:\n<\/p>\n<ol>\n<li>\n    <strong>Per attenersi a uno standard<\/strong>\n  <\/li>\n<li>\n    <strong>Per fissare lo sviluppo<\/strong>\n  <\/li>\n<\/ol>\n<p>\n  Spiegher\u00f2 in dettaglio.\n<\/p>\n<p>\n  In primo luogo, vediamo perch\u00e9 \u00e8 interessante attenersi a uno schema standard.\n<\/p>\n<p>\n  Prendiamo l'elenco degli esempi di CV di cui abbiamo discusso in precedenza.\n<\/p>\n<p>\n  Potrebbero esserci uno o due candidati che inviano le loro domande di lavoro tramite testo e-mail senza formattazione corretta, senza allegati alla loro e-mail, ecc., .. questi uno o due candidati non seguono lo schema.. e NON \u00e8 probabile che finiscano con il lavoro\u2026. perch\u00e9? Perch\u00e9 stanno deviando da uno schema ben consolidato, che potrebbe non piacere alle persone che selezionano i curriculum per il lavoro.\n<\/p>\n<h5>\n  Non c'\u00e8 nessuno che devia dallo schema e diventa &#8220;cool&#8221;? Non \u00e8 innovazione?<br \/>\n<\/h5>\n<p>\n  S\u00ec, ci sono momenti in cui un curriculum presentato in modo molto diverso ottiene il lavoro perch\u00e9 \u00e8 diverso dagli altri. Di solito ho sentito parlare di web designer che hanno ottenuto lavori importanti perch\u00e9 hanno compilato e presentato un film su CD del loro lavoro, o hanno realizzato un personaggio animato che spiega il loro lavoro, l'hanno pubblicato sul loro blog e cose del genere.\n<\/p>\n<p>\n  Ma.. questa \u00e8 sperimentazione (L'innovazione viene da esperimenti riusciti).\n<\/p>\n<p>\n  Molto spesso nello sviluppo del software, non puoi permetterti di sperimentare, a causa della pressione della tempistica, delle aspettative, ecc., ma s\u00ec, a volte, alcuni progetti interessanti consentono qualche sperimentazione.\n<\/p>\n<p>\n  Nel software, non possiamo fare cose di base come un deposito bancario&#8230; in 101 modi&#8230; ci saranno solo alcuni modi per elaborare un deposito bancario&#8230; quindi ha senso seguire un modello stabilito e testato.\n<\/p>\n<p>\n  Inoltre, la maggior parte dei modelli di design ha variazioni&#8230; alcune delle variazioni sono cos\u00ec popolari che le variazioni saranno anche un nuovo tipo standard del modello.\n<\/p>\n<p>\n  Al giorno d'oggi ci si aspetta che i progetti software (almeno implicitamente) seguano un design gi\u00e0 stabilito di un prodotto\/software simile sul mercato.\n<\/p>\n<p>\n  \u00c8 qui che attenersi a uno stile standard di codifica o modello di progettazione aiuta lo sviluppo del software&#8230; accelerare lo sviluppo, eliminare il sovraccarico di preoccuparsi di una nuova implementazione non testata, ecc.,\n<\/p>\n<h5>\n  Tempo di sviluppo del fissaggio<br \/>\n<\/h5>\n<p>\n  Seguire un modello di progettazione standard ha anche il vantaggio di comunicare facilmente attraverso l'albero \/ gerarchia di architetti del software, responsabili del modulo, responsabili del team, sviluppatori ecc., su &#8220;Come&#8221; qualcosa deve essere sviluppato, e non solo su &#8220;Cosa&#8221; deve essere sviluppato.\n<\/p>\n<p>\n  A volte aiuta anche i team di test, perch\u00e9 i tester saprebbero per esperienza che il codice che segue un particolare modello di progettazione potrebbe probabilmente essere testato in un modo specifico con una serie di strumenti di test in un certo periodo di tempo e tali progetti noti potrebbero non avere alcuni difetti o avere alcuni difetti &#8220;noti&#8221;.\n<\/p>\n<h5>\n  L'utilizzo di Design Patterns non toglie un tocco personale?<br \/>\n<\/h5>\n<p>\n  No. In primo luogo perch\u00e9 non stiamo dicendo che segui uno schema di progettazione e non succede nient'altro. La maggior parte delle implementazioni del progetto condivide solo i requisiti di base con altri progetti e molto probabilmente presenter\u00e0 delle deviazioni. Costruire queste deviazioni richieder\u00e0 la flessione e l'allungamento dei modelli standard utilizzati in un'implementazione.\n<\/p>\n<p>\n  \u00c8 come fare la pizza nel modo standard, quindi aromatizzarla \/ presentarla a diverse esigenze, come una pizza a torta intera, o una torta tagliata, o altro.\n<\/p>\n<p>\n  Nel comprendere l'importanza dei modelli di progettazione, una cosa \u00e8 <strong>moltoimportante<\/strong> :\n<\/p>\n<p>\n  I modelli di progettazione non sono alcuna tecnologia o framework che una particolare azienda o linguaggio di programmazione ci impone. Ci\u00f2 significa che \u00e8 come un concetto aperto&#8230; sei libero di prenderlo, usarlo, modificarlo in base alle tue esigenze e, soprattutto&#8230; sentirlo tuo.\n<\/p>\n<p>\n  Tutti i modelli di design standard o popolari, in realt\u00e0, sono estensibili piuttosto pesantemente&#8230; sono diventati popolari, in primo luogo, solo perch\u00e9 molte persone lo usano&#8230; e molte persone lo usano solo perch\u00e9 sono flessibili alle loro esigenze.\n<\/p>\n<p>\n  O come pensi che un modello di design standard si adatterebbe a un progetto nel New Jersey per un'azienda e anche a Bangalore per un'altra azienda e un diverso tipo di progetto.\n<\/p>\n<p>\n  Questo ci porta a &#8221; <strong>La maggior parte dei modelli di progettazione sono generici<\/strong> &#8220;&#8230; nel senso che non vengono sempre utilizzati per creare lo stesso tipo di software. Potresti non sentire cose come &#8220;modello di progettazione del software bancario&#8221; o &#8220;modello di progettazione del software di social networking&#8221; usate nelle discussioni comuni&#8230; ma solo &#8220;modelli di progettazione&#8221;.\n<\/p>\n<h3>\n  Chi dovrebbe preoccuparsi dei modelli di progettazione?<br \/>\n<\/h3>\n<ol>\n<li>Proprio come un buon architetto edile accresce le sue capacit\u00e0 di progettazione di edifici, studiando l'architettura e il design di numerosi edifici e forme nel corso della sua vita, un architetto del software dovrebbe studiare e visualizzare come vengono progettati o progettati diversi sistemi software \/ tecnologici in tutto il mondo architettato.\n  <\/li>\n<li>E proprio come i lavoratori edili di un edificio dovrebbero essere consapevoli dei diversi modi di implementare un progetto edilizio, sia per esperienza personale che per comprensione dall'architetto dell'edificio.\n  <\/li>\n<\/ol>\n<p>\n  Gli sviluppatori\/programmatori di software dovrebbero comprendere i modelli di progettazione del software di base e il loro codice di implementazione &#8230; da soli o dall'architetto del software che istruisce il team a svilupparlo seguendo un particolare modello.\n<\/p>\n<h3>\n  Modelli di codice di base<br \/>\n<\/h3>\n<p>\n  Nelle righe di apertura di questo articolo, ho detto che qualsiasi programmatore avrebbe utilizzato i modelli di progettazione. Ecco alcuni esempi molto basilari di codice che segue uno schema.\n<\/p>\n<ol>\n<li>\n<p>\n      Di seguito \u00e8 riportato un modello di progettazione <strong>del filtro di intercettazione<\/strong> di base .\n    <\/p>\n<\/li>\n<li>\n<p>\n      Nascondi Copia codice\n    <\/p>\n<\/li>\n<li>\n<pre><code>switch (condition){\n     case Value1:\n     case Value2:\n     default:\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>\n      Trigger di eventi, gestori di eventi &#8230; rientrano nel modello di progettazione <strong>Soggetto-Osservatore<\/strong> di base. Discuteremo gli standard di ogni modello, variazioni popolari, con esempi &#8230; presto.\n    <\/p>\n<\/li>\n<li>\n<p>\n      Se hai usato qualche tipo di raccolta, come Arraylist in C#, e hai ripetuto l'array, allora hai usato un modello di progettazione <strong>Iterator di base.<\/strong>\n    <\/p>\n<\/li>\n<li>\n<p>\n      Il codice seguente \u00e8 un esempio di un modello base di gestione delle eccezioni\/ <strong>catena di responsabilit\u00e0<\/strong>.\n    <\/p>\n<\/li>\n<li>\n<p>\n      Nascondi Copia codice\n    <\/p>\n<\/li>\n<li>\n<pre><code>try{\n}catch(Exception ex){\n}\nfinally{\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>\n  Diverse aree di modelli di progettazione<br \/>\n<\/h3>\n<p>\n  Ci sono diverse terminologie nel software diverse dai Design Patterns&#8230; alcune spesso correlate ai Design pattern di cui abbiamo discusso finora&#8230; e alcune del tutto estranee.\n<\/p>\n<p>\n  Ci\u00f2 che abbiamo finora discusso in precedenza \u00e8 talvolta chiamato &#8221; <strong>Implementation Design Patterns<\/strong> &#8220;.\n<\/p>\n<p>\n  Ce ne sono altri, come <strong>Architecture Patterns, Framework Patterns, Language Patterns<\/strong> (per lo pi\u00f9 chiamati Language Constructs).\n<\/p>\n<p>\n  Sono modelli posti a diversi livelli &#8230; come <strong>i modelli linguistici<\/strong> sono modelli implementati come parte di linguaggi di programmazione come C # \/ Java, come caratteristiche \/ costrutti del linguaggio &#8230; alcuni di essi li abbiamo gi\u00e0 visti.\n<\/p>\n<p>\n  Tutti gli esempi precedenti di soggetto-osservatore, filtro di intercettazione, ecc., sono assorbiti come costrutti linguistici in tutti i popolari linguaggi di programmazione di alto livello che sono venuti dopo C.\n<\/p>\n<p>\n  <strong>I modelli di architettura<\/strong> sono quei modelli standard di architettura software, comunemente riferiti a diversi metodi di posizionamento o collegamento di moduli o livelli o livelli, che costituiscono l'applicazione completa.\n<\/p>\n<p>\n  Questo \u00e8 del tutto estraneo ai modelli di progettazione nel senso di codifica \/ programmazione che &#8230; ma condividono le stesse risposte a Perch\u00e9 \/ Cosa \u00e8 discusso in questo articolo.\n<\/p>\n<p>\n  <strong>Anche i framework pattern<\/strong> non sono correlati alla nostra discussione sui design pattern. Quando framework come .NET implementano mezzi speciali per la registrazione degli errori o la traccia dell'esecuzione del codice instradano facilmente attraverso i metodi o gli oggetti incorporati del framework, tali meccanismi vengono definiti modelli Framework.\n<\/p>\n<p>\n  Alcuni esempi in .NET Framework includono la funzionalit\u00e0 stackTrace, la funzionalit\u00e0 dell'attributo di classe con [] parentesi quadre sopra le definizioni di classe\/metodo e cos\u00ec via. Quando si utilizzano tali funzionalit\u00e0, si codifica con i modelli incorporati del Framework.\n<\/p>\n<p>\n  Spero che questo articolo aiuti a fornire una panoramica dei modelli di progettazione e delle relative terminologie.\n<\/p>\n<p>\n  Finora, abbiamo discusso solo di cosa sono gli standard e quanto sono importanti&#8230; ma non abbiamo discusso di quali siano gli stessi modelli standard.\n<\/p>\n<h4>\n  Licenza<br \/>\n<\/h4>\n<p>\n  Questo articolo, insieme a qualsiasi codice sorgente e file associati, \u00e8 concesso in licenza con The Code Project Open License (CPOL).\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte di registrazione: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2016\/01\/12\/models-of-design-for-beginners\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Se hai gi\u00e0 scritto programmi per prodotti o applicazioni software, grandi\/piccole, \u00e8 molto probabile che tu abbia utilizzato molti Design Pattern\u2026 anche se \u00e8 possibile che non siano uno dei Design Pattern pi\u00f9 utilizzati\/standard. Ma s\u00ec, c&#8217;\u00e8 un&#8217;ovvia differenza tra implementare un design pattern e &#8220;usare&#8221; un design pattern&#8230; in ogni caso, la persona che lavora con i design pattern lo capisce, o lo capir\u00e0 facilmente. Il punto \u00e8 che i design pattern non sono nuovi per i programmatori. In questo articolo di seguito, sto cercando di spiegare i modelli di progettazione, nelle sue basi, e &#8230;<\/p>\n","protected":false},"author":1,"featured_media":142080,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[225,199,56,147],"tags":[],"class_list":["post-255458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-libri-di-testo","category-web-design","category-web-e-wordpress","category-web-suggerimenti-e-trucchi"],"_links":{"self":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts\/255458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/comments?post=255458"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/posts\/255458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/media\/142080"}],"wp:attachment":[{"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/media?parent=255458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/categories?post=255458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/it\/wp-json\/wp\/v2\/tags?post=255458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}