{"id":638,"date":"2016-07-11T15:00:43","date_gmt":"2016-07-11T13:00:43","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/dalle-pagine-ai-pattern-un-esercizio-per-tutti\/"},"modified":"2016-07-11T15:00:43","modified_gmt":"2016-07-11T13:00:43","slug":"dalle-pagine-ai-pattern-un-esercizio-per-tutti","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/dalle-pagine-ai-pattern-un-esercizio-per-tutti\/","title":{"rendered":"Dalle pagine ai pattern: un esercizio per tutti"},"content":{"rendered":"<div class=\"paragrafo\">\n<p>Il linguaggio definisce la vita dei componenti. Un \u201cpulsante blu\u201d funzioner\u00e0 finch\u00e9 il pulsante non sar\u00e0 pi\u00f9 blu e quindi il nome non avr\u00e0 pi\u00f9 senso. Il pattern non avr\u00e0 ragione di esistere se non si usano pi\u00f9 i pulsanti blu. Un componente con il nome \u201cpulsante\u201d, tuttavia, vivr\u00e0 una vita pi\u00f9 lunga e proficua, anche se le sue propriet\u00e0 cambieranno. Perch\u00e9? Per il suo nome descrive la sua <em>funzione<\/em>, non il suo aspetto.<\/p>\n<p>Come molti di noi sanno fin troppo bene, assegnare nomi \u00e8 difficile, ma \u00e8 la chiave per creare un sistema robusto e implica il lasciarsi indietro alcuni modi di pensare molto radicati.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Pensare in pagine (ancora)<\/h2>\n<p>Anche quando il deliverable finale \u00e8 una pattern library, i clienti si aspettano ancora di dare il consenso su design di pagina. Al loro passaggio tra i vari team e manager per l&#8217;approvazione, le pagine vengono ovviamente discusse: prima che ve ne rendiate conto, diventano Home page, Listing page, Product page e cos\u00ec via. Tutti pensano in termini di pagine, quindi pu\u00f2 sembrare naturale che il design dei componenti e il design della pagina viaggino in tandem, ma, creare componenti dai design della pagina \u00e8 come partire dall&#8217;esterno e lavorare verso l&#8217;interno &#8211; pu\u00f2 diventare complicato.<\/p>\n<p>In <a href=\"http:\/\/clearleft.com\/\">Clearleft<\/a>, la sfida di sviluppare simultaneamente pagine e componenti \u00e8 diventata particolarmente evidente in alcuni nostri progetti recenti, dove, invece di fornire ai nostri clienti delle pattern library complete, ci \u00e8 stato chiesto di collaborare con un team di designer e developer in-house per aiutarli a crearne e mantenerne una loro. In un&#8217;occasione, come esercizio, abbiamo passato alcune settimane a concentrarci sulla UX e UI con un team prima di chiedere loro di assegnare un nome e di programmare i componenti a partire dai design. Stavamo lavorando con il design di una pagina prodotto con del contenuto relativo al prodotto in ogni componente. Il primo componente che abbiamo costruito aveva l&#8217;aspetto di una card, quindi tutti l&#8217;abbiamo chiamato \u201cproduct card\u201d. Abbiamo continuato l&#8217;esercizio per diversi componenti con risultati simili.<\/p>\n<p>Ora, \u00e8 fantastico che le persone se ne escano con suggerimenti unanimi, ma riuscite a vedere il problema di questa struttura di naming? Cosa succede se il componente viene spostato in un&#8217;altra pagina o viene popolato con del contenuto diverso? Potreste anche pensare alla product card come a una \u201cprofile card\u201d o a una \u201clocation card\u201d. Potrebbe essere riutilizzata per una variet\u00e0 di scopi diversi. Il nome \u201ccard\u201d potrebbe essere pi\u00f9 semplice e molto pi\u00f9 versatile.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Dalle pagine ai pattern<\/h2>\n<p>Per aiutare gli altri ad adottare il pattern thinking, abbiamo creato un esercizio per chiunque sia coinvolto nella pattern library. Non \u00e8 solo per i developer e i designer: dovrebbe parteciparvi chiunque debba prendere una decisione nella creazione della pattern library. Lo scopo \u00e8 di far s\u00ec che tutti pensino ai pattern a livello granulare, rimuovendo qualunque contesto attorno a ciascun componente. Inoltre, incoraggia ad avere un vocabolario condiviso.<\/p>\n<p>Tutto quello che vi serve sono dei visual design di pagine e componenti (possono essere una qualunque cosa dalla prima bozza fino ai design finali) e i seguenti oggetti:<\/p>\n<ul>\n<li>una stampante<\/li>\n<li>carta<\/li>\n<li>forbici<\/li>\n<li>post-it<\/li>\n<\/ul>\n<p>Ecco come si fa.<\/p>\n<h3>Parte 1: carta e forbici<\/h3>\n<ul>\n<li>Stampate i design di pagina e condivideteli con il team, in modo che ognuno abbia i componenti da ritagliare.<\/li>\n<li>In gruppo o da soli, ritagliate ogni pagina nei suoi elementi pi\u00f9 piccoli e mischiateli, cos\u00ec da non sapere da che pagina provengono.<\/li>\n<li>Raggruppate elementi simili come pulsanti, icone, campi di una form, etc., e rimuovete i duplicati.<\/li>\n<\/ul>\n<p>I duplicati sono istanze multiple dello stesso identico elemento con lo stesso identico design. Potete tranquillamente rimuoverli: vi serve solo che annotiate un&#8217;istanza di ciascun elemento. Tuttavia, se vi ritrovate con molte istanze che hanno leggere variazioni tra loro, potreste voler rivedere i vostri design e ottimizzarli per assicurarvi di creare un&#8217;esperienza consistente e unita.<\/p>\n<p>Brad Frost usa una tecnica chiamata <a href=\"http:\/\/bradfrost.com\/blog\/post\/interface-inventory\/\">interface inventory<\/a> per analizzare i componenti dell&#8217;interfaccia di un sito web. Invece di ritagliare dalla carta, usa gli screenshot e li raggruppa in uno spreadsheet. Quando ha fatto l&#8217;inventario del sito web della sua banca, ha scoperto che i design dei pulsanti erano piuttosto inconsistenti. Usare la sua tecnica ha contribuito a sollevare il bisogno di una design review.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/07\/jackson_charlotte_00.jpg\" border=\"0\" alt=\"Un esempio della prima parte dell'esercizio: elementi dell'interfaccia stampati su carta, ritagliati nei suoi componenti e categorizzati.\" width=\"100%\" \/> La mia versione dell&#8217;esercizio dalle pagine ai pattern. Ho raggruppato i campi delle form, le tabelle, i pulsanti, le icone, le famiglie di font, le dimensioni di font e addirittura i colori del sito web.<\/p>\n<h3>Parte 2: assegnare nomi ai componenti<\/h3>\n<p>Generare idee per i nomi dei componenti come team \u00e8 un modo fantastico per cominciare a sviluppare un vocabolario condiviso.<\/p>\n<ul>\n<li>Scegliete un componente.<\/li>\n<li>Ognuno prende un post-it e ci scrive sopra il nome per quel componente.<\/li>\n<li>Tenete segreti i nomi finch\u00e9 tutti hanno finito. Pensate alla funzione che avr\u00e0 il componente ed evitate tutti i riferimenti al suo aspetto. Chiedere perch\u00e9 un designer ha scelto quell&#8217;aspetto pu\u00f2 aiutare ad identificare la sua funzione o il suo scopo. Il nome ha ancora senso se il componente viene spostato in un posto completamente diverso da dove ve lo state immaginando?<\/li>\n<li>Una volta che tutti hanno pensato a un nome, scoprite ogni Post-it. Confrontateli e discutetene. I nomi che appaiono pi\u00f9 volte sono buoni candidati perch\u00e9 indicano la formazione di un vocabolario condiviso.<\/li>\n<li>Ripetete questo procedimento con ogni componente.<\/li>\n<\/ul>\n<p>Per quella che \u00e8 la mia esperienza, questa parte dell&#8217;esercizio ha dato il via ad alcune discussioni produttive sul naming, facendo emergere alcuni nomi di classi che hanno importanza per l&#8217;azienda per le metodologie di naming in CSS. Assegnare nomi alle cose non dovrebbe essere semplicemente lasciato agli sviluppatori. Coinvolgere tutti rende un po&#8217; pi\u00f9 semplici i difficili task di assegnazione dei nomi alle cose ed incoraggia il team a continuare ad usare la stessa terminologia dopo il termine dell&#8217;esercizio.<\/p>\n<p>Se il progetto \u00e8 nelle sue fasi iniziali ed \u00e8 probabile che il design cambi in maniera significativa, potrebbe non essere necessario fare questa parte dell&#8217;esercizio. D&#8217;altro canto, c&#8217;\u00e8 molto valore nell&#8217;abituarsi al dare un nome ai componenti e nel cominciare a formare da subito un vocabolario condiviso, anche se tale vocabolario si evolver\u00e0 durante il progetto.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/07\/jackson_charlotte_02.jpg\" border=\"0\" alt=\"Tre componenti pi\u00f9 grandi etichettati con i nomi suggeriti sui Post-it.\" width=\"100%\" \/> Alcuni suggerimenti per dare nomi ai componenti.<\/p>\n<h3>Parte 3: codice<\/h3>\n<p>Per quelli che si sentono a proprio agio a scrivere codice, c&#8217;\u00e8 un ultimo step in questo esercizio. Se avete cominciato a discutere le metodologie CSS, adesso \u00e8 il momento adatto per testarle. A questo punto, potete giocare con quante variazioni volete: se decidete che una particolare metodologia o un dato termine non funzionano per voi, potete lasciarlo cadere senza creare del codice nell&#8217;effettiva pattern library.<\/p>\n<ul>\n<li>Ciascuno prende un componente.<\/li>\n<li>Codificatelo in HTML e CSS. Mettete un tempo limite e resistete alla tentazione di rendere le cose perfette. Va bene buttare via il codice se cambia il design.<\/li>\n<li>Confrontate il vostro codice e discutetene.<\/li>\n<li>Ripetete.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Ripetere, ripetere, ripetere<\/h2>\n<p>Tutto questo esercizio pu\u00f2 essere ripetuto pi\u00f9 volte per identificare i componenti pi\u00f9 grandi. Alcuni di questi conterranno elementi identificati durante il primo round dell&#8217;esercizio. Potete controllare che abbiano senso e che stiano in piedi da soli all&#8217;interno del loro nuovo contesto.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/07\/jackson_charlotte_01.jpg\" border=\"0\" alt=\"Immagine che mostra i post-it con alcuni suggerimenti per assegnare nomi ai componenti.\" width=\"100%\" \/> La prima parte dell&#8217;esercizio pages-to-patterns ripetuta con i componenti pi\u00f9 grandi.<\/p>\n<p>Uno degli aspetti migliori di questo esercizio \u00e8 che pu\u00f2 essere prezioso durante fasi diverse di un progetto. Magari gruppi con skill set diversi, incluse le persone che non sono n\u00e9 sviluppatori n\u00e9 designer, vogliono cominciare a pensare in pattern. Se questo \u00e8 il caso, usate semplicemente le bozze iniziali o la versione in cui vi trovate in quel momento. Non importa se cambieranno i design, perch\u00e9 il focus \u00e8 su un nuovo modo di pensare, non sul modo in cui appare il pattern. In questa fase, i nomi scelti nella seconda parte dell&#8217;esercizio sono appropriati per essere temporanei, ma dal momento che assegnare nomi \u00e8 comunque invariabilmente una sfida perch\u00e9 non usare questa mutabilit\u00e0 come un&#8217;opportunit\u00e0 per cominciare a costruire le fondamenta del vostro vocabolario condiviso cercando vari nomi nel contesto del progetto?<\/p>\n<p>O magari siete pi\u00f9 avanti nel progetto e il design \u00e8 piuttosto consolidato, quindi vorrete cominciare a raggruppare e assegnare nomi ai pattern. Di nuovo, usate i design pi\u00f9 recenti per l&#8217;esercizio. La bellezza dei prototipi su carta \u00e8 il loro basso costo di cambiamento: potete buttarli via e ripetere quante volte volete. <a href=\"https:\/\/twitter.com\/Natbat\">Natalie Downe<\/a> era solita effettuare un esercizio simile quando lavorava in Clearleft. Usava  <a href=\"https:\/\/www.flickr.com\/search\/?tags=planningartifact\">carta e penna per fari i prototipi dei componenti<\/a>, dimostrando la loro funzionalit\u00e0 e dimensione. Questo le permetteva di vedere in che modo avrebbero funzionato e come sarebbero stati insieme prima di investire del tempo nel codice.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Poi cosa succede?<\/h2>\n<p>Dipende da voi. Dipende da cosa sperate di ottenere dall&#8217;esercizio. Personalmente, trovo utile mettere i componenti e i loro nomi su un grande foglio di carta per poi appenderlo al muro, cos\u00ec che tutti possano vederlo. Man mano che cambiano i design, i componenti possono essere ristampati, discussi e sostituiti. Tenere le cose visibili funge da reminder dei componenti e provocher\u00e0 discussioni man mano che il progetto continua. Oppure, se il team non pu\u00f2 lavorare nello stesso edificio, potete tenerne traccia online. <a href=\"http:\/\/styleguides.io\/podcast\/dan-mall\/\">Dan Mall ha parlato dell&#8217;utilizzo di un Google Sheet come repository centrale dei componenti<\/a> cos\u00ec che tutti nel team possano accedere e discuterne in maniera asincrona.<\/p>\n<p>Lo scopo dell&#8217;esercizio che vi ho descritto qui \u00e8 di coinvolgere tutti nel team di creazione della pattern library. <a href=\"http:\/\/styleguides.io\/podcast\/dan-mall\/\">Alla Kholmatova si spinge ancora pi\u00f9 in l\u00e0<\/a> e coinvolge gli utenti del sito web. Testa i componenti cartacei con loro per avere un feedback quanto prima possibile durante il processo.<\/p>\n<blockquote><p>Qui, i partecipanti possono prendere, spostare, discutere e scarabocchiare sulle card, diventando attivamente parte del processo di design. Questo ci d\u00e0 una chance per testare le nostre scelte di linguaggio e per essere sicuri che le funzioni che abbiamo definito abbiano senso per i nostri utenti.<\/p><\/blockquote>\n<p>\u2014<a href=\"http:\/\/alistapart.com\/article\/language-of-modular-design#section6\">Alla Kholmatova<\/a><\/p>\n<p>In maniera simile, <a href=\"https:\/\/twitter.com\/heydonworks\">Heydon Pickering<\/a> usa carta, penne, adesivi come <a href=\"https:\/\/www.google.it\/search?q=Blu-Tack&amp;client=firefox-b-ab&amp;tbm=isch&amp;tbo=u&amp;source=univ&amp;sa=X&amp;ved=0ahUKEwid4reIn4HNAhUG2BoKHVYnCoQQsAQIOQ&amp;biw=1383&amp;bih=748&amp;dpr=2\">Blu-Tack<\/a>, forbici e nastro adesivo per fare prototipi di interfacce con cui gli utenti possano giocare in <a href=\"http:\/\/workspiration.org\/heydon-pickering\">Neontribe<\/a>. In questo modo, pu\u00f2 rapidamente validare idee con gli utenti senza dedicare tempo alla fedelt\u00e0 dei prototipi. A volte, fa a pezzi i prototipi e lascia poco pi\u00f9 di quello con cui ha cominciato, ma almeno pu\u00f2 rapidamente dedicarsi a nuove idee.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Sviluppare i componenti<\/h2>\n<p>L&#8217;esempio della card illustra un componente comune e sottolinea il bisogno di uno schema di naming. In questo caso, la class <code>.card<\/code> funge da blueprint di stili per ciascun componente card, su cui si possono creare delle variazioni. Questo \u00e8 il modo in cui il markup di un intero componente card potrebbe apparire usando la <a href=\"https:\/\/en.bem.info\/\">sintassi BEM<\/a>:<\/p>\n<pre id=\"snippet1\" class=\"  language-markup\"><code class=\"  language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>div<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>a<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__link<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">href<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span><span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>h3<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__title<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>Hello<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>h3<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>img<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__hero<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">src<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>images\/image.png<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">alt<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Card image<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>p<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__description<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>Some text content<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>p<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>a<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>div<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/code><\/pre>\n<p>Una variazione, diciamo un prodotto, pu\u00f2 essere creata modificando cos\u00ec il componente card:<\/p>\n<pre id=\"snippet2\" class=\"  language-markup\"><code class=\"  language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>div<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card card--product<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>a<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__link<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">href<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span><span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>h3<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__title<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>Hello<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>h3<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>img<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__hero<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">src<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>images\/image.png<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">alt<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Card image<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>p<\/span> <span class=\"token attr-name\">class<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>card__description<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>Some text content<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>p<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>a<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>div<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/code><\/pre>\n<p>Negli ultimi anni ci sono stati alcuni cambiamenti significativi nello sviluppo web, in modo particolare, gli approcci modulari al CSS e le convenzioni di naming. Le convenzioni di naming giocano un ruolo importante perch\u00e9 forniscono metodologie come <a href=\"http:\/\/smacss.com\/\">SMACSS<\/a>, <a href=\"http:\/\/bem.info\/\">BEM<\/a> e <a href=\"https:\/\/github.com\/stubbornella\/oocss\">OOCSS<\/a>. Tutti questi aiutano a gestire lo stesso problema: dare nomi alle cose in maniera chiara e consistente.<\/p>\n<p>Resistete alla tentazione di buttarvi direttamente nel codice. C&#8217;\u00e8 molto da guadagnare allontanandosi dai nostri monitor per concentrarci prima sul pensiero, sul linguaggio e sull&#8217;approccio. Potrebbe sembrare che prenda troppo tempo e che costituisca un problema, ma pu\u00f2 ridurre le possibilit\u00e0 di scoprire che occorre fare delle correzioni in corso d&#8217;opera pi\u00f9 tardi.<\/p>\n<p>I benefici principali di questo esercizio sono che crea lo stesso punto di inizio per tutti ed incoraggia un linguaggio condiviso e il pattern thinking in tutto il team, il che contribuisce a realizzare le fondamenta per un&#8217;efficace pattern library. Ho cominciato ad usare questo esercizio per fare il kick off di ogni progetto di pattern library su cui lavoro: avrei solo voluto scoprirlo prima. Dopo tutto, a chi non piace giocare con forbici e carta?<\/p>\n<p>Illustrazioni: {carlok}<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Quando si pensa in termini di pagine, potrebbe sembrare naturale che il design dei componenti e il design della pagina viaggino in tandem. Ma questo pu\u00f2 indebolire l&#8217;abilit\u00e0 di un team di dare nomi ai componenti e di creare un vocabolario condiviso. Con i colleghi di Clearleft, Charlotte Jackson ha sviluppato un esercizio per aiutare tutti ad adottare il pattern thinking. Ci guida attraverso il processo passo dopo passo, incoraggiandoci ad allontanarci dai nostri monitor e a concentrarci prima sul pensiero, sul linguaggio e sull&#8217;approccio.<\/p>\n","protected":false},"author":818,"featured_media":7000803,"comment_status":"open","ping_status":"open","template":"","categories":[149,8,278],"tags":[],"coauthors":[481],"class_list":["post-638","article","type-article","status-publish","has-post-thumbnail","hentry","category-numero-132-12-luglio-2016","category-processo-procedimenti","category-workflow-tools"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/users\/818"}],"replies":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/comments?post=638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media\/7000803"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=638"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}