Codice Odore 40 — DTO

I DTO sono ampiamente utilizzati e "risolvono" problemi reali, vero?

I problemi

  • Oggetto anemico
  • Dati incoerenti
  • Logica duplicata
  • Struttura duplicata
  • Classe inquinante
  • Violazione dell'occultamento delle informazioni
  • Codice ripetuto tra mutatori , accessor, serializzatori , parser
  • Effetto a catena
  • Integrità dei dati
  1. Trasferire dati anemici su array.
  2. Usa oggetti aziendali reali.
  3. Se vogliamo trasferire oggetti parziali: utilizzare proxy o oggetti nulli per interrompere il grafo di riferimento.

Sbagliato

Destra

Rilevamento

Possiamo usare gli stessi rilevatori di oggetti anemici.

Possiamo verificare la presenza di classi anemiche senza comportamento degli oggetti business (rimozione di serializzazioni, costruttori, mutatori, ecc.).

Tag

  • Anemico

I DTO sono uno strumento e una pratica consolidata in alcune lingue. Dovremmo usarli con cura e responsabilità.

Se abbiamo bisogno di smontare i nostri oggetti per mandarli via dai nostri regni, dobbiamo essere estremamente attenti. Poiché gli oggetti smembrati non hanno considerazioni sull'integrità.

Il suo autore ci avverte del suo effettivo abuso.

Relazioni

Codice Odore 01 — Modelli Anemici Codice Odore 13 — Costruttori Vuoti Codice Odore 20 — Ottimizzazione Prematura Codice Odore 28 — Setter

Ulteriori informazioni

Gli odori migliori sono qualcosa che è facile da individuare e il più delle volte ti portano a problemi davvero interessanti. Le classi di dati (classi con tutti i dati e nessun comportamento) ne sono un buon esempio. Li guardi e ti chiedi quale comportamento dovrebbe essere in questa classe.

Martin Fowler

Ingegneria del software grandi citazioni

Questo articolo fa parte della serie CodeSmell.

Come trovare le parti puzzolenti del tuo codice

Suggested posts

Conversazioni pericolose

Conversazioni pericolose

Se vogliamo continuare a prosperare su questo pianeta, dovremo avere conversazioni pericolose. Quelli che mettono in discussione ciò che abbiamo fatto, ciò che stiamo facendo e ciò che attualmente intendiamo continuare a fare (o stiamo pianificando di fare).

Raccolta di OSINT per la caccia alle minacce

Raccolta di OSINT per la caccia alle minacce

Ehi, cibernetici! Bentornati alla serie OSINT per la caccia alle minacce. Nel primo articolo, ti ho fornito una panoramica di OSINT e della sua importanza nella caccia alle minacce.

Related posts

L'arte è sempre apolitica?

L'arte è sempre apolitica?

Ieri abbiamo chiuso le porte dell'Eurovision Song Contest di quest'anno con un gran finale scintillante e caotico in cui la cantante svedese Loreen ha portato a casa il trofeo, diventando la prima donna a vincere due volte e riportando la corona alla Svezia 50 anni dopo che gli ABBA hanno vinto la competizione con "Waterloo". Hanno continuato a diventare uno dei più grandi artisti nel canone della musica pop.

Il primo libro per sballarsi di un bambino

Il primo libro per sballarsi di un bambino

(Attenzione: questa è satira, destinata ad essere allegramente sovversiva, sicuramente non per bambini) Hai visto tua madre e tuo padre nascondersi in cucina e fumare quelle sigarette puzzolenti. Ti dicono.

Ricerca di informazioni sui nomi di dominio

Un estratto da Small, Sharp Software Tools di Brian P. Hogan

Ricerca di informazioni sui nomi di dominio

Quando fai una richiesta a facebook.com, il tuo computer cerca il nome di dominio per tradurre quel nome di dominio in un indirizzo IP in modo che il tuo computer possa effettuare quella connessione.

La rivoluzione sul posto di lavoro: i migliori esperti discutono di lavoro ibrido e remoto

La rivoluzione sul posto di lavoro: i migliori esperti discutono di lavoro ibrido e remoto

Nel panorama aziendale in rapida evoluzione di oggi, il concetto di lavoro ibrido e remoto ha acquisito uno slancio senza precedenti. Mentre le aziende continuano ad adattarsi alle mutevoli esigenze e aspettative dei propri dipendenti, esperti di vari settori si sono riuniti per discutere i vantaggi, le sfide e il futuro di questo modo di lavorare trasformativo.