Etichettare le cose è facile. Denominare le cose è difficile. Tante volte, facciamo affidamento sulla terminologia adiacente o su ipotesi inespresse per fornire una distinzione tecnica senza fornire una distinzione chiara e categorica. Una citazione da un contesto non correlato esemplifica questo abbastanza bene:
The following note has made a deal of fun in London: ‘Dear Sir: How
comes it that I have had no proofs of Love from you since last
Saturday? I have waited with the utmost impatience.’ Signed, Charlotte
Burry.
But the fun vanishes when the reader learns that Lady Charlotte Burry
had a novel entitled Love in press, and that the note was to her
printer.
- Kazlitt Arvine, The Cyclopaedia of Anecdotes of Literature and the Fine Arts, 1853
La fonte del post proviene da Futility Closet
Tautologia
Tra varie forme e applicazioni, la tautologia si riferisce all'uso ridondante: sangue rosso, tipo di tipo, tipo di classe. Non c'è alcun chiarimento usando quel particolare descrittore.
Tassonomia
La tassonomia è uno schema che include un insieme di regole strutturate per descrivere le cose. Questo schema potrebbe essere orientato verso le relazioni (genitore-figlio, specializzazione-generalizzazione, composizione dell'eredità), ma può essere organizzato attorno ad altre strategie di discernimento. Quanto prima nella serie di regole, tanto meno specifica la regola, con le regole successive che forniscono distinzione in quella che altrimenti sarebbe una sottile differenza. Descrive un processo per la classificazione. Un modello potrebbe essere l'incarnazione di una tassonomia.
Categorizzazione
Questo è il processo di etichettatura dell'intero qualcosa per poterlo conteggiare o misurare. Il soggetto soddisfa un grado di somiglianza, e manca di ogni caratteristica squalificante che possiamo chiamare lo stesso.
Caratterizzazione
Queste sono le singole caratteristiche o caratteristiche di una cosa. Questo può includere qualità di personalità o comportamento. Oppure possono essere proprietà fisiche.
Per il problema in questione, per citare il codice pulito di zio Bob:
The name of a variable, function, or class, should answer all the big
questions. It should tell you why it exists, what it does, and how it
is used. If a name requires a comment, then the name does not reveal
its intent.
Martin, Robert C. (2008-08-01). Pulisci codice: un manuale di abilità software agile (pagina 18). Pearson Education (USA). Edizione Kindle.
Quello che abbiamo di fronte è una mappa mentale (pg 25 di Clean Code). La soluzione specifica qualcosa che è probabilmente un po 'diverso da ciò che rappresenta effettivamente nel dominio vivente.
Per ovviare a questo, dobbiamo caratterizzare ulteriormente le cose prima di applicare loro una categoria. Quali sono i comportamenti, le relazioni o le proprietà delle cose? Non descriverlo in termini di database o design in cui si trova, dato che sta già contribuendo alla difficoltà di chiarezza, ma come si descriverebbero in termini di interazioni o attività specifiche che svolgono?
Questo è ciò che è chiaro:
-
Azienda : un'azienda coinvolta nel settore a cui partecipa
volte come fornitore e come cliente
-
Fornitore : fornisce qualcosa a un cliente; un venditore è anche ogni fornitore può o meno avere un'affiliazione con un altro fornitore
-
Modello fornitore : in che modo un fornitore è organizzato, affiliato e
opera; esempi includono indipendenti, autorizzati, in franchising
-
Affiliazione fornitore : relazione esplicita con il fornitore che descrive due fornitori che sono organizzati, affiliati o operano in cooperazione tra loro; ogni affiliazione avrà un modello fornitore che descriva la natura della relazione
-
Cliente : acquirente di un bene o servizio o un privilegio di un fornitore
-
Modello cliente : ????
-
Affiliazione cliente : ???
-
Acquista : un record di vendita tra un fornitore e un cliente
-
Buono vendibile : la risorsa o l'articolo distribuito e venduto da un fornitore e acquistato da un cliente
-
Servizio vendibile : un'attività eseguita da un fornitore per un cliente
-
Privilegi vendibili : concedere un'opportunità legale a un cliente di utilizzare qualcosa o eseguire un'attività che è normalmente limitata dal diritto legale del fornitore