<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Predicati con stile	</title>
	<atom:link href="http://matteo.vaccari.name/blog/archives/50/feed" rel="self" type="application/rss+xml" />
	<link>http://matteo.vaccari.name/blog/archives/50</link>
	<description>Extreme enthusiasm</description>
	<lastBuildDate>
	Mon, 25 Feb 2019 15:18:16 +0000	</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.1</generator>
			<item>
				<title>
				By: Matteo Vaccari &#187; Blog Archive &#187; Another look at the anti-IF campaign				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-69987</link>
		<dc:creator><![CDATA[Matteo Vaccari &#187; Blog Archive &#187; Another look at the anti-IF campaign]]></dc:creator>
		<pubDate>Fri, 19 Sep 2008 11:17:08 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-69987</guid>
					<description><![CDATA[[...] first form, because they prefer operational reasoning over reasoning over boolean values (see the comments to a previous post on this subject). I much prefer the first, for one thing because it&#8217;s shorter. Concision is power. And I try [...]]]></description>
		<content:encoded><![CDATA[<p>[&#8230;] first form, because they prefer operational reasoning over reasoning over boolean values (see the comments to a previous post on this subject). I much prefer the first, for one thing because it&#8217;s shorter. Concision is power. And I try [&#8230;]</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: matteo				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-18544</link>
		<dc:creator><![CDATA[matteo]]></dc:creator>
		<pubDate>Wed, 07 Nov 2007 06:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-18544</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Non è questo il punto.  Il punto è prendere un programma e migliorarlo in maniera graduale e sicura.  E&#8217; senz&#8217;altro vero che Java è rimasto indietro rispetto a tante alternative, ma qualsiasi linguaggio tu usi ti ritroverai a guardare codice pasticciato, e avrai bisogno del refactoring.</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: jussx				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-18527</link>
		<dc:creator><![CDATA[jussx]]></dc:creator>
		<pubDate>Tue, 06 Nov 2007 21:55:15 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-18527</guid>
					<description><![CDATA[Non mi piace in tutte le sue forme... Preferisco i linguaggi di programmazione funzionale SML, OCAML. Anni luce avanti rispetto a sta merda]]></description>
		<content:encoded><![CDATA[<p>Non mi piace in tutte le sue forme&#8230; Preferisco i linguaggi di programmazione funzionale SML, OCAML. Anni luce avanti rispetto a sta merda</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Enri				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-174</link>
		<dc:creator><![CDATA[Enri]]></dc:creator>
		<pubDate>Wed, 18 Oct 2006 12:28:01 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-174</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Non posso che essere d&#8217;accordo con Matteo.</p>
<p>Il codice finale rispetto a quello iniziale è più comprensibile. Senza alcun rumore sintattico balza subito all&#8217;occhio qual è l&#8217;aspetto fondamentale dell&#8217;implementazione: “il titolo è valido se non è nullo e la sua lunghezza è maggiore di zero.”. </p>
<p>L&#8217;intelligenza visiva è infatti la più istintiva (è la prima che si sviluppa nei bambini), al contrario dell&#8217;intelligenza logica, che è quella che si sviluppa più tardi di tutte e che richiede il maggiore esercizio ed allenamento.<br />
Avere un if-then-else crea (nell&#8217;esempio di sopra) un disturbo visivo da ciò che invece è fondamentale, annegando il cuore del concetto dentro dettagli ed orpelli sintattici che velano il reale significato dell&#8217;implementazione, anche solo visualmente. E&#8217; un po&#8217; quanto avviene con un solitario: per esaltare le caratteristiche del diamante, lo si fa svettare, da solo, su una striscia d&#8217;oro.</p>
<p>Da qui si può prendere spunto per parlare, su altra scala, del paradigma ad oggetti, che ha tra i suoi punti di forza proprio lo spostare la complessità logico/procedurale verso una complessità strutturale che permette una rappresentazione per diagrammi più maneggevole e su cui si ragiona con molta più facilità.</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: matteo				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-151</link>
		<dc:creator><![CDATA[matteo]]></dc:creator>
		<pubDate>Sun, 15 Oct 2006 17:27:34 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-151</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Renzo, siamo di fronte a una differenza fondamentale&#8230; per me usare if-then-else in questo caso è anatema.  Vorresti dirmi che in generale, secondo te, è più chiaro</p>
<p> if (A) {<br />
   return true;<br />
 } else {<br />
   return false;<br />
 }</p>
<p>rispetto a</p>
<p>  return A;</p>
<p>???</p>
<p>Sono esterrefatto.  Ammetto che io ho passato molto tempo a ragionare su espressioni booleane.  Ma non accetterei codice come quello.  Mi dà semplicemente l&#8217;idea che l&#8217;autore non sa ragionare sulle espressioni booleane.  Lo rifattorizzo senza neanche battere ciglio.</p>
<p>In generale, bisogna cercare di togliere i cicli e le decisioni dal codice.  L&#8217;ideale è codice privo di if e while, una semplice sequenza di operazioni (semplici).  Usare un if quando è sufficiente una semplice espressione è per me impensabile.</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Fabio				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-146</link>
		<dc:creator><![CDATA[Fabio]]></dc:creator>
		<pubDate>Fri, 13 Oct 2006 19:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-146</guid>
					<description><![CDATA[Grazie Matteo,
esempio tanto semplice quanto inconfutabile :)]]></description>
		<content:encoded><![CDATA[<p>Grazie Matteo,<br />
esempio tanto semplice quanto inconfutabile :)</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Renzo				</title>
				<link>http://matteo.vaccari.name/blog/archives/50/comment-page-1#comment-143</link>
		<dc:creator><![CDATA[Renzo]]></dc:creator>
		<pubDate>Thu, 12 Oct 2006 17:24:47 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=50#comment-143</guid>
					<description><![CDATA[Mmmh, personalmente obbietto. La riduzione delle righe di codice non rende, mediamente, piu&#039; parlante il codice. E questo qui sopra ne e&#039; un esempio: prova a postare semplicmente il primo step e l&#039;ultimo in qualche ML e chiedi se secondo loro la chiarezza e&#039; migliorata. Per me l&#039;ultimo step e&#039; semplicemente illeggibile: mi richiede un paio di minuti di concentrazione. Il primo potrebbe non essere un capolavoro (io preferisco quello qui sotto) ma e&#039; immediato. Quindi dal mio punto di vista il refactoring va semplicemente rovesciato :)

public boolean isTitleValid() {
 boolean result = true;
  if((title==null) &#124;&#124; &quot;&quot;.equals(title)) {
   result = false;
  }
  return result;
}]]></description>
		<content:encoded><![CDATA[<p>Mmmh, personalmente obbietto. La riduzione delle righe di codice non rende, mediamente, piu&#8217; parlante il codice. E questo qui sopra ne e&#8217; un esempio: prova a postare semplicmente il primo step e l&#8217;ultimo in qualche ML e chiedi se secondo loro la chiarezza e&#8217; migliorata. Per me l&#8217;ultimo step e&#8217; semplicemente illeggibile: mi richiede un paio di minuti di concentrazione. Il primo potrebbe non essere un capolavoro (io preferisco quello qui sotto) ma e&#8217; immediato. Quindi dal mio punto di vista il refactoring va semplicemente rovesciato :)</p>
<p>public boolean isTitleValid() {<br />
 boolean result = true;<br />
  if((title==null) || &#8220;&#8221;.equals(title)) {<br />
   result = false;<br />
  }<br />
  return result;<br />
}</p>
]]></content:encoded>
						</item>
			</channel>
</rss>
