kindle_highlights 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1397 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"
4
+ xmlns:og="http://opengraphprotocol.org/schema/"
5
+ xmlns:fb="http://www.facebook.com/2008/fbml"
6
+ xml:lang="en-US" lang="en-US">
7
+ <head>
8
+ <title>Amazon Kindle: Your Highlights</title>
9
+
10
+ <link href="https://images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/amazonJQ/amazonJQ-combined-coreCSS-59291._V245478743_.css" media="screen" rel="stylesheet" type="text/css" />
11
+ <link href="https://images-na.ssl-images-amazon.com/images/G/01/reading/stylesheets/site._V377639447_.css" media="screen" rel="stylesheet" type="text/css" />
12
+
13
+ <script>
14
+ var amznJQ;
15
+ (function() {
16
+ function f(x) {return function(){x.push(arguments);}}
17
+ function ch(y) {return String.fromCharCode(y);}
18
+ var a=[],c=[],cs=[],d=[],l=[],o=[],s=[],p=[],t=[];
19
+ amznJQ={
20
+ _timesliceJS: false,
21
+ _a:a,_c:c,_cs:cs,_d:d,_l:l,_o:o,_s:s,_pl:p,
22
+ addLogical:f(l),
23
+ addStyle:f(s),
24
+ addPL:f(p),
25
+ available:f(a),
26
+ chars:{EOL:ch(10), SQUOTE:ch(39), DQUOTE:ch(34), BACKSLASH:ch(92), YEN:ch(165)},
27
+ completedStage:f(cs),
28
+ declareAvailable:f(d),
29
+ onCompletion:f(c),
30
+ onReady:f(o),
31
+ strings:{}
32
+ };
33
+ }());
34
+ </script>
35
+ </head>
36
+ <body>
37
+ <div id="wholePage">
38
+
39
+
40
+ <div id="header" class="cleardiv">
41
+ <div class="userBar">
42
+ <div class="userNav">
43
+
44
+ <div class="greetingNonHover">
45
+ Hello, <a href="/profile/Gaurav/5112906">Gaurav</a>. <img alt="Link" src="https://images-na.ssl-images-amazon.com/images/G/01/reading/images/linkPopOver._V379390863_.png" />
46
+ </div>
47
+ <div class="greeting">
48
+ <div class="box box5_5_1_ffffff_d5deeb_none">
49
+ <div class="partWrapper">
50
+ <div class="top">
51
+ <div class="tl tl_box5_5_1_ffffff_d5deeb_none"></div>
52
+ <div class="tc tc_box5_5_1_ffffff_d5deeb_none"></div>
53
+ <div class="tr tr_box5_5_1_ffffff_d5deeb_none"></div>
54
+ </div>
55
+ <div class="inner inner_box5_5_1_ffffff_d5deeb_none cleardiv">
56
+
57
+ Hello, <a href="/profile/Gaurav/5112906">Gaurav</a>. <img alt="Link" src="https://images-na.ssl-images-amazon.com/images/G/01/reading/images/linkPopOver._V379390863_.png" />
58
+
59
+ </div>
60
+ <div class="bottom">
61
+ <div class="bl bl_box5_5_1_ffffff_d5deeb_none"></div>
62
+ <div class="bc bc_box5_5_1_ffffff_d5deeb_none"></div>
63
+ <div class="br br_box5_5_1_ffffff_d5deeb_none"></div>
64
+ </div>
65
+ </div>
66
+ <div class="clear"></div>
67
+ </div>
68
+ </div>
69
+ <div class="actions">
70
+ <div class="box box5_5_1_ffffff_d5deeb_none">
71
+ <div class="partWrapper">
72
+ <div class="top">
73
+ <div class="tl tl_box5_5_1_ffffff_d5deeb_none"></div>
74
+ <div class="tc tc_box5_5_1_ffffff_d5deeb_none"></div>
75
+ <div class="tr straight straight_box5_5_1_ffffff_d5deeb_none tr_box5_5_1_ffffff_d5deeb_none"></div>
76
+ </div>
77
+ <div class="inner inner_box5_5_1_ffffff_d5deeb_none cleardiv">
78
+
79
+ <ul>
80
+
81
+ <li><a href="/profile/Gaurav/5112906">Your profile</a></li>
82
+ <li><a href="/home/preferences">Preferences</a> </li>
83
+
84
+
85
+ <li><a href="/faq">FAQ</a></li>
86
+
87
+ <li><a href="/feedback/popup" class="feedback noUnderline" title="Leave Us Feedback">Leave us feedback</a></li>
88
+ <li><a href="https://www.amazon.com/manageyourkindle" title="Manage Your Kindle">Manage Your Kindle</a></li>
89
+
90
+ <li><a href="https://kindle.amazon.com/logout" class="signInOut">Sign out</a></li>
91
+
92
+ </ul>
93
+
94
+ </div>
95
+ <div class="bottom">
96
+ <div class="bl bl_box5_5_1_ffffff_d5deeb_none"></div>
97
+ <div class="bc bc_box5_5_1_ffffff_d5deeb_none"></div>
98
+ <div class="br br_box5_5_1_ffffff_d5deeb_none"></div>
99
+ </div>
100
+ </div>
101
+ <div class="clear"></div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ <div class="logo">
107
+ <a href="https://kindle.amazon.com/"><img alt="amazon kindle" class="logoInnards" src="https://images-na.ssl-images-amazon.com/images/G/01/reading/images/logo_kindle2._V379391740_.png" title="" /></a>
108
+ </div>
109
+ <div class="search">
110
+ <form action="/search" method="get">
111
+ <fieldset>
112
+ <input id="keywords" name="keywords" type="text" />
113
+ <input alt="Search" class="searchGoBtn" src="https://images-na.ssl-images-amazon.com/images/G/01/reading/images/btn-search._V379390881_.png" title="Go" type="image" />
114
+ </fieldset>
115
+ </form>
116
+ </div>
117
+ <div class="mainNav">
118
+ <ul>
119
+ <li><a href="/your_reading">Your Books</a></li>
120
+ <li><a href="/refresh">Daily Review</a></li>
121
+ <li><a href="/your_highlights">Your Highlights</a></li>
122
+ <li><a href="/most_popular">Most Popular</a></li>
123
+ </ul>
124
+ </div>
125
+ </div>
126
+
127
+
128
+
129
+ <div id="overallContent">
130
+ <div id="your_highlightsWrapper">
131
+ <div id="singleColumnContent">
132
+
133
+ <h1>Your Highlights <span class="explanation">(Most recently updated first)</span></h1>
134
+
135
+ <div id="allHighlightedBooks">
136
+ <div id="B00BBDLIME_200" class="bookMain yourHighlightsHeader">
137
+ <span class="title"><a href="/work/smalltalk-best-practice-patterns-kent-ebook/B000B13MX0/B00BBDLIME">Smalltalk Best Practice Patterns</a></span>
138
+
139
+
140
+ <span class="author">
141
+ by Kent Beck
142
+ </span>
143
+
144
+
145
+ <div class="yourHighlightsStats">
146
+ <div>You have <span class="boldText highlightCountB00BBDLIME">52</span> highlighted passages</div><div>You have <span class="boldText noteCountB00BBDLIME">0</span> notes</div>
147
+ </div>
148
+
149
+ <div class="lastHighlighted">Last annotated on March 23, 2014</div>
150
+
151
+
152
+
153
+
154
+ </div>
155
+
156
+ <div class="highlightRow yourHighlight">
157
+
158
+ <span class="highlight">If you are trying to explain why code should be different, it is much more satisfying for you and the learner to be able to discuss the pattern and how it applies to the particular situation.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=173" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;173</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3NX6ONFLG4OL2" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
159
+
160
+
161
+
162
+
163
+ <p class="editNote " id="editNotea3NX6ONFLG4OL2_">
164
+ <span class="hidden asin">B00BBDLIME</span>
165
+ <span class="hidden annotation_id"></span>
166
+ <span class="hidden end_location">26038</span>
167
+ <span class="yourNote hidden">
168
+ Note:
169
+ </span>
170
+ <span class="noteContent"></span>
171
+
172
+
173
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3NX6ONFLG4OL2&amp;end_location=26038&amp;note_area_id=editNotea3NX6ONFLG4OL2_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
174
+
175
+ </p>
176
+
177
+
178
+ </div>
179
+ <div class="highlightRow yourHighlight">
180
+
181
+ <span class="highlight">I’m constantly amazed at how even a little help cleaning up small problems reveals the source and solution of much bigger problems.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=239" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;239</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1L44X57JXAWP6" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
182
+
183
+
184
+
185
+
186
+ <p class="editNote " id="editNotea1L44X57JXAWP6_">
187
+ <span class="hidden asin">B00BBDLIME</span>
188
+ <span class="hidden annotation_id"></span>
189
+ <span class="hidden end_location">35876</span>
190
+ <span class="yourNote hidden">
191
+ Note:
192
+ </span>
193
+ <span class="noteContent"></span>
194
+
195
+
196
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1L44X57JXAWP6&amp;end_location=35876&amp;note_area_id=editNotea1L44X57JXAWP6_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
197
+
198
+ </p>
199
+
200
+
201
+ </div>
202
+ <div class="highlightRow yourHighlight">
203
+
204
+ <span class="highlight">If you’re programming along, doing nicely, and all of a sudden your program gets balky, makes things hard for you, it’s talking. It’s telling you there is something important missing.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=242" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;242</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a9XPNXHEYQBQR" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
205
+
206
+
207
+
208
+
209
+ <p class="editNote " id="editNotea9XPNXHEYQBQR_">
210
+ <span class="hidden asin">B00BBDLIME</span>
211
+ <span class="hidden annotation_id"></span>
212
+ <span class="hidden end_location">36430</span>
213
+ <span class="yourNote hidden">
214
+ Note:
215
+ </span>
216
+ <span class="noteContent"></span>
217
+
218
+
219
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a9XPNXHEYQBQR&amp;end_location=36430&amp;note_area_id=editNotea9XPNXHEYQBQR_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
220
+
221
+ </p>
222
+
223
+
224
+ </div>
225
+ <div class="highlightRow yourHighlight">
226
+
227
+ <span class="highlight">“It looks like we need to put this over here.” “We can’t do that. That’s not how it works.” “Wait a minute. The code would be easier to read and more flexible if we did it this way.” “But that’s not what that object does.” “Let’s just do it and see if we like it.” ...murmel, murmel, murmel... “Hey, that is better.” I can’t begin to count how many times I’ve been through this scenario.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=248" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;248</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2WISCBALO453F" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
228
+
229
+
230
+
231
+
232
+ <p class="editNote " id="editNotea2WISCBALO453F_">
233
+ <span class="hidden asin">B00BBDLIME</span>
234
+ <span class="hidden annotation_id"></span>
235
+ <span class="hidden end_location">38043</span>
236
+ <span class="yourNote hidden">
237
+ Note:
238
+ </span>
239
+ <span class="noteContent"></span>
240
+
241
+
242
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2WISCBALO453F&amp;end_location=38043&amp;note_area_id=editNotea2WISCBALO453F_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
243
+
244
+ </p>
245
+
246
+
247
+ </div>
248
+ <div class="highlightRow yourHighlight">
249
+
250
+ <span class="highlight">put two rates of change together. Don’t have part of a method that changes in every subclass with parts that don’t change. Don’t have some instance variables whose values change every second in the same object with instance variables whose values change once a month. Don’t have a collection where some elements are added and removed every second and some elements are added and removed once a month.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=321" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;321</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1CG3DZ6U3XFMS" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
251
+
252
+
253
+
254
+
255
+ <p class="editNote " id="editNotea1CG3DZ6U3XFMS_">
256
+ <span class="hidden asin">B00BBDLIME</span>
257
+ <span class="hidden annotation_id"></span>
258
+ <span class="hidden end_location">48482</span>
259
+ <span class="yourNote hidden">
260
+ Note:
261
+ </span>
262
+ <span class="noteContent"></span>
263
+
264
+
265
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1CG3DZ6U3XFMS&amp;end_location=48482&amp;note_area_id=editNotea1CG3DZ6U3XFMS_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
266
+
267
+ </p>
268
+
269
+
270
+ </div>
271
+ <div class="highlightRow yourHighlight">
272
+
273
+ <span class="highlight">The problems in the construction of objects are universal. You have to name classes, relate classes via inheritance and delegation, relate methods in the same class and different classes, name variables, and so on. Patterns record these problems and how to approach solving them.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=405" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;405</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2MA0FTAS2MZ9G" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
274
+
275
+
276
+
277
+
278
+ <p class="editNote " id="editNotea2MA0FTAS2MZ9G_">
279
+ <span class="hidden asin">B00BBDLIME</span>
280
+ <span class="hidden annotation_id"></span>
281
+ <span class="hidden end_location">60984</span>
282
+ <span class="yourNote hidden">
283
+ Note:
284
+ </span>
285
+ <span class="noteContent"></span>
286
+
287
+
288
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2MA0FTAS2MZ9G&amp;end_location=60984&amp;note_area_id=editNotea2MA0FTAS2MZ9G_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
289
+
290
+ </p>
291
+
292
+
293
+ </div>
294
+ <div class="highlightRow yourHighlight">
295
+
296
+ <span class="highlight">Keep all of the operations in a method at the same level of abstraction.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=518" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;518</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1DOVT20AXM5FJ" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
297
+
298
+
299
+
300
+
301
+ <p class="editNote " id="editNotea1DOVT20AXM5FJ_">
302
+ <span class="hidden asin">B00BBDLIME</span>
303
+ <span class="hidden annotation_id"></span>
304
+ <span class="hidden end_location">77655</span>
305
+ <span class="yourNote hidden">
306
+ Note:
307
+ </span>
308
+ <span class="noteContent"></span>
309
+
310
+
311
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1DOVT20AXM5FJ&amp;end_location=77655&amp;note_area_id=editNotea1DOVT20AXM5FJ_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
312
+
313
+ </p>
314
+
315
+
316
+ </div>
317
+ <div class="highlightRow yourHighlight">
318
+
319
+ <span class="highlight">Any time you are sending two or more messages from one object to another in a single method, you may be able to create a Composed Method in the receiver that combines those messages.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=529" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;529</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3RZPF8681GLVD" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
320
+
321
+
322
+
323
+
324
+ <p class="editNote " id="editNotea3RZPF8681GLVD_">
325
+ <span class="hidden asin">B00BBDLIME</span>
326
+ <span class="hidden annotation_id"></span>
327
+ <span class="hidden end_location">79417</span>
328
+ <span class="yourNote hidden">
329
+ Note:
330
+ </span>
331
+ <span class="noteContent"></span>
332
+
333
+
334
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3RZPF8681GLVD&amp;end_location=79417&amp;note_area_id=editNotea3RZPF8681GLVD_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
335
+
336
+ </p>
337
+
338
+
339
+ </div>
340
+ <div class="highlightRow yourHighlight">
341
+
342
+ <span class="highlight">Code a single method that sets all the variables. Preface its name with “set,” then the names of the variables.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=594" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;594</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3QJOCKNM6XGDC" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
343
+
344
+
345
+
346
+
347
+ <p class="editNote " id="editNotea3QJOCKNM6XGDC_">
348
+ <span class="hidden asin">B00BBDLIME</span>
349
+ <span class="hidden annotation_id"></span>
350
+ <span class="hidden end_location">89128</span>
351
+ <span class="yourNote hidden">
352
+ Note:
353
+ </span>
354
+ <span class="noteContent"></span>
355
+
356
+
357
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3QJOCKNM6XGDC&amp;end_location=89128&amp;note_area_id=editNotea3QJOCKNM6XGDC_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
358
+
359
+ </p>
360
+
361
+
362
+ </div>
363
+ <div class="highlightRow yourHighlight">
364
+
365
+ <span class="highlight">Represent object creation as a message to one of the arguments to the Constructor Method. Add no more than three of these Shortcut Constructor Methods per system you develop.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=623" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;623</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2WRDQ0PBUH57R" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
366
+
367
+
368
+
369
+
370
+ <p class="editNote " id="editNotea2WRDQ0PBUH57R_">
371
+ <span class="hidden asin">B00BBDLIME</span>
372
+ <span class="hidden annotation_id"></span>
373
+ <span class="hidden end_location">93564</span>
374
+ <span class="yourNote hidden">
375
+ Note:
376
+ </span>
377
+ <span class="noteContent"></span>
378
+
379
+
380
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2WRDQ0PBUH57R&amp;end_location=93564&amp;note_area_id=editNotea2WRDQ0PBUH57R_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
381
+
382
+ </p>
383
+
384
+
385
+ </div>
386
+ <div class="highlightRow yourHighlight">
387
+
388
+ <span class="highlight">Provide a method in the object to be converted that converts to the new object. Name the method by prepending “as” to the class of the object returned. Here are some examples. Notice that the object returned has the same protocol as the receiver (Sets act like Collections, Floats act like Numbers). Collection&gt;&gt;asSet Number&gt;&gt;asFloat</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=664" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;664</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a22WCGBUQNFHE7" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
389
+
390
+
391
+
392
+
393
+ <p class="editNote " id="editNotea22WCGBUQNFHE7_">
394
+ <span class="hidden asin">B00BBDLIME</span>
395
+ <span class="hidden annotation_id"></span>
396
+ <span class="hidden end_location">100130</span>
397
+ <span class="yourNote hidden">
398
+ Note:
399
+ </span>
400
+ <span class="noteContent"></span>
401
+
402
+
403
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a22WCGBUQNFHE7&amp;end_location=100130&amp;note_area_id=editNotea22WCGBUQNFHE7_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
404
+
405
+ </p>
406
+
407
+
408
+ </div>
409
+ <div class="highlightRow yourHighlight">
410
+
411
+ <span class="highlight">This solution risks cluttering common sources of conversion like Strings and Numbers with protocol that is irrelevant to their primary mission. The Visual Smalltalk implementation of String has 36 as... methods, half of which return objects with completely different protocols. I have seen applications where String has been “enhanced” with more than 100 Conversion Methods. • Make a Constructor Method that takes the object to be converted as an argument. For example, Date class&gt;&gt;fromString: is a Converter Constructor Method. It takes the String to be converted as an argument and returns a Date.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=678" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;678</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2HAMFWCRSCRVH" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
412
+
413
+
414
+
415
+
416
+ <p class="editNote " id="editNotea2HAMFWCRSCRVH_">
417
+ <span class="hidden asin">B00BBDLIME</span>
418
+ <span class="hidden annotation_id"></span>
419
+ <span class="hidden end_location">102466</span>
420
+ <span class="yourNote hidden">
421
+ Note:
422
+ </span>
423
+ <span class="noteContent"></span>
424
+
425
+
426
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2HAMFWCRSCRVH&amp;end_location=102466&amp;note_area_id=editNotea2HAMFWCRSCRVH_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
427
+
428
+ </p>
429
+
430
+
431
+ </div>
432
+ <div class="highlightRow yourHighlight">
433
+
434
+ <span class="highlight">Good code has a rhythm that makes it easy to understand. Code that breaks the rhythm is harder to read and understand.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=744" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;744</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1EHXU7GUDSEIR" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
435
+
436
+
437
+
438
+
439
+ <p class="editNote " id="editNotea1EHXU7GUDSEIR_">
440
+ <span class="hidden asin">B00BBDLIME</span>
441
+ <span class="hidden annotation_id"></span>
442
+ <span class="hidden end_location">111664</span>
443
+ <span class="yourNote hidden">
444
+ Note:
445
+ </span>
446
+ <span class="noteContent"></span>
447
+
448
+
449
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1EHXU7GUDSEIR&amp;end_location=111664&amp;note_area_id=editNotea1EHXU7GUDSEIR_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
450
+
451
+ </p>
452
+
453
+
454
+ </div>
455
+ <div class="highlightRow yourHighlight">
456
+
457
+ <span class="highlight">The behavior at the center of a complex system is often complicated. That complexity is generally not recognized at first, so the behavior is represented as a single method. Gradually that method grows and grows, gaining more lines, more parameters, and more temporary variables, until it is a monstrous mess. Far from improving communications, applying Composed Method to such a method only obscures the situation. Since all the parts of such a method generally need all the temporary variables and parameters, any piece of the method you break off requires six or eight parameters. The solution is to create an object to represent an invocation of the method and use the shared namespace of instance variables in the object to enable further simplification using Composed Method.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=771" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;771</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2DXY9EZZX8UOH" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
458
+
459
+
460
+
461
+
462
+ <p class="editNote " id="editNotea2DXY9EZZX8UOH_">
463
+ <span class="hidden asin">B00BBDLIME</span>
464
+ <span class="hidden annotation_id"></span>
465
+ <span class="hidden end_location">116511</span>
466
+ <span class="yourNote hidden">
467
+ Note:
468
+ </span>
469
+ <span class="noteContent"></span>
470
+
471
+
472
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2DXY9EZZX8UOH&amp;end_location=116511&amp;note_area_id=editNotea2DXY9EZZX8UOH_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
473
+
474
+ </p>
475
+
476
+
477
+ </div>
478
+ <div class="highlightRow yourHighlight">
479
+
480
+ <span class="highlight">Without messages, there would be no program. Deftly managing this heartbeat is the first skill of the expert Smalltalk programmer. When you learn to see your program in terms of patterns of messages and you learn what can be done to that stream of messages to solve problems, then you will be able to solve any problem you can imagine</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=929" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;929</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a14A4MFLWYAU1O" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
481
+
482
+
483
+
484
+
485
+ <p class="editNote " id="editNotea14A4MFLWYAU1O_">
486
+ <span class="hidden asin">B00BBDLIME</span>
487
+ <span class="hidden annotation_id"></span>
488
+ <span class="hidden end_location">139658</span>
489
+ <span class="yourNote hidden">
490
+ Note:
491
+ </span>
492
+ <span class="noteContent"></span>
493
+
494
+
495
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a14A4MFLWYAU1O&amp;end_location=139658&amp;note_area_id=editNotea14A4MFLWYAU1O_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
496
+
497
+ </p>
498
+
499
+
500
+ </div>
501
+ <div class="highlightRow yourHighlight">
502
+
503
+ <span class="highlight">Conditional code says “execute this part of the routine or that part.” A subroutine call says “execute that code over there.” A message says “execute this routine over here or that routine over there, I don’t really care.”</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=949" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;949</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aEOYE96YP0PD9" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
504
+
505
+
506
+
507
+
508
+ <p class="editNote " id="editNoteaEOYE96YP0PD9_">
509
+ <span class="hidden asin">B00BBDLIME</span>
510
+ <span class="hidden annotation_id"></span>
511
+ <span class="hidden end_location">142517</span>
512
+ <span class="yourNote hidden">
513
+ Note:
514
+ </span>
515
+ <span class="noteContent"></span>
516
+
517
+
518
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aEOYE96YP0PD9&amp;end_location=142517&amp;note_area_id=editNoteaEOYE96YP0PD9_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
519
+
520
+ </p>
521
+
522
+
523
+ </div>
524
+ <div class="highlightRow yourHighlight">
525
+
526
+ <span class="highlight">When you begin a program, you won’t be able to anticipate the variations. As your program matures, you will see explicit conditional logic creep in. When you can see the same logic repeated in several places, it is time to find a way to represent the alternatives as objects and invoke them with a choosing message.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=988" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;988</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3MN40K9UQKZ9" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
527
+
528
+
529
+
530
+
531
+ <p class="editNote " id="editNotea3MN40K9UQKZ9_">
532
+ <span class="hidden asin">B00BBDLIME</span>
533
+ <span class="hidden annotation_id"></span>
534
+ <span class="hidden end_location">148426</span>
535
+ <span class="yourNote hidden">
536
+ Note:
537
+ </span>
538
+ <span class="noteContent"></span>
539
+
540
+
541
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3MN40K9UQKZ9&amp;end_location=148426&amp;note_area_id=editNotea3MN40K9UQKZ9_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
542
+
543
+ </p>
544
+
545
+
546
+ </div>
547
+ <div class="highlightRow yourHighlight">
548
+
549
+ <span class="highlight">Communication. Most importantly, one line methods are there to communicate.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1031" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1031</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aZM7SXV8PP8KP" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
550
+
551
+
552
+
553
+
554
+ <p class="editNote " id="editNoteaZM7SXV8PP8KP_">
555
+ <span class="hidden asin">B00BBDLIME</span>
556
+ <span class="hidden annotation_id"></span>
557
+ <span class="hidden end_location">154601</span>
558
+ <span class="yourNote hidden">
559
+ Note:
560
+ </span>
561
+ <span class="noteContent"></span>
562
+
563
+
564
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aZM7SXV8PP8KP&amp;end_location=154601&amp;note_area_id=editNoteaZM7SXV8PP8KP_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
565
+
566
+ </p>
567
+
568
+
569
+ </div>
570
+ <div class="highlightRow yourHighlight">
571
+
572
+ <span class="highlight">name a method after what it is supposed to accomplish and leave “how” to the various method bodies. This is hard work, especially when you only have a single implementation. Your mind is filled with how you are about to accomplish the task, so it’s natural that the name follow “how.” The effort of moving the names of method from “how” to “what” is worth it, both long term and short term. The resulting code will be easier to read and more flexible.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1061" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1061</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a32AUQ3P29F878" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
573
+
574
+
575
+
576
+
577
+ <p class="editNote " id="editNotea32AUQ3P29F878_">
578
+ <span class="hidden asin">B00BBDLIME</span>
579
+ <span class="hidden annotation_id"></span>
580
+ <span class="hidden end_location">159645</span>
581
+ <span class="yourNote hidden">
582
+ Note:
583
+ </span>
584
+ <span class="noteContent"></span>
585
+
586
+
587
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a32AUQ3P29F878&amp;end_location=159645&amp;note_area_id=editNotea32AUQ3P29F878_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
588
+
589
+ </p>
590
+
591
+
592
+ </div>
593
+ <div class="highlightRow yourHighlight">
594
+
595
+ <span class="highlight">Here’s a simple exercise that will help you generalize names of messages with a single implementation. Imagine a second, very different implementation. Then, ask yourself if you’d give that method the same name. If so, you’ve probably abstracted the name as much as you know how to at the moment.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1073" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1073</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2XKW1RD8PW55L" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
596
+
597
+
598
+
599
+
600
+ <p class="editNote " id="editNotea2XKW1RD8PW55L_">
601
+ <span class="hidden asin">B00BBDLIME</span>
602
+ <span class="hidden annotation_id"></span>
603
+ <span class="hidden end_location">161206</span>
604
+ <span class="yourNote hidden">
605
+ Note:
606
+ </span>
607
+ <span class="noteContent"></span>
608
+
609
+
610
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2XKW1RD8PW55L&amp;end_location=161206&amp;note_area_id=editNotea2XKW1RD8PW55L_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
611
+
612
+ </p>
613
+
614
+
615
+ </div>
616
+ <div class="highlightRow yourHighlight">
617
+
618
+ <span class="highlight">Have the client send a message to the encoded object. Pass a parameter to which the encoded object will send decoded messages. The simplest example of this is Collection&gt;&gt;do:. No matter what kind of collection you have, you can always send it #do:. By passing a one argument Block (or any other object that responds to #value:), you are assured that the code will work, no matter whether the Collection is encoded as a linear list, an array, a hash table, or a balanced tree.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1125" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1125</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2C0COR6R78C8P" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
619
+
620
+
621
+
622
+
623
+ <p class="editNote " id="editNotea2C0COR6R78C8P_">
624
+ <span class="hidden asin">B00BBDLIME</span>
625
+ <span class="hidden annotation_id"></span>
626
+ <span class="hidden end_location">169228</span>
627
+ <span class="yourNote hidden">
628
+ Note:
629
+ </span>
630
+ <span class="noteContent"></span>
631
+
632
+
633
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2C0COR6R78C8P&amp;end_location=169228&amp;note_area_id=editNotea2C0COR6R78C8P_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
634
+
635
+ </p>
636
+
637
+
638
+ </div>
639
+ <div class="highlightRow yourHighlight">
640
+
641
+ <span class="highlight">The name “dispatched interpretation” comes from the distribution of responsibility. The encoded object “dispatches” a message to the client. The client “interprets” the message.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1159" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1159</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3J86CUQEZKVWQ" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
642
+
643
+
644
+
645
+
646
+ <p class="editNote " id="editNotea3J86CUQEZKVWQ_">
647
+ <span class="hidden asin">B00BBDLIME</span>
648
+ <span class="hidden annotation_id"></span>
649
+ <span class="hidden end_location">173979</span>
650
+ <span class="yourNote hidden">
651
+ Note:
652
+ </span>
653
+ <span class="noteContent"></span>
654
+
655
+
656
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3J86CUQEZKVWQ&amp;end_location=173979&amp;note_area_id=editNotea3J86CUQEZKVWQ_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
657
+
658
+ </p>
659
+
660
+
661
+ </div>
662
+ <div class="highlightRow yourHighlight">
663
+
664
+ <span class="highlight">Refine the protocol between the objects so the words used are consistent. In VisualWorks, #value and #value: is the Mediating Protocol between the user interface components and the application model. In the Double Dispatch example, the Mediating Protocol is #addFloat: and #addInteger:. Of course, if we finished mixed mode arithmetic the protocol would be much larger.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1220" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1220</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2QA069KHTQ4U4" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
665
+
666
+
667
+
668
+
669
+ <p class="editNote " id="editNotea2QA069KHTQ4U4_">
670
+ <span class="hidden asin">B00BBDLIME</span>
671
+ <span class="hidden annotation_id"></span>
672
+ <span class="hidden end_location">183531</span>
673
+ <span class="yourNote hidden">
674
+ Note:
675
+ </span>
676
+ <span class="noteContent"></span>
677
+
678
+
679
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2QA069KHTQ4U4&amp;end_location=183531&amp;note_area_id=editNotea2QA069KHTQ4U4_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
680
+
681
+ </p>
682
+
683
+
684
+ </div>
685
+ <div class="highlightRow yourHighlight">
686
+
687
+ <span class="highlight">inheritance carries with it potentially staggering long-term costs. Code in subclasses isn’t just written in Smalltalk. It is written in the context of every variable and method in every superclass. In deep, rich hierarchies, you may have to read and understand many superclasses before you can understand even the simplest method in a subclass.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1333" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1333</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aH1W68THTPWT3" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
688
+
689
+
690
+
691
+
692
+ <p class="editNote " id="editNoteaH1W68THTPWT3_">
693
+ <span class="hidden asin">B00BBDLIME</span>
694
+ <span class="hidden annotation_id"></span>
695
+ <span class="hidden end_location">200267</span>
696
+ <span class="yourNote hidden">
697
+ Note:
698
+ </span>
699
+ <span class="noteContent"></span>
700
+
701
+
702
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aH1W68THTPWT3&amp;end_location=200267&amp;note_area_id=editNoteaH1W68THTPWT3_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
703
+
704
+ </p>
705
+
706
+
707
+ </div>
708
+ <div class="highlightRow yourHighlight">
709
+
710
+ <span class="highlight">How can you specify different logic in different instances when creating lots of little classes or changing classes at run time won’t work? • Add a variable that will be used to trigger different behavior. Typical examples of pluggable behavior are objects that have to interface with a variety of other objects, like user interface components that have to display the contents of many different objects. Using Pluggable Behavior is a much better solution than creating a hundred different subclasses, each differing from each other in only one or two methods.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1437" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1437</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aUIE2X31A86TG" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
711
+
712
+
713
+
714
+
715
+ <p class="editNote " id="editNoteaUIE2X31A86TG_">
716
+ <span class="hidden asin">B00BBDLIME</span>
717
+ <span class="hidden annotation_id"></span>
718
+ <span class="hidden end_location">216200</span>
719
+ <span class="yourNote hidden">
720
+ Note:
721
+ </span>
722
+ <span class="noteContent"></span>
723
+
724
+
725
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aUIE2X31A86TG&amp;end_location=216200&amp;note_area_id=editNoteaUIE2X31A86TG_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
726
+
727
+ </p>
728
+
729
+
730
+ </div>
731
+ <div class="highlightRow yourHighlight">
732
+
733
+ <span class="highlight">One of the downsides of Composed Method is that it occasionally creates problems because of linkages between the small methods. A state that would have been stored in a temporary variable now has to be shared between methods. The simplest solution to this problem is to leave all the code in a single method and use temporary variables to communicate between the parts of the method. All the benefits you expect from Composed Method vanish if you take this approach. The code is less revealing, more difficult to reuse and refine, and harder to modify. Another solution is to add an instance variable to the object that is shared only between the methods. This variable is very different than the other variables in the object. It is only valid while the methods are executing, not for the lifetime of the object. Instance variables should exist to communicate and store only state that must go together. We can solve the problem by adding an additional parameter that is passed to all the methods. I hesitate to add layers of methods like this, except when they do useful work. In this case, because the other solutions aren’t valid, this is the right solution. • Add a parameter that collects their results to all of the submethods.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1538" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1538</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aHX0LCHE60XUB" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
734
+
735
+
736
+
737
+
738
+ <p class="editNote " id="editNoteaHX0LCHE60XUB_">
739
+ <span class="hidden asin">B00BBDLIME</span>
740
+ <span class="hidden annotation_id"></span>
741
+ <span class="hidden end_location">232070</span>
742
+ <span class="yourNote hidden">
743
+ Note:
744
+ </span>
745
+ <span class="noteContent"></span>
746
+
747
+
748
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aHX0LCHE60XUB&amp;end_location=232070&amp;note_area_id=editNoteaHX0LCHE60XUB_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
749
+
750
+ </p>
751
+
752
+
753
+ </div>
754
+ <div class="highlightRow yourHighlight">
755
+
756
+ <span class="highlight">In the dawn of computing time, state was all there was. What is a box of punched cards but a bunch of state made manifest? Unit record equipment existed to re-order and transform the state, but all the transformations were hard-coded (like with wires and pulleys and gears) into the machines. State was king. The first thing electronic computing did was make state virtual. No longer did it only exist in physical form, that physical form was turned into electrons so it could be more easily and quickly manipulated.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1601" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1601</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1BZ2ZJOU54JOU" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
757
+
758
+
759
+
760
+
761
+ <p class="editNote " id="editNotea1BZ2ZJOU54JOU_">
762
+ <span class="hidden asin">B00BBDLIME</span>
763
+ <span class="hidden annotation_id"></span>
764
+ <span class="hidden end_location">240693</span>
765
+ <span class="yourNote hidden">
766
+ Note:
767
+ </span>
768
+ <span class="noteContent"></span>
769
+
770
+
771
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1BZ2ZJOU54JOU&amp;end_location=240693&amp;note_area_id=editNotea1BZ2ZJOU54JOU_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
772
+
773
+ </p>
774
+
775
+
776
+ </div>
777
+ <div class="highlightRow yourHighlight">
778
+
779
+ <span class="highlight">In spite of their conceptual and mathematical elegance, functional programming languages never caught on for commercial software. The problem is that programmers think and model in terms of state. State is a pretty darn good way to think about the world. Objects represent a middle ground. State is good, but only when properly managed. It is manageable if it is chopped into little pieces, some alike and some different.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1616" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1616</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2F0UMM6U86ZYI" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
780
+
781
+
782
+
783
+
784
+ <p class="editNote " id="editNotea2F0UMM6U86ZYI_">
785
+ <span class="hidden asin">B00BBDLIME</span>
786
+ <span class="hidden annotation_id"></span>
787
+ <span class="hidden end_location">242724</span>
788
+ <span class="yourNote hidden">
789
+ Note:
790
+ </span>
791
+ <span class="noteContent"></span>
792
+
793
+
794
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2F0UMM6U86ZYI&amp;end_location=242724&amp;note_area_id=editNotea2F0UMM6U86ZYI_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
795
+
796
+ </p>
797
+
798
+
799
+ </div>
800
+ <div class="highlightRow yourHighlight">
801
+
802
+ <span class="highlight">A set of objects reveals a lot that was in the mind of the original programmer just by what the instance variables are and what they are named. Be sure to declare instance variables in order of importance in the class definition.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1625" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1625</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="aPH5R637O5OQJ" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
803
+
804
+
805
+
806
+
807
+ <p class="editNote " id="editNoteaPH5R637O5OQJ_">
808
+ <span class="hidden asin">B00BBDLIME</span>
809
+ <span class="hidden annotation_id"></span>
810
+ <span class="hidden end_location">244070</span>
811
+ <span class="yourNote hidden">
812
+ Note:
813
+ </span>
814
+ <span class="noteContent"></span>
815
+
816
+
817
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=aPH5R637O5OQJ&amp;end_location=244070&amp;note_area_id=editNoteaPH5R637O5OQJ_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
818
+
819
+ </p>
820
+
821
+
822
+ </div>
823
+ <div class="highlightRow yourHighlight">
824
+
825
+ <span class="highlight">Some people swear by Lazy Initialization. They go so far as to say that all initialization should be done this way. I actually lean towards Explicit Initialization. Too many times, I’ve bent over backwards to supply lots of flexibility that is never used. I’d rather do it the simple way first, then fix it if it’s a problem. However, if I know I am writing code that is likely to be subclassed by others, I’ll go ahead and use Lazy Initialization from the first.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1721" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1721</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1KB3CEIQN8XJ5" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
826
+
827
+
828
+
829
+
830
+ <p class="editNote " id="editNotea1KB3CEIQN8XJ5_">
831
+ <span class="hidden asin">B00BBDLIME</span>
832
+ <span class="hidden annotation_id"></span>
833
+ <span class="hidden end_location">258618</span>
834
+ <span class="yourNote hidden">
835
+ Note:
836
+ </span>
837
+ <span class="noteContent"></span>
838
+
839
+
840
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1KB3CEIQN8XJ5&amp;end_location=258618&amp;note_area_id=editNotea1KB3CEIQN8XJ5_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
841
+
842
+ </p>
843
+
844
+
845
+ </div>
846
+ <div class="highlightRow yourHighlight">
847
+
848
+ <span class="highlight">How do you provide access to an instance variable that holds a collection? The simplest solution is just to publish a Getting Method for the variable. That way, any client that wants can add to, delete from, iterate over, or otherwise use the collection. The problem with this approach is that it opens up too much of the implementation of an object to the outside world. If the object decides to change the implementation, say by using a different kind of collection, the client code may well break. The other problem with just offering up your private collections for public viewing is that it is hard to keep related state current when someone else is changing the collection without notifying you.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=1905" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;1905</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3N1XEKPVWRU8Z" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
849
+
850
+
851
+
852
+
853
+ <p class="editNote " id="editNotea3N1XEKPVWRU8Z_">
854
+ <span class="hidden asin">B00BBDLIME</span>
855
+ <span class="hidden annotation_id"></span>
856
+ <span class="hidden end_location">286547</span>
857
+ <span class="yourNote hidden">
858
+ Note:
859
+ </span>
860
+ <span class="noteContent"></span>
861
+
862
+
863
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3N1XEKPVWRU8Z&amp;end_location=286547&amp;note_area_id=editNotea3N1XEKPVWRU8Z_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
864
+
865
+ </p>
866
+
867
+
868
+ </div>
869
+ <div class="highlightRow yourHighlight">
870
+
871
+ <span class="highlight">The only way you have for communicating the role of an instance variable is through its name. If the variables in Point were called “t1” and “t2” instead of “x” and “y,” you’d have a lot of reading to do before you could tell which was the horizontal component and which the vertical. Naming the variables by their roles gives you that information directly.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2005" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2005</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1RK0FKCBKA3G9" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
872
+
873
+
874
+
875
+
876
+ <p class="editNote " id="editNotea1RK0FKCBKA3G9_">
877
+ <span class="hidden asin">B00BBDLIME</span>
878
+ <span class="hidden annotation_id"></span>
879
+ <span class="hidden end_location">301109</span>
880
+ <span class="yourNote hidden">
881
+ Note:
882
+ </span>
883
+ <span class="noteContent"></span>
884
+
885
+
886
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1RK0FKCBKA3G9&amp;end_location=301109&amp;note_area_id=editNotea1RK0FKCBKA3G9_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
887
+
888
+ </p>
889
+
890
+
891
+ </div>
892
+ <div class="highlightRow yourHighlight">
893
+
894
+ <span class="highlight">Name instance variables for the role they play in the computation. Make the name plural if the variable will hold a Collection.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2015" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2015</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1P7RZZKRME8VW" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
895
+
896
+
897
+
898
+
899
+ <p class="editNote " id="editNotea1P7RZZKRME8VW_">
900
+ <span class="hidden asin">B00BBDLIME</span>
901
+ <span class="hidden annotation_id"></span>
902
+ <span class="hidden end_location">302318</span>
903
+ <span class="yourNote hidden">
904
+ Note:
905
+ </span>
906
+ <span class="noteContent"></span>
907
+
908
+
909
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1P7RZZKRME8VW&amp;end_location=302318&amp;note_area_id=editNotea1P7RZZKRME8VW_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
910
+
911
+ </p>
912
+
913
+
914
+ </div>
915
+ <div class="highlightRow yourHighlight">
916
+
917
+ <span class="highlight">Long extent, wide scope, and large type all make variables difficult to manage. If all three factors are present in many variables, you have a program that can only be understood in its entirety. Limiting the scope, extent, and type of variables wherever possible produces programs that are easier to understand, modify, and reuse.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2030" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2030</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3M5NXNLK0ZPXZ" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
918
+
919
+
920
+
921
+
922
+ <p class="editNote " id="editNotea3M5NXNLK0ZPXZ_">
923
+ <span class="hidden asin">B00BBDLIME</span>
924
+ <span class="hidden annotation_id"></span>
925
+ <span class="hidden end_location">304742</span>
926
+ <span class="yourNote hidden">
927
+ Note:
928
+ </span>
929
+ <span class="noteContent"></span>
930
+
931
+
932
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3M5NXNLK0ZPXZ&amp;end_location=304742&amp;note_area_id=editNotea3M5NXNLK0ZPXZ_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
933
+
934
+ </p>
935
+
936
+
937
+ </div>
938
+ <div class="highlightRow yourHighlight">
939
+
940
+ <span class="highlight">The presence and use of variables is often the first place a reader begins.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2035" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2035</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3HA2Q55D829JI" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
941
+
942
+
943
+
944
+
945
+ <p class="editNote " id="editNotea3HA2Q55D829JI_">
946
+ <span class="hidden asin">B00BBDLIME</span>
947
+ <span class="hidden annotation_id"></span>
948
+ <span class="hidden end_location">305246</span>
949
+ <span class="yourNote hidden">
950
+ Note:
951
+ </span>
952
+ <span class="noteContent"></span>
953
+
954
+
955
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3HA2Q55D829JI&amp;end_location=305246&amp;note_area_id=editNotea3HA2Q55D829JI_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
956
+
957
+ </p>
958
+
959
+
960
+ </div>
961
+ <div class="highlightRow yourHighlight">
962
+
963
+ <span class="highlight">When you need to collect or merge objects over a complex enumeration, use a temporary variable to hold the collection or merged value.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2074" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2074</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1VVL643NAC4NO" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
964
+
965
+
966
+
967
+
968
+ <p class="editNote " id="editNotea1VVL643NAC4NO_">
969
+ <span class="hidden asin">B00BBDLIME</span>
970
+ <span class="hidden annotation_id"></span>
971
+ <span class="hidden end_location">311117</span>
972
+ <span class="yourNote hidden">
973
+ Note:
974
+ </span>
975
+ <span class="noteContent"></span>
976
+
977
+
978
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1VVL643NAC4NO&amp;end_location=311117&amp;note_area_id=editNotea1VVL643NAC4NO_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
979
+
980
+ </p>
981
+
982
+
983
+ </div>
984
+ <div class="highlightRow yourHighlight">
985
+
986
+ <span class="highlight">Many performance related decisions sacrifice programming style to the needs of demanding users with limited machine resources. Successful performance tuning hinges on being explicitly aware of this tradeoff and only introducing changes that pay back in increased performance more than they cost in increased maintenance.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2086" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2086</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a186HSE2Y81OS9" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
987
+
988
+
989
+
990
+
991
+ <p class="editNote " id="editNotea186HSE2Y81OS9_">
992
+ <span class="hidden asin">B00BBDLIME</span>
993
+ <span class="hidden annotation_id"></span>
994
+ <span class="hidden end_location">313101</span>
995
+ <span class="yourNote hidden">
996
+ Note:
997
+ </span>
998
+ <span class="noteContent"></span>
999
+
1000
+
1001
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a186HSE2Y81OS9&amp;end_location=313101&amp;note_area_id=editNotea186HSE2Y81OS9_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1002
+
1003
+ </p>
1004
+
1005
+
1006
+ </div>
1007
+ <div class="highlightRow yourHighlight">
1008
+
1009
+ <span class="highlight">All performance tuning boils down to two techniques—either you execute code less often or you execute code that costs less. Of these, the first is often the most valuable. It relies on the fact that for reasons of readability, expressions are often executed several times even though they return the same value. Caching saves the value of the expression so that the next time the value is used instantly.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2090" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2090</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1WMKFJ9B8B7C7" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1010
+
1011
+
1012
+
1013
+
1014
+ <p class="editNote " id="editNotea1WMKFJ9B8B7C7_">
1015
+ <span class="hidden asin">B00BBDLIME</span>
1016
+ <span class="hidden annotation_id"></span>
1017
+ <span class="hidden end_location">313850</span>
1018
+ <span class="yourNote hidden">
1019
+ Note:
1020
+ </span>
1021
+ <span class="noteContent"></span>
1022
+
1023
+
1024
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1WMKFJ9B8B7C7&amp;end_location=313850&amp;note_area_id=editNotea1WMKFJ9B8B7C7_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1025
+
1026
+ </p>
1027
+
1028
+
1029
+ </div>
1030
+ <div class="highlightRow yourHighlight">
1031
+
1032
+ <span class="highlight">There are two important dimensions to communicate about a variable. The first is its type. Readers wishing to modify code need to know what responsibilities are assumed for an object occupying a variable. The second important dimension is role, that is, how the object is used in the computation. Understanding the role is important to understanding the method in which the variable is used. Different kinds of variables require different naming treatments to communicate type and role.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2155" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2155</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1AP806YVMIDXG" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1033
+
1034
+
1035
+
1036
+
1037
+ <p class="editNote " id="editNotea1AP806YVMIDXG_">
1038
+ <span class="hidden asin">B00BBDLIME</span>
1039
+ <span class="hidden annotation_id"></span>
1040
+ <span class="hidden end_location">323692</span>
1041
+ <span class="yourNote hidden">
1042
+ Note:
1043
+ </span>
1044
+ <span class="noteContent"></span>
1045
+
1046
+
1047
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1AP806YVMIDXG&amp;end_location=323692&amp;note_area_id=editNotea1AP806YVMIDXG_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1048
+
1049
+ </p>
1050
+
1051
+
1052
+ </div>
1053
+ <div class="highlightRow yourHighlight">
1054
+
1055
+ <span class="highlight">Use variable naming as an opportunity to communicate valuable tactical information to future readers. “results” is a good name for a Collecting Temporary Variable. “right” and “bottom” are good names for Explaining Temporary Variables.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2169" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2169</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a14E3279E59R2Y" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1056
+
1057
+
1058
+
1059
+
1060
+ <p class="editNote " id="editNotea14E3279E59R2Y_">
1061
+ <span class="hidden asin">B00BBDLIME</span>
1062
+ <span class="hidden annotation_id"></span>
1063
+ <span class="hidden end_location">325717</span>
1064
+ <span class="yourNote hidden">
1065
+ Note:
1066
+ </span>
1067
+ <span class="noteContent"></span>
1068
+
1069
+
1070
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a14E3279E59R2Y&amp;end_location=325717&amp;note_area_id=editNotea14E3279E59R2Y_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1071
+
1072
+ </p>
1073
+
1074
+
1075
+ </div>
1076
+ <div class="highlightRow yourHighlight">
1077
+
1078
+ <span class="highlight">Use Sets when you don’t want duplicates.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2345" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2345</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2KSW299IUFLAL" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1079
+
1080
+
1081
+
1082
+
1083
+ <p class="editNote " id="editNotea2KSW299IUFLAL_">
1084
+ <span class="hidden asin">B00BBDLIME</span>
1085
+ <span class="hidden annotation_id"></span>
1086
+ <span class="hidden end_location">351791</span>
1087
+ <span class="yourNote hidden">
1088
+ Note:
1089
+ </span>
1090
+ <span class="noteContent"></span>
1091
+
1092
+
1093
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2KSW299IUFLAL&amp;end_location=351791&amp;note_area_id=editNotea2KSW299IUFLAL_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1094
+
1095
+ </p>
1096
+
1097
+
1098
+ </div>
1099
+ <div class="highlightRow yourHighlight">
1100
+
1101
+ <span class="highlight">To be an accomplished programmer you have to know what’s going on under the hood.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=2507" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;2507</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2N6HL7YTAR91E" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1102
+
1103
+
1104
+
1105
+
1106
+ <p class="editNote " id="editNotea2N6HL7YTAR91E_">
1107
+ <span class="hidden asin">B00BBDLIME</span>
1108
+ <span class="hidden annotation_id"></span>
1109
+ <span class="hidden end_location">376125</span>
1110
+ <span class="yourNote hidden">
1111
+ Note:
1112
+ </span>
1113
+ <span class="noteContent"></span>
1114
+
1115
+
1116
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2N6HL7YTAR91E&amp;end_location=376125&amp;note_area_id=editNotea2N6HL7YTAR91E_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1117
+
1118
+ </p>
1119
+
1120
+
1121
+ </div>
1122
+ <div class="highlightRow yourHighlight">
1123
+
1124
+ <span class="highlight">In many cases, having many methods share the same instance variable is dangerous, especially if it is an object that will be side effected by many methods. A change in one method is likely to affect others inadvertently. In the case of parsing, though, the danger is minimized because of the simple nature of the control flow. • Put the Stream in an instance variable. Have all parsing methods work from the same Stream. Using this pattern, the code above looks like: parse: aStream           reader := aStream. “Reader is now an instance variable.”           [reader atEnd] whileFalse: [self parseLine] parseLine           keyword := reader nextWord.           keyword = ‘one’ ifTrue: [^self parseOne].           keyword = ‘two’ ifTrue: [^self parseTwo].           ... The lack of parameters cleans up the code considerably. Each parsing method has to be careful to leave the Parsing Stream in a known state so the other methods can simply assume where they are in the String.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3067" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3067</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a33VGG6NAOAM92" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1125
+
1126
+
1127
+
1128
+
1129
+ <p class="editNote " id="editNotea33VGG6NAOAM92_">
1130
+ <span class="hidden asin">B00BBDLIME</span>
1131
+ <span class="hidden annotation_id"></span>
1132
+ <span class="hidden end_location">461839</span>
1133
+ <span class="yourNote hidden">
1134
+ Note:
1135
+ </span>
1136
+ <span class="noteContent"></span>
1137
+
1138
+
1139
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a33VGG6NAOAM92&amp;end_location=461839&amp;note_area_id=editNotea33VGG6NAOAM92_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1140
+
1141
+ </p>
1142
+
1143
+
1144
+ </div>
1145
+ <div class="highlightRow yourHighlight">
1146
+
1147
+ <span class="highlight">Streams provide a way out of this dilemma. Streams are careful not to copy their contents many times, even as the Collection they are streaming over gets larger. • Use a Stream to concatenate many Collections. I ran a quick benchmark to see how significant the difference was between Collection concatenation and Streams. I ran the following code, which concatenates one thousand Strings: 100 timesRepeat:           [result := String new.           1000 timesRepeat: [result := result , ‘abcdefg’]] It took 53 seconds to run. Then I ran the Stream version: 100 timesRepeat:           [writer := WriteStream on: String new.           1000 timesRepeat: [writer nextPutAll: ‘abcdefg’].           writer contents]] It took 0.9 seconds to run. The difference is a factor of almost 60. Sometimes, you will use Concatenating Stream not because it is your choice, but because you have to fit into other code that already uses it.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3089" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3089</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1XAHG2BAUAS4P" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1148
+
1149
+
1150
+
1151
+
1152
+ <p class="editNote " id="editNotea1XAHG2BAUAS4P_">
1153
+ <span class="hidden asin">B00BBDLIME</span>
1154
+ <span class="hidden annotation_id"></span>
1155
+ <span class="hidden end_location">465391</span>
1156
+ <span class="yourNote hidden">
1157
+ Note:
1158
+ </span>
1159
+ <span class="noteContent"></span>
1160
+
1161
+
1162
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1XAHG2BAUAS4P&amp;end_location=465391&amp;note_area_id=editNotea1XAHG2BAUAS4P_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1163
+
1164
+ </p>
1165
+
1166
+
1167
+ </div>
1168
+ <div class="highlightRow yourHighlight">
1169
+
1170
+ <span class="highlight">There is probably no coding decision with more effect on the quality of your code than names you give your classes.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3105" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3105</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2XD6XGRNAKISM" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1171
+
1172
+
1173
+
1174
+
1175
+ <p class="editNote " id="editNotea2XD6XGRNAKISM_">
1176
+ <span class="hidden asin">B00BBDLIME</span>
1177
+ <span class="hidden annotation_id"></span>
1178
+ <span class="hidden end_location">465748</span>
1179
+ <span class="yourNote hidden">
1180
+ Note:
1181
+ </span>
1182
+ <span class="noteContent"></span>
1183
+
1184
+
1185
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2XD6XGRNAKISM&amp;end_location=465748&amp;note_area_id=editNotea2XD6XGRNAKISM_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1186
+
1187
+ </p>
1188
+
1189
+
1190
+ </div>
1191
+ <div class="highlightRow yourHighlight">
1192
+
1193
+ <span class="highlight">The first thing readers will look at when they look at your code is the names of the classes. Those names will go beyond your code. Insidiously, they leak into everyday conversation—and not just for developers. Ten years down the road, you will hear users who know nothing about programming using the class names you chose.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3107" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3107</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a2TWL0CX5URHO6" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1194
+
1195
+
1196
+
1197
+
1198
+ <p class="editNote " id="editNotea2TWL0CX5URHO6_">
1199
+ <span class="hidden asin">B00BBDLIME</span>
1200
+ <span class="hidden annotation_id"></span>
1201
+ <span class="hidden end_location">466368</span>
1202
+ <span class="yourNote hidden">
1203
+ Note:
1204
+ </span>
1205
+ <span class="noteContent"></span>
1206
+
1207
+
1208
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a2TWL0CX5URHO6&amp;end_location=466368&amp;note_area_id=editNotea2TWL0CX5URHO6_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1209
+
1210
+ </p>
1211
+
1212
+
1213
+ </div>
1214
+ <div class="highlightRow yourHighlight">
1215
+
1216
+ <span class="highlight">Unfortunately, many people get all formal when they go to name a superclass. Just calling it what it is isn’t enough. They have to tack on a flowery, computer science-y, impressive sounding, but ultimately meaningless word, like Object, Thing, Component, Part, Manager, Entity, or Item. You’re creating a vocabulary, not writing a program. Be a poet for a moment. The simple, the punchy, the easily remembered will be far more effective in the long run than some long name that says it all, but in such a way that no one wants to say it at all.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3124" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3124</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3O6Q6N0S6BRQG" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1217
+
1218
+
1219
+
1220
+
1221
+ <p class="editNote " id="editNotea3O6Q6N0S6BRQG_">
1222
+ <span class="hidden asin">B00BBDLIME</span>
1223
+ <span class="hidden annotation_id"></span>
1224
+ <span class="hidden end_location">469186</span>
1225
+ <span class="yourNote hidden">
1226
+ Note:
1227
+ </span>
1228
+ <span class="noteContent"></span>
1229
+
1230
+
1231
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3O6Q6N0S6BRQG&amp;end_location=469186&amp;note_area_id=editNotea3O6Q6N0S6BRQG_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1232
+
1233
+ </p>
1234
+
1235
+
1236
+ </div>
1237
+ <div class="highlightRow yourHighlight">
1238
+
1239
+ <span class="highlight">• Name a superclass with a single word that conveys its purpose in the design.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3129" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3129</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a5XEEUQ1HPZ51" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1240
+
1241
+
1242
+
1243
+
1244
+ <p class="editNote " id="editNotea5XEEUQ1HPZ51_">
1245
+ <span class="hidden asin">B00BBDLIME</span>
1246
+ <span class="hidden annotation_id"></span>
1247
+ <span class="hidden end_location">469366</span>
1248
+ <span class="yourNote hidden">
1249
+ Note:
1250
+ </span>
1251
+ <span class="noteContent"></span>
1252
+
1253
+
1254
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a5XEEUQ1HPZ51&amp;end_location=469366&amp;note_area_id=editNotea5XEEUQ1HPZ51_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1255
+
1256
+ </p>
1257
+
1258
+
1259
+ </div>
1260
+ <div class="highlightRow yourHighlight">
1261
+
1262
+ <span class="highlight">if I am using inheritance strictly for code sharing, but the role of the subclass is different than the role of the superclass, I go back to Simple Superclass Name.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3143" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3143</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a3F2CSEB5UIFDC" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1263
+
1264
+
1265
+
1266
+
1267
+ <p class="editNote " id="editNotea3F2CSEB5UIFDC_">
1268
+ <span class="hidden asin">B00BBDLIME</span>
1269
+ <span class="hidden annotation_id"></span>
1270
+ <span class="hidden end_location">471568</span>
1271
+ <span class="yourNote hidden">
1272
+ Note:
1273
+ </span>
1274
+ <span class="noteContent"></span>
1275
+
1276
+
1277
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a3F2CSEB5UIFDC&amp;end_location=471568&amp;note_area_id=editNotea3F2CSEB5UIFDC_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1278
+
1279
+ </p>
1280
+
1281
+
1282
+ </div>
1283
+ <div class="highlightRow yourHighlight">
1284
+
1285
+ <span class="highlight">Name subclasses in your hierarchies by prepending an adjective to the superclass name. For example: • OrderedCollection is a Collection in which elements are Ordered. • SortedCollection is a Collection in which elements are Sorted. Even though SortedCollection subclasses OrderedCollection, you wouldn’t call it SortedOrderedCollection. The choice to subclass OrderedCollection is strictly for implementation reasons, not because the two collections play similar roles. • LargeInteger is an Integer that takes many bits to represent.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3152" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3152</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1DZQLQ4XM8ULV" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1286
+
1287
+
1288
+
1289
+
1290
+ <p class="editNote " id="editNotea1DZQLQ4XM8ULV_">
1291
+ <span class="hidden asin">B00BBDLIME</span>
1292
+ <span class="hidden annotation_id"></span>
1293
+ <span class="hidden end_location">473659</span>
1294
+ <span class="yourNote hidden">
1295
+ Note:
1296
+ </span>
1297
+ <span class="noteContent"></span>
1298
+
1299
+
1300
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1DZQLQ4XM8ULV&amp;end_location=473659&amp;note_area_id=editNotea1DZQLQ4XM8ULV_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1301
+
1302
+ </p>
1303
+
1304
+
1305
+ </div>
1306
+ <div class="highlightRow yourHighlight">
1307
+
1308
+ <span class="highlight">thorough use of Composed Method and Explaining Temporary Variable, along with the attitude that you are writing for a reader and not the computer, will go a long way towards helping you produce code that is simple to format and simple to read.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3180" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3180</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a19GQYZ25SMSCD" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1309
+
1310
+
1311
+
1312
+
1313
+ <p class="editNote " id="editNotea19GQYZ25SMSCD_">
1314
+ <span class="hidden asin">B00BBDLIME</span>
1315
+ <span class="hidden annotation_id"></span>
1316
+ <span class="hidden end_location">477146</span>
1317
+ <span class="yourNote hidden">
1318
+ Note:
1319
+ </span>
1320
+ <span class="noteContent"></span>
1321
+
1322
+
1323
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a19GQYZ25SMSCD&amp;end_location=477146&amp;note_area_id=editNotea19GQYZ25SMSCD_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1324
+
1325
+ </p>
1326
+
1327
+
1328
+ </div>
1329
+ <div class="highlightRow yourHighlight">
1330
+
1331
+ <span class="highlight">If I can avoid parentheses and still have a method that reads clearly, I will.</span><a href="kindle://book?action=open&asin=B00BBDLIME&location=3451" class="k4pcReadMore readMore linkOut">Read&nbsp;more&nbsp;at&nbsp;location&nbsp;3451</a><form action="/user_annotation_relation/delete_highlight" class="deleteHighlightForm" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="540d8f3c3b22c584074f2b2a7b76da3d3c58ef30" /></div><input id="asin" name="asin" type="hidden" value="B00BBDLIME" /><input id="annotation_id" name="annotation_id" type="hidden" value="a1UT0ORAFHNO2L" /><span class="deleteHighlight"><button class="textSubmit" name="delete" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Delete&nbsp;this&nbsp;highlight</span></button></span><span class="deleteHighlightUndo hidden"><button class="textSubmit" name="undo" type="submit"><span class="bullet">&nbsp;&nbsp;&nbsp;&#8226;&nbsp;</span><span class="underline">Undo&nbsp;deletion</span></button></span></form>
1332
+
1333
+
1334
+
1335
+
1336
+ <p class="editNote " id="editNotea1UT0ORAFHNO2L_">
1337
+ <span class="hidden asin">B00BBDLIME</span>
1338
+ <span class="hidden annotation_id"></span>
1339
+ <span class="hidden end_location">517598</span>
1340
+ <span class="yourNote hidden">
1341
+ Note:
1342
+ </span>
1343
+ <span class="noteContent"></span>
1344
+
1345
+
1346
+ <a href="/user_annotation_relation/edit_note_popup?annotation_id=&amp;asin=B00BBDLIME&amp;attached=a1UT0ORAFHNO2L&amp;end_location=517598&amp;note_area_id=editNotea1UT0ORAFHNO2L_&amp;note_text=&amp;return_to=%2Fyour_highlights%3F%26current_offset%3D125%26used_asins%255B%255D%3DB005GSYXU4%26used_asins%255B%255D%3DB000FBJG4U%26used_asins%255B%255D%3DB0081AKCGS%26used_asins%255B%255D%3DB005K0AYH4%26used_asins%255B%255D%3D76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX%26used_asins%255B%255D%3DB007A4SDCG" class="addEditNote">Add a note</a>
1347
+
1348
+ </p>
1349
+
1350
+
1351
+ </div>
1352
+
1353
+
1354
+ </div>
1355
+
1356
+ <div id="stillLoadingBooks" class="hidden">
1357
+ <img alt="Loading..." src="https://images-na.ssl-images-amazon.com/images/G/01/reading/images/loadIndicator-label._V379390748_.gif" />
1358
+ </div>
1359
+ <a href="/your_highlights?&amp;current_offset=200&amp;used_asins%5B%5D=B005GSYXU4&amp;used_asins%5B%5D=B000FBJG4U&amp;used_asins%5B%5D=B0081AKCGS&amp;used_asins%5B%5D=B005K0AYH4&amp;used_asins%5B%5D=76BMWHEXGL3GAY5UGO4OPA2MQ4QO2QHX&amp;used_asins%5B%5D=B007A4SDCG&amp;used_asins%5B%5D=B00BBDLIME" id="nextBookLink">Next Book</a>
1360
+
1361
+
1362
+ </div>
1363
+ </div>
1364
+ </div>
1365
+ <div id="footer">
1366
+ <div class="footerLeft">&copy; 2013, <a href="http://www.amazon.com/">Amazon.com</a>, Inc. or its affiliates</div>
1367
+ <div class="footerRight">
1368
+ <a href="https://kindle.amazon.com/privacy">Privacy Notice</a> <span class="welcomeDots">&middot;</span>
1369
+ <a href="https://kindle.amazon.com/conditions_of_use">Conditions of Use</a>
1370
+ </div>
1371
+ </div>
1372
+
1373
+ <script type="text/javascript">
1374
+ //<![CDATA[
1375
+
1376
+ var AUTH_TOKEN = "540d8f3c3b22c584074f2b2a7b76da3d3c58ef30";
1377
+
1378
+ //]]>
1379
+ </script>
1380
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.min.js" type="text/javascript"></script>
1381
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/browser-scripts/amazonJQ/amazonJQ-debug-981618277.js.js" type="text/javascript"></script>
1382
+ <script>
1383
+ /* reset window.$ since amznJQ clears it out with noConflict(). */
1384
+ window.$=amznJQ.jQuery||window.jQuery;
1385
+ </script>
1386
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/reading/javascripts/libraries._V379391573_.js" type="text/javascript"></script>
1387
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/amazonShoveler/amazonShoveler-amazonShoveler-61946.js" type="text/javascript"></script>
1388
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/amazonJQ/amazonJQ-amzPopover-30626.js" type="text/javascript"></script>
1389
+ <script src="https://kindleweb.s3.amazonaws.com/app/KindleReader-min.js" type="text/javascript"></script>
1390
+ <script src="https://images-na.ssl-images-amazon.com/images/G/01/reading/javascripts/site._V377639441_.js" type="text/javascript"></script>
1391
+
1392
+
1393
+
1394
+
1395
+ </div>
1396
+ </body>
1397
+ </html>