??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产一二,性视频一区二区三区,亚洲影院一区http://www.aygfsteel.com/amenglai/category/37406.htmlzh-cnWed, 20 Jan 2010 17:35:01 GMTWed, 20 Jan 2010 17:35:01 GMT60PEAAQ就q么d?/title><link>http://www.aygfsteel.com/amenglai/articles/310205.html</link><dc:creator>amenglai</dc:creator><author>amenglai</author><pubDate>Wed, 20 Jan 2010 03:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/amenglai/articles/310205.html</guid><wfw:comment>http://www.aygfsteel.com/amenglai/comments/310205.html</wfw:comment><comments>http://www.aygfsteel.com/amenglai/articles/310205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/amenglai/comments/commentRss/310205.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/amenglai/services/trackbacks/310205.html</trackback:ping><description><![CDATA[前天q本PEAAl于l我d了。其实这本书q是我在2004q买的,记得当时q买了那本著名的refectorQ那本书当时p完了Q而这本PEAAҎ(gu)看不下去?br /> 现在l于d了,看来q几q的zM是白q的哦,如果没有收获Q咋能生共鸣呢。可是我却写不出MW记Q好像有很多的体?x),但是一旦坐在电(sh)脑前Q又大脑一片空白?img alt="" src="/CuteSoft_Client/CuteEditor/images/emembarrassed.gif" align="absMiddle" border="0" />Q那是因Zq没有理?img alt="" src="/CuteSoft_Client/CuteEditor/images/emcry.gif" align="absMiddle" border="0" />Q鉴定完毕)<br /> ButQ读完和理解之间q有chasm需要跨,是的Q我?x)在Hpȝ的重构上LM用它?img alt="" src="/CuteSoft_Client/CuteEditor/images/face1.gif" align="absMiddle" border="0" />q样才会(x)有体?x)?br /> <span style="color: red">其实q本书应该先去读base pattern部分Q?/span>因ؓ(f)Martin大叔的很多pattern都会(x)用到base patternQ但是偶不知他老h家ؓ(f)啥把q部分放在了最后?br /> 今天Q从今天开始,我开始新的C++journeyQEffecitive C++? <img src ="http://www.aygfsteel.com/amenglai/aggbug/310205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/amenglai/" target="_blank">amenglai</a> 2010-01-20 11:45 <a href="http://www.aygfsteel.com/amenglai/articles/310205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《分析模式》读后感http://www.aygfsteel.com/amenglai/articles/266968.htmlamenglaiamenglaiWed, 22 Apr 2009 05:29:00 GMThttp://www.aygfsteel.com/amenglai/articles/266968.htmlhttp://www.aygfsteel.com/amenglai/comments/266968.htmlhttp://www.aygfsteel.com/amenglai/articles/266968.html#Feedback0http://www.aygfsteel.com/amenglai/comments/commentRss/266968.htmlhttp://www.aygfsteel.com/amenglai/services/trackbacks/266968.htmll于把《分析模式》读完了Q没惛_׃q?个月的时间。读的这么辛?img src="/CuteSoft_Client/CuteEditor/images/emsad.gif" align="absMiddle" border="0" alt="" />
不可否认Q这是一本可?#8220;怡情”的好书。前面的9章是最值得一ȝ?br /> 但是我想大叔在写q本书时Q还没有能够?#8220;refactor”旉样高度概括,所以书中掺杂了很多财务的专业知识背景,我,没有做过Q所以读h很费劌Ӏ?/p>

是的
从明天vQ我做个C++?br /> 和Lippman周游世界



amenglai 2009-04-22 13:29 发表评论
]]>
Hello,学点SmallTalk?/title><link>http://www.aygfsteel.com/amenglai/articles/266009.html</link><dc:creator>amenglai</dc:creator><author>amenglai</author><pubDate>Thu, 16 Apr 2009 09:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/amenglai/articles/266009.html</guid><wfw:comment>http://www.aygfsteel.com/amenglai/comments/266009.html</wfw:comment><comments>http://www.aygfsteel.com/amenglai/articles/266009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/amenglai/comments/commentRss/266009.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/amenglai/services/trackbacks/266009.html</trackback:ping><description><![CDATA[  <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">久Ԓ</span><span lang="EN-US" style="font-family: Arial">SmallTalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的大名,大概是因为很?/span><span lang="EN-US" style="font-family: Arial">design pattern</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的名著都提到它,q且一说到</span><span lang="EN-US" style="font-family: Arial">OOAD</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">也都?x)提到它老h家。但是我q不知道它是啥子东东Q就像谁兛_</span><span lang="EN-US" style="font-family: Arial">Ada</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">一栗?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">但是出来hL需要还?/span><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">L</span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">没想?/span><span lang="EN-US" style="font-family: Arial">Martin</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">大叔?#8220;分析模式”竟然是用q个g西写的代码,额的啊Q我只好打v万分的精,恶补一下?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">最不幸的是|上能够扑ֈ的关?/span><span lang="EN-US" style="font-family: Arial">SmallTalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">书,实?/span><span lang="EN-US" style="font-family: Arial">Java</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">得多的多。找C?/span><span lang="EN-US" style="font-family: Arial">E</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">文的Q将吧?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">另外的发现就?/span><span lang="EN-US" style="font-family: Arial">ruby</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">L(fng)</span><span lang="EN-US" style="font-family: Arial">ruby>(smalltalk+perl)</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q所以有些资料可以在</span><span lang="EN-US" style="font-family: Arial">ruby</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">中找到哈?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我的q䆾</span><span lang="EN-US" style="font-family: Arial">Smalltalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的学?fn)笔讎ͼq不是按?/span><span lang="EN-US" style="font-family: Arial">Smalltalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">q阶的思\整理的,而是在阅?/span><span lang="EN-US" style="font-family: Arial">AP</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">W七章的q程中随用到随整理的。看</span><span lang="EN-US" style="font-family: Arial">AP</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">是够用了?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <h2><span style="font-family: 黑体; mso-ascii-font-family: Arial">变量和赋?/span></h2> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">字符</span><span lang="EN-US" style="font-family: Arial"> $a $1<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">字符串变量,用单引号表示。注意在</span><span lang="EN-US" style="font-family: Arial">SmallTalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">中双引号是注释。所?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">‘John’ ‘Martin’</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">q是对的?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">A := </span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">“</span><span lang="EN-US" style="font-family: Arial">John Hunt</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">”q是错的Q去?/span><span lang="EN-US" style="font-family: Arial">? </span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><span style="mso-spacerun: yes"> </span>‘a’</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">$a</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">表示的是不同cȝ实例Q前者对应的</span><span lang="EN-US" style="font-family: Arial">Strings</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q后者对应的</span><span lang="EN-US" style="font-family: Arial">Charater</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">Symbols<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我觉得这q当于</span><span lang="EN-US" style="font-family: Arial">java</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">中的帔R</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">#join<span style="mso-spacerun: yes">  </span>week<span style="mso-spacerun: yes">  </span>system42<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">赋?/span><span lang="EN-US" style="font-family: Arial"> := </span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q这个和</span><span lang="EN-US" style="font-family: Arial">Delphi</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">一样哈Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">myName := ‘John Hunt<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">newIndex := oldIndex<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">临时变量<br /> <table style="margin: 1px" cellspacing="2" cellpadding="2" width="500" border="0"> <tbody> <tr> <td>  <p><span style="font-family: Arial">|x y z|</span></p> <p><span style="font-family: Arial">x :=5.</span></p> <p><span style="font-family: Arial">y :=6.</span></p> <p><span style="font-family: Arial">Z :=x+y.</span></p> <p><span style="font-family: Arial">Transcript show: z printString.</span></p> </td> </tr> </tbody> </table> <br /> </span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><v:rect id="_x0000_s1032" style="margin-top: 7.8pt; z-index: 3; left: 0px; margin-left: 18pt; width: 261pt; position: absolute; height: 93.6pt; text-align: left"></v:rect></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <br style="mso-ignore: vglayout" clear="all" /> <h2><span lang="EN-US">isKindof</span><span style="font-family: 黑体; mso-ascii-font-family: Arial">Q类型判?/span></h2> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">(anObject isKindOf: String) ifTrue: [...] ifFalse: [...] is an example of Smalltalk's runtime equilivant of "type testing"<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <h2><span style="font-family: 黑体; mso-ascii-font-family: Arial">集合</span></h2> <h3><span lang="EN-US">Enumerating Collections</span></h3> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">do – does the same operation on every element of the collection.<o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt"><span lang="EN-US" style="font-family: Arial">MyCollection do: [:piece | piece reset]<o:p></o:p></span></p> <p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">MyCollection</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的每?/span><span lang="EN-US" style="font-family: Arial">element</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">发送消?/span><span lang="EN-US" style="font-family: Arial">reset</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q其实就是执?/span><span lang="EN-US" style="font-family: Arial">reset</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">collect – like do: but returns a collection of the results.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">select – test every element and returns those which pass.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">reject – test every element and returns those which fail.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">detect – returns the first element which passes the test<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">inject:into<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <h3><span lang="EN-US">inject</span></h3> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">Smalltalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">语言中也支持集合的P代器Q如果你要求</span><span lang="EN-US" style="font-family: Arial">Smalltalk</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">E序员求数组元素的和Q他们会(x)像这h使用</span><span lang="EN-US" style="font-family: Arial">inject</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">函数Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"> <table cellspacing="2" cellpadding="2" width="500" border="0"> <tbody> <tr> <td>  <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">sumOfValues<span style="mso-spacerun: yes">      </span><span style="mso-spacerun: yes">        </span>"Smalltalk method"<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><span style="mso-spacerun: yes">    </span>^self values<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><span style="mso-spacerun: yes">          </span>inject: 0<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><span style="mso-spacerun: yes">          </span>into: [ :sum :element | sum + element value] <o:p></o:p></span></p> </td> </tr> </tbody> </table> </span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">inject</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">是这样工作的Q当兌的代码块W一ơ被调用Ӟ</span><span lang="EN-US" style="font-family: Arial">sum</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">被赋l?/span><span lang="EN-US" style="font-family: Arial">inject</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的参数|在这里是</span><span lang="EN-US" style="font-family: Arial">0</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q,</span><span lang="EN-US" style="font-family: Arial">element</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">取数l第一个元素。第二次和以后调用到代码块时Q?/span><span lang="EN-US" style="font-family: Arial">sum</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">被赋l上ơ调用代码块时返回的|q样</span><span lang="EN-US" style="font-family: Arial">sum</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">p完了全程Q?/span><span lang="EN-US" style="font-family: Arial">inject</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">最l的l果是代码块最后被调用的倹{?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><v:shape id="_x0000_i1027" style="width: 315pt; height: 72.75pt" type="#_x0000_t75" o:bordertopcolor="navy" o:borderleftcolor="navy" o:borderbottomcolor="navy" o:borderrightcolor="navy"><v:imagedata src="file:///C:\DOCUME~1\scnlil\LOCALS~1\Temp\msohtml1\19\clip_image002.png" o:title=""></v:imagedata><w:bordertop type="single" width="8"></w:bordertop><w:borderleft type="single" width="8"></w:borderleft><w:borderbottom type="single" width="8"></w:borderbottom><w:borderright type="single" width="8"></w:borderright></v:shape><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><v:shape id="_x0000_i1028" style="width: 361.5pt; height: 62.25pt" type="#_x0000_t75" o:bordertopcolor="navy" o:borderleftcolor="navy" o:borderbottomcolor="navy" o:borderrightcolor="navy"><v:imagedata src="file:///C:\DOCUME~1\scnlil\LOCALS~1\Temp\msohtml1\19\clip_image004.png" o:title=""></v:imagedata><w:bordertop type="single" width="8"></w:bordertop><w:borderleft type="single" width="8"></w:borderleft><w:borderbottom type="single" width="8"></w:borderbottom><w:borderright type="single" width="8"></w:borderright></v:shape><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <h3><span lang="EN-US">Dictionary</span></h3> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">Dictionary</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">Set</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的子cR?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><strong><span lang="EN-US" style="font-family: Arial">at : aKey </span></strong><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">对应</span><span lang="EN-US" style="font-family: Arial">Java</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">get(key)<o:p></o:p></span></p> <p class="MsoNormal"><strong><span lang="EN-US" style="font-family: Arial">at : aKey put : aValue</span></strong><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">对应</span><span lang="EN-US" style="font-family: Arial">Java</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial">put(key, value)<o:p></o:p></span></p> <p class="MsoNormal"><v:rect id="_x0000_s1033" style="margin-top: 0px; z-index: 4; left: 0px; margin-left: 0px; width: 225pt; position: absolute; height: 70.2pt; text-align: left"></v:rect><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">应用方式Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <h2><span lang="EN-US">Code Block</span></h2> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">[ :params | <message-expressions> ]<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">Where :params is the list of parameters the code can take. This means that the Smalltalk code:<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">[:x | x + 1]</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">可以理解为:(x)</span><span lang="EN-US" style="font-family: Arial">f(x) = x + 1<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">Code Block</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的调用:(x)</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">[:x | x + 1] value: 3<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">can be evaluated as<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">f(3) = 3 + 1<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">q是相等?/span><span lang="EN-US" style="font-family: Arial">Code Block</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的定义和调用在一赗?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">令一U方法是先定?/span><span lang="EN-US" style="font-family: Arial">code Block,</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">然后在其它的地方再调用?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><v:group id="_x0000_s1029" style="width: 387pt; height: 93.6pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2362,8508" coordsize="6731,1630"><o:lock v:ext="edit" aspectratio="t"></o:lock><v:shape id="_x0000_s1030" style="left: 2362px; width: 6731px; position: absolute; top: 8508px; height: 1630px" o:preferrelative="f" type="#_x0000_t75"><v:fill o:detectmouseclick="t"></v:fill><v:path o:extrusionok="t" o:connecttype="none"></v:path><o:lock v:ext="edit" text="t"></o:lock></v:shape><v:rect id="_x0000_s1031" style="left: 2519px; width: 6416px; position: absolute; top: 8644px; height: 1358px"><v:textbox> <table cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td> <div> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">anotherBlock := [ :parml :parm2 | | temp |<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">temp := pannl incorporate: parm2.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">temp rehash.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial">].<o:p></o:p></span></p> </div> </td> </tr> </tbody> </table> </v:textbox></v:rect><w:wrap type="none"></w:wrap><w:anchorlock></w:anchorlock></v:group></span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">说明Q?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Arial; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">1)<span style="font: 7pt 'Times New Roman'">        </span></span></span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">定义</span><span lang="EN-US" style="font-family: Arial">Code Block</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q?/span><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-family: Arial">anotherBlock</span></strong><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Arial; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">2)<span style="font: 7pt 'Times New Roman'">        </span></span></span><span lang="EN-US" style="font-family: Arial">parml </span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">Q?/span><span lang="EN-US" style="font-family: Arial">parm2</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">是两个参?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="font-family: Arial; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">3)<span style="font: 7pt 'Times New Roman'">        </span></span></span><span lang="EN-US" style="font-family: Arial">temp</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">是定义的变量</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">调用Q?/span><span lang="EN-US" style="font-family: Arial">anotherBlock value: objecfcl value: object2<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">管狠不适应Q但?/span><span lang="EN-US" style="font-family: Arial">Code Block</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">可以使得代码z明了:(x)</span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN" style="font-family: Arial; mso-ansi-language: EN">positiveAmounts := allAmounts select: [:amt | amt isPositive]<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">q句话就是从</span><span lang="EN-US" style="font-family: Arial">collection </span><span lang="EN" style="font-family: Arial; mso-ansi-language: EN">allAmounts</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-ansi-language: EN">q回所?/span><span lang="EN" style="font-family: Arial; mso-ansi-language: EN">positive</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-ansi-language: EN">的单元的集合?/span><span lang="EN" style="font-family: Arial; mso-ansi-language: EN">amt</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-ansi-language: EN">按我的理解就是对应的每个</span><span lang="EN" style="font-family: Arial; mso-ansi-language: EN">element</span><span style="font-family: 宋体; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-ansi-language: EN">?/span><span lang="EN-US" style="font-family: Arial"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-family: Arial"><o:p> </o:p></span></p> <img src ="http://www.aygfsteel.com/amenglai/aggbug/266009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/amenglai/" target="_blank">amenglai</a> 2009-04-16 17:34 <a href="http://www.aygfsteel.com/amenglai/articles/266009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Chapter6 Inventory and Accountinghttp://www.aygfsteel.com/amenglai/articles/265970.htmlamenglaiamenglaiThu, 16 Apr 2009 07:02:00 GMThttp://www.aygfsteel.com/amenglai/articles/265970.htmlhttp://www.aygfsteel.com/amenglai/comments/265970.htmlhttp://www.aygfsteel.com/amenglai/articles/265970.html#Feedback0http://www.aygfsteel.com/amenglai/comments/commentRss/265970.htmlhttp://www.aygfsteel.com/amenglai/services/trackbacks/265970.htmlMy comments

Q?/span>2009-2-3Q?/span>

在读q章Ӟ对于q章开始的2|qC定要反复的读。尤其是当读到后l小节,感觉q失方向的时候,一定要回来再读q部分,q部分是q章的一个高度的概括?/span>

如果不具备会(x)计的知识背景Q花半天的时间恶补一下。徏议看看《会(x)计学原理Q新~)》(徐文彬)。了解几个关键的术语Q̎?/span>,?x)计U目,复式记̎?/span>

我先云山雄的读了一遍,再回头看q章的开始部分,对于Martin的阐q思\了解的清CQ另外在恶补q基本的?x)计知识后,?/span>Transaction?/span>Summary Account理解h老轻松了Q真是磨刀不误砍柴?/span>J

Brief Summary

AccountQ̎?/span>

EntryQ记账分?/span>

Account can only be added or removed by entries. The entries provide a history of all changes of the account.

Account and Entry

Transactions

Transactions add a further degree of auditability by linking entries together. In a transaction, the items withdrawn from one account must be deposited in another. (我理解这句话的意思其实就是会(x)计中所q的复式记̎Double entryQ复式记账一般就是指借贷记̎)

一般的Transsction是财务上所说的“一借一?#8221;Q?/span>Multiegged Transsction是财务上所说的“一借多?#8221;或?#8220;一贷多?#8221;?/span>

导入以下的会(x)计知识:(x)

 

 

q是资cdL(fng)余额。如果是负债或所有者权益类帐户Q七期初余额、期末余额一般应在贷斏V?/span>

费用cd户和资cd户一P收入和利润帐户和负债或所有者权益类帐户?/span>

“?#8221;表示资增加或负Z?qing)所有者权益的减少Q?#8220;?#8221;表示资减少或负Z?qing)所有者权益的增加.

有借必有贷Q借贷必相{?/span>

Summary accountQ汇总̎?/span>

帐户是根据会(x)计科目开讄。会(x)计科目既有dcȝ目和明细U目Q帐户也有dcd户和明细帐户?/span>

‘原材?#8217;是一个dcdP它只能概括但应所有原材料的增减变化以其结果。在‘原材?#8217;帐户下面Q还要按照每一U原材料分别讄明细分类帐户?/span>

‘应收账款’是一个L反映应收账款l算情况的dcdPZ详细反映应收账款的结情况,q必L每一个客戯|应收̎ƾ明l分cd戗?/span>

Memo accountQ备注̎?/span>

备注账户q不需要保持^衡?/span>

No real money leaks from or to a memo account.

Posting rulesQ簿记规则)

对于Posting rulesQ?/span>Martin要从以下的几个方面来阐述Q?/span>

1.        Posting rules是什?/span>

Posting rules allow us to build active networks of accounts that update each other and reflect business rules.

2.        如何实现记规则Q?/span>Individual instance method

Z么要引入Individual instance methodQ这是因为簿记规则往往很复杂,不会(x)仅仅是乘以一个系数这么简单。例如计E,不同的金额对应不同的E率。也是说对于不同的实例Q?/span>instanceQ会(x)对应不同?/span>behavior?/span>

3.        Posting rules如何被执?/span>

Posting rule execution pattern describes ways in which posting rules can be triggered.

4.        Posting rules在哪里定?/span>

Posting rules for many accounts

Choosing entries

Accounting practice pattern: q是Zl?/span>Posting rulesq行分类

The source of an entry

Balance sheets and income statements(资负和损益表)

Corresponding account

Specialized account model

 

Transactions

Account, entry?/span>Transactionsq三者之间的关系通过UML体现。这是这章的基础?/span>


 

entry?/span>Transactions之间的关pd如同是先有鸡q是先有蛋的问题。因为有U束条gQ如果没有创?/span>Transactions׃能创?/span>entryQ同h?/span>entry也不能创?/span>TransactionsQ这也是因ؓ(f)有约束条件?/span>

解决Ҏ(gu)是Transactions负责创徏entryQ?/span>entry的创建操作仅能由Transactions来访问。但是这h怼(x)q背U束Q?/span>No problemQ我们可以定义规则就是:(x)所有的public operations必须以所有约束条仉得到满为结束条件?/span>

Transactionsq个概念在实际的业务pȝ中是不存在的Q它其实是h造的Q?/span>artificalQ,是ؓ(f)了便于数据管理,毕竟我们现在用的q是关系型数据库以及(qing)面向对象的设计方法哈?/span>

 

Summary Account


 

注意q里Summary Account的记账方式是和业务系l不同的。在实际的胦务管理中Q我们会(x)在汇总̎户和明细账户中分别编制会(x)计分录(EntryQ,而在业务pȝ中ƈ不是q样?/span>,按照Martin的叙qͼ(x)

1.        The entries of a summary account are derived from the component’s entries in a recursive manner.

2.        post entries only to detail accounts not to summary accounts.

 

Posting Rule

1.        什么是Posting RulesQ?/span>(记规则)

Posting rule looks at a particular account and, when it sees an entry, creates another entry.


 

单的Posting Rule是乘以一个因子,如图Figure6.8.但是复杂的,例如计税p采用Figure6.9的模式?/span>


 

注意q也是Z么要引入Individual instance method的原因。(q个我也是看?/span>2遍才明白的啊Q?/span>

q句话很重要Q?/span>We want the behavior to vary with each individual instance.

所以不能通过cȝ承实现?/span>Individual instance method是讨论如何实现“the behavior to vary with each individual instance”?/span>

1.        Individual instance method-如何实现记规则Q?/span>

1)        Singleton Class单一实例

2)        Strategy Pattern

3)        使用内部?/span>case语句

?/span>Posting Rule上我们要定义一pd的操作?/span>

?/span>Posting Rule上定?/span>computeFor?/span>ComputeFor包含case语句去调用上面的一pd的操作?/span>

4)        使用带参数的Ҏ(gu)Q?/span>Parameterized MethodQ?/span>

5)        解释?/span>Interpreter

最?/span>Martinl出了选择实现Ҏ(gu)的原则。他的首选是Q?/span>Parameterized Method?/span>

不过我认为如果是做品,解释?/span>Interpreter是不二的选择。因为实际的业务pȝ的复杂程度绝不是M人在产品开发过E中可以惌到的Q最大的灉|性是q求的唯一目标。用开发的复杂性换取实施的灉|性?/span>

2.        Posting Rules在哪里执?/span>

原则Q?/span>Separate the strategy of firing the posting rules from the rules themselves as much as possible to reduce the coupling between these mechanisms.

A.        Eager Firing

当触发̎户中产生一?/span>entryQ?/span>posting rules׃(x)被触发执行?/span>

?/span>2U方式:(x)

AQ在创徏Transaction?/span>entry的方法中posting rules被触发?/span>

BQ?/span>Observer模式?/span>Make Posting rules observer of their trigger account.q种方式比较复杂Q尽量避免用?/span>

B.       Account-based FiringZ账户的触?/span>

q是一Ug时处理。对应每个̎L(fng)护一个未处理交易条目列表Q尤光用?/span>cyclic accounting systemQ@环记账系l)。每?/span>account处理一ơ?/span>

一定要注意账户的处理顺序?/span>

C.       Posting-rule-based Firing

?/span>Account-based Firing怼Q只?/span>Posting rule负责理未处理交易条目列表。这U触发方式比较复杂,量避免使用哈?/span>

D.       Backward-chained Firing

以当前操作帐Pprocessing accountQؓ(f)输出->扑ֈposting rule->再推导出对应?/span>accountQ这是要找出哪个帐戯发的当前操作帐户Q?/span>->对这些帐戯行更?/span>

E.        如何选择posting rule的执行方式:(x)

要基于一?/span>2Ҏ(gu)考虑Q?/span>

ü         Posting rule执行的时?/span>

ü         希望在何处捕获错?/span>

Martin对这几种Ҏ(gu)的评hQ?/span>

Eager Firing没有灉|?/span>

Account-based Firing?/span>Posting-rule-based Firing都具有很好的灉|性,帐户l构单用前者,若复杂,则用后者?/span>

4.        Posting Rules在哪里定?/span>

两种Ҏ(gu)Q?/span>

1Q?span style="font: 7pt 'Times New Roman'"> knowledge and operational levelQ?/span>posting rules定义?/span>account type上?/span>

2Q?span style="font: 7pt 'Times New Roman'"> 使用summary accountQ把posting rules定义?/span>summary accountQ所有子帐户也都遵@同样?/span>posting rules

对于q两U不同方法的选择的最主要的因素就是:(x)the degree of difference in the behavior of the candidate accounts and account types.

Choosing the entry

有三U方法:(x)

1Q?span style="font: 7pt 'Times New Roman'"> Getting all entries back and then doing a selection

2Q?span style="font: 7pt 'Times New Roman'"> Providing a selection-specific method

3Q?span style="font: 7pt 'Times New Roman'"> Using a filter?/span>Filter是一个封装了查询query的对象?/span>Pattern?/span>Figure6.24的时序图?/span>

 

 

 




amenglai 2009-04-16 15:02 发表评论
]]>
վ֩ģ壺 | | | | Ϋ| | | | | ƽ˳| | | | ˫| | | | | Ű| | ½| | û| | | ͳ| ÷| ׯ| | | | Զ| | | | ȫ| ʩ| | ͷ| | Զ|