Eheh :) Pero', ripensandoci... analizzando bene la situazione la violazione del contratto compareTo / equals e' sicuramente grave ma a mio parere ancora di piu' il fatto che stavo infilando della logica di presentazione in un oggetto di business. Un accoppiamento fra presentazione e dominio e' una delle cose piu stupide che puoi fare se vuoi avere un buon design.
Introduce infatti certamente tre su quattro dei sintomi di un design sbagliato: - *fragilita': a fronte di un cambiamento il sistema si rompe in posti inaspettati* (i..e. cambio giustamente la compareTo perche' la peer review di Simon mostra che ho fatto una minchiata col contratto ma le console cominciano a visualizzare informazioni a muzzo) - *rigidita': a fronte di un cambiamento devo cambiare il sistema in posti multipli * (i.e. cambio giustamente la compareTo ma poi devo cambiare la console UI e poi la Web UI che pero' poi mi richiede di cambiare le API che mi richiedono di cambiare la logica di composizione, sul server ma anche sul thin client, ecc.ecc.) - *viscosita': a fronte di un cambiamento sara' piu' facile mettere un hack che mettere in piedi il design corretto* (i.e. cambio giustamente la compareTo ma poi faccio piu' in fretta sbattere qua' e la' sort() a muzzo invece di mettere la logica nel posto giusto). Qui trovate il paper originale di Zio Bob sull'argomento se vi interessa, la trovo sempre molto attuale: https://fi.ort.edu.uy/innovaportal/file/2032/1/design_principles.pdf Disponibile per un talk se serve :) ma devo organizzare il viaggio dall'ESTERO!!! (sempre se ci rimangano gli aerei qui in UK) +coesione e -coupling per tutti!!! Ciao, Bruno p.s. Intenzionalmente non ho divagato sul quarto principio cosi magari chi non li conosce ha la spinta di curiosita' per leggersi il paper :) On Wed, 27 Mar 2019 at 16:53, Angelo Marlo [email protected] [it-torino-java-jug] <[email protected]> wrote: > > > Ciao, > questi errori in genere si fanno quando si lavora TROPPO all'estero ;-) > > Saluti > > Il giorno lun 25 mar 2019 alle ore 17:30 bruno bossola [email protected] > [it-torino-java-jug] <[email protected]> ha scritto: > >> >> >> Hai implementato `compareTo() == 0` diversamente da `equals()`? >> >> >>> Ovviamwnte si, contratto violato... ero cosi' preso da fare le cose >> belle ordinate a video che mi sono perso le basi! L'ho detto, mi sembra, >> che e' stato il momento dumb della settimana :) >> >> Ciao, >> >> Bruno >> >> >
