ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久一区,高清av电影在线观看,欧美国产日韩在线观看http://www.aygfsteel.com/canonical/category/4849.htmlzh-cnSun, 08 May 2011 22:31:23 GMTSun, 08 May 2011 22:31:23 GMT60从é¢å‘对象到é¢å‘切é¢http://www.aygfsteel.com/canonical/archive/2011/05/08/349771.htmlcanonicalcanonicalSun, 08 May 2011 04:07:00 GMThttp://www.aygfsteel.com/canonical/archive/2011/05/08/349771.htmlhttp://www.aygfsteel.com/canonical/comments/349771.htmlhttp://www.aygfsteel.com/canonical/archive/2011/05/08/349771.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/349771.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/349771.html
2. é¢å‘对象(OOP)指出åQŒåœ¨˜q™ä¸€é¢†åŸŸä¸Šå¯ä»¥å¾ç«‹åˆ†¾l?group)¾l“æž„åQšä¸€¾l„相关的å˜é‡å’Œå‡½æ•°æž„æˆä¸€ä¸ªé›†åˆï¼Œæˆ‘们¿UîC¹‹ä¸ºå¯¹è±?Object)ã€‚åŒæ—¶åœ¨åˆ†ç»„¾l“构上å¯ä»¥å®šä¹‰ä¸€ä¸ªè¿½Ž?推ç†)关系:  D > B, ‹z„¡”Ÿ¾c»D从基¾c»B¾l§æ‰¿åQˆinheritance)åQŒç›¸åº”çš„‹z„¡”Ÿå¯¹è±¡½W¦åˆåŸºç±»å¯¹è±¡æ‰€æ»¡èƒö的所有约æŸã€‚æŽ¨ç†æ˜¯æœ‰ä­h(hu¨¢n)值的åQŒå› ä¸ºæ ¹æ?D > B, B > A å¯ä»¥è‡ªåŠ¨æŽ¨å¯¼å‡?D > AåQŒæ‰€æœ‰é’ˆå¯¹A的断­a€åœ¨ç†è®ÞZ¸Šå¯¹D都æˆç«?˜q™ä¹Ÿž®±æ˜¯æˆ‘们常说çš?#8220;‹z„¡”Ÿå¯¹è±¡ is a 基类对象”)ã€‚ç¼–è¯‘å™¨ä¹Ÿèƒ½æœ‰ç‚¹æ™ø™ƒ½äº†ã€?br />    一个有­‘£çš„地方是,D > Bæ„味ç€åœ¨Då’ŒBä¹‹é—´å­˜åœ¨ç€æŸç§å·®å¼‚åQŒä½†æ˜¯æˆ‘们崿— æ³•把它昑ּ的表辑ևºæ¥ï¼ä¹Ÿå°±æ˜¯è¯´åœ¨ä»£ç å±‚é¢ä¸Šæˆ‘们无法明确表达 D - Bæ˜¯ä»€ä¹ˆã€‚äØ“äº†æŠŠæ›´å¤šçš„ä¿¡æ¯ä¸æ–­çš„导入到原有系¾lŸä¸­åQŒé¢å‘对象内¾|®æä¾›çš„æ–ÒŽ(gu¨©)³•是å¾ç«‹ä¸æ–­æ‰©å±•çš„¾cÕdž‹æ ?w¨¨i),¾cÕdž‹æ ?w¨¨i)æ¯å¢žé•¿ä¸€å±‚,ž®±å¯ä»¥å¤šå®¹çº³ä¸€äº›æ–°çš„ä¿¡æ¯ã€‚这是一¿U金字塔å¼çš„¾l“æž„åQŒåªä¸è¿‡æ˜¯ä¸€¿U倒立的金字塔åQŒæœ€¾lˆåŸºç‚¹ä¼šè¢«ä¸æ–­å¢žé•¿çš„¾l“构压力所压垮ã€?br />
3. ¾l„äšg技æœ?Component)本质上是在æå€¡é¢å‘接å?interface)åQŒç„¶åŽé€šè¿‡æŽ¥å£ä¹‹é—´çš„组å?Composition)è€Œä¸æ˜¯å¯¹è±¡ä¹‹é—´çš„¾l§æ‰¿(inheritance)æ¥æž„造系¾lŸã€‚基于组åˆçš„è§‚å¿µç›¸å½“äºŽæ˜¯å®šä¹‰äº†è¿½Ž—å…³¾p»ï¼šD = B + C。终于,我们勉强å¯ä»¥åœ¨æ¦‚念层é¢ä¸ŠåšåŠ æ³•äº†ã€?br />    ¾l„äšgå…è®¸æˆ‘ä»¬éšæ„的组åˆï¼ŒæŒ‰ç…§ç”Þq®€å•åˆ°å¤æ‚çš„æ–¹å‘æž„造系¾lŸï¼Œä½†æ˜¯¾l„äšgæž„æˆçš„æˆå“之间ä»ç„¶æ— æ³•自ç”Þqš„建立关系。这æ„味瀾l„äšg¾l„装得到的æˆå“åªæ˜¯æŸ¿U孤立的åQŒå¶ç„¶çš„产物ã€?br />    F = A + B + C  ? G = A + D + Cã€?br />
4. 在数学上åQŒé…备了加法˜qç®—çš„é›†åˆæž„æˆåоŸ¤ï¼Œå¦‚æžœè¦æˆä¸ºç¾¤(Group)åQŒåˆ™å¿…é¡»å®šä¹‰ç›¸åº”çš„é€†è¿½Ž—ï¼šå‡æ³•ã€?¾Ÿ¤ç»“æž„ä‹É得大¾_’åº¦çš„ç»“æž„å˜æ¢æˆä¸ºå¯èƒ½ã€?br />    F = A + B + C = A + D - D + B + C = (A + D + C) - D + B = G - D + B
   在ä¸ç ´å原有代ç çš„æƒ…况下åQŒå¯¹åŽŸæœ‰¾pÈ»ŸåŠŸèƒ½˜q›è¡Œå¢žåˆ åQŒè¿™ž®±æ˜¯é¢å‘切é¢(AOP)技术的全部价倹{€?br />



]]>
业务架构òq›_°çš„自ä¸ùN—®é¢?/title><link>http://www.aygfsteel.com/canonical/archive/2011/02/11/344053.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Fri, 11 Feb 2011 06:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2011/02/11/344053.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/344053.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2011/02/11/344053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/344053.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/344053.html</trackback:ping><description><![CDATA[   业务架构òq›_°çš„è®¾è®¡ä¸Žå®žçŽ°è¦æ¯”普通业务系¾lŸå›°éš‘Ö¾ˆå¤šã€‚一个核心难点在于如何å¾ç«‹æ™®é有效的应用½E‹åºæ¨¡åž‹åQŒå¦‚何控制儿Uå¶ç„¶æ€§çš„业务需求对¾pÈ»Ÿæ•´ä½“架构的冲凅R€‚大多数现有的业务架构åã^å°éƒ½æ˜¯æä¾›äº†ä¸€ä¸ªåºžå¤§çš„万能性äñ”å“,它预料到了所有å¯èƒ½åœ¨ä¸šåŠ¡¾pÈ»Ÿå¼€å‘中出现的å¯èƒ½æ€§ï¼Œòq¶æä¾›äº†ç›¸åº”çš„å¤„ç†æ‰‹ŒDüc€‚业务系¾lŸå¼€å‘äh员的能力被é™å®šåœ¨ä¸šåŠ¡æž¶æž„òq›_°æ‰€å…许的范围之内。如果业务架构åã^å°çš„夿‚åº¦äØ“A+åQŒåˆ™æˆ‘们最多åªèƒ½ç”¨å®ƒæ¥å¼€å‘夿‚度为A的业务系¾lŸã€‚一个典型的特從®±æ˜¯ä½¿ç”¨ä¸šåŠ¡æž¶æž„òq›_°çš„功能酾|®éžå¸¸ç®€å•,但是è¦å¼€å‘相应的功能ç‰ÒŽ(gu¨©)€§åˆ™éžå¸¸å›°éš¾åQŒè€Œä¸”必须采用与业务系¾lŸå¼€å‘完全ä¸åŒçš„æŠ€æœ¯æ‰‹ŒDµå’Œå¼€å‘æ–¹å¼ã€?br />    采用业务架构òq›_°æ¥å¼€å‘业务系¾lŸï¼Œå³ä‹É看似开å‘工作釞®ï¼Œæœ€¾lˆäñ”生的å„ç±»é…置代ç é‡ä¹Ÿå¯èƒ½ä¼šå¤§å¤§è¶…˜q‡æ™®é€šæ‰‹å·¥ç¼–½E‹äñ”生的代ç é‡ï¼Œ˜q™æ„味ç€òq›_°ž®è£…äº†ä¸šåŠ¡å†…åœ¨çš„å¤æ‚性,˜q˜æ˜¯æ„味ç€òq›_°å¼•入了ä¸å¿…è¦çš„夿‚性?很多业务架构òq›_°çš„å–炚wƒ½æ˜¯é›¶ä»£ç çš„应用开å‘,低水òq³çš„å¼€å‘äh员也å¯ä»¥ä¸Õd¯¼çš„å¼€å‘,但是ä¸ÞZ»€ä¹ˆé«˜æ°´åã^的程åºå‘˜ä¸èƒ½å€ŸåŠ©äºŽè¿™äº›å¼€å‘åã^å°æžå¤§çš„æé«˜ç”Ÿäñ”率?<br />    一般的业务架构òq›_°æ— æ³•回答以下问题åQ?br /> 1) 业务¾pÈ»Ÿå¯ä»¥é€šè¿‡ä½¿ç”¨è®¾è®¡å·¥å…·æ¥é‡ç”¨ä¸šåŠ¡æž¶æž„åã^å°å·²¾l实现的功能åQŒä½†æ˜¯ä¸šåŠ¡ç³»¾lŸå†…部大é‡ç›¸ä¼¼çš„æ¨¡åž‹é…置如何æ‰èƒ½å¤Ÿè¢«é‡ç”¨åQ?br /> 2) 特定的业务领域中存在ç€å¤§é‡ç‰ÒŽ(gu¨©)®Šçš„业务规则,例如“审批串行˜q›è¡ŒåQŒæ¯ä¸€æ­¥éƒ½å…许回退åˆîC¸Šä¸€æ­¥ï¼Œè€Œä¸”å…许选择跌™{åˆîC“Qæ„åŽä¸€æ­?#8221;。这些规则如何æ‰èƒ½å¤Ÿè¢«å¼•å…¥è®¾è®¡å·¥å…øP¼Œ½Ž€åŒ–é…¾|®è¿‡½E‹ï¼Ÿ<br /> 3) å·²ç»å¼€å‘好的业务系¾lŸä½œä¸ÞZñ”哿¥é”€å”®çš„æ—¶å€™ï¼Œå¦‚何应对具体客户的定制化åQŸå¦‚果按照客戯‚¦æ±‚修攚w…¾|®ï¼Œåˆ™ä»¥åŽä¸šåŠ¡ç³»¾lŸè‡ªíw«æ˜¯å¦è¿˜èƒ½å¤Ÿå®žçŽ°ç‰ˆæœ¬å‡çñ”åQ?br />    <br />    Witrixòq›_°æä¾›çš„åŸºæœ¬å¼€å‘æ¨¡åž‹äØ“ <br />           <strong>App = Biz aop-extends Generator<DSL></strong><br /> 在这一图景下,我们ž®±å¯ä»¥å›ž½{”以上三个问题:<br /> 1) 业务模型通过领域特定语言(DSL)æ¥è¡¨è¾¾ï¼Œå› æ­¤å¯ä»¥ä½¿ç”¨è¯­è¨€ä¸­é€šç”¨çš„ç‘ô承或者组件抽象机制æ¥å®žçŽ°æ¨¡åž‹é‡ç”¨ã€?br /> 2) æŽ¨ç†æœºå¯¹äºŽæ‰€æœ‰æŽ¨ç†è§„则一视åŒä»ï¼Œç‰ÒŽ(gu¨©)®Šçš„业务规则与通用的业务规则一样都å¯ä»¥å‚与推熘q‡ç¨‹åQŒåƈ且一般情况下ç‰ÒŽ(gu¨©)®Šçš„业务规则更能够大幅½Ž€åŒ–ç³»¾lŸå®žçŽ°ç»“æž„ã€?br /> 3) 相对于原始模型的修改被独立出æ¥ï¼Œç„¶åŽåº”用é¢å‘切é¢(AOP)技术将˜q™äº›ç‰¹å®šä»£ç ¾l‡å…¥åˆ°åŽŸå§‹æ¨¡åž‹ä¸­ã€‚åŽŸå§‹æ¨¡åž‹ä¸Žå·®å¼‚ä¿®æ”¹ç›æ€º’分离åQŒå› æ­¤åŽŸå§‹æ¨¡åž‹å¯ä»¥é𿗶凾U§ã€?br /> <br />   Witrixòq›_°æ‰€å¼ø™°ƒçš„䏿˜¯å¼ºå¤§çš„功能åQŒè€Œæ˜¯ä¸€åˆ‡è¡¨è±¡ä¹‹åŽçš„æ•°å­¦è§„律。Witrixòq›_°é€šè¿‡ž®‘数基本原ç†çš„åå¤åº”ç”¨æ¥æž„造èÊYä»¶ç³»¾lŸï¼Œå®ƒæœ¬íw«å°±æ˜¯é‡‡ç”¨åã^å°æŠ€æœ¯æž„é€ çš„äº§ç‰©ã€‚æˆ‘ä»¬ç”¨å¤æ‚åº¦äØ“Açš„å·¥å…·åˆ¶é€ å¤æ‚度为A+çš„äñ”å“,然厘q›ä¸€æ­¥ä»¥˜q™ä¸ªå¤æ‚åº¦äØ“A+çš„äñ”å“äØ“å·¥å…·æ¥æž„造夿‚度为A++çš„äñ”å“ã€?br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/344053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2011-02-11 14:02 <a href="http://www.aygfsteel.com/canonical/archive/2011/02/11/344053.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>模型驱动的数学原ç?/title><link>http://www.aygfsteel.com/canonical/archive/2011/02/07/343919.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 06 Feb 2011 18:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2011/02/07/343919.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/343919.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2011/02/07/343919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/343919.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/343919.html</trackback:ping><description><![CDATA[<p>    一¿UæŠ€æœ¯æ€æƒ³å¦‚æžœ¼‹®å®žèƒ½å¤Ÿ½Ž€åŒ–ç¼–½E‹ï¼Œæœ‰æ•ˆé™ä½Ž¾pÈ»Ÿæž„é€ çš„å¤æ‚性,那么它必然具有柿U内在的数学解释。å之,无论一¿U技术机制显得如何åŽä¸½é«˜æ·±ï¼Œå¦‚果它没æœ? 清晰的数学图象,那么ž®±å¾ˆéš¾è¯æ˜Žè‡ªíw«å­˜åœ¨çš„价倹{€‚对于模型驱动架æž?MDA)åQŒæˆ‘长期以æ¥ä¸€ç›´éƒ½æŒæœ‰ä¸€¿U批判æ€åº¦ã€‚(Physical Model Driven<a > http://canonical.javaeye.com/blog/29412</a> åQ‰ã€‚原因就在于“由工兯‚‡ªåŠ¨å®žçŽîC»Žòq›_°æ— å…³æ¨¡åž‹(PIM)å‘åã^å°ç›¸å…Ïx¨¡åž?PSM)çš„è{æ?#8221;˜q™ä¸€å›¾æ™¯ä¼ég¹Žåªæ˜¯æƒÏxŠŠ¾pÈ»Ÿä»Žå®žçŽ°çš„æ³¥æ²¼ä¸­æ‹¯æ•‘å‡ºæ¥ï¼Œé®è”½ç‰¹å®šè¯? ­a€åQŒç‰¹å®šåã^åîC¸­çš„å¶ç„¶çš„é™åˆ¶æ¡äšgåQŒåƈ没有触åŠåˆ°ç³»¾lŸå¤æ‚性这一核心问题。而所谓的å¯è§†åŒ–徿¨¡å……å…‰™‡ä¸è¿‡æ˜¯è¯´æ˜Žäh¾c»è¶…强的视觉模å¼è¯†åˆ«èƒ½åŠ›ä½¿å¾—æˆ‘ä»¬å¯ä»¥˜q…é€? 识别¾pÈ»Ÿå…¨æ™¯å›¾ä¸­éšå«çš„æ•´ä½“结构,更快的实现对¾pÈ»Ÿ¾l“构的ç†è§£ï¼Œòq¶æ²¡æœ‰è¯æ˜Žç³»¾lŸå¤æ‚性有ä»ÖM½•本质性的é™ä½Žã€‚丘q‡å¦‚果我们æ¢ä¸€ä¸ªè§†è§? ä¸æŠŠæ¨¡åž‹å±€é™äØ“æŸç§å¯è§†åŒ–çš„¾l“æž„å›?è€Œå°†å®ƒå®šä¹‰äØ“æŸç§é«˜åº¦‹¹“羃的领域æ˜q? 则模型驱动基本上½{‰ä­h(hu¨¢n)于根æ®é¢†åŸŸæ˜q°è‡ªåŠ¨æŽ¨å¯¼å¾—åˆ°æœ€¾lˆçš„应用½E‹åºã€‚沿瀘q™ä¸€æ€èµ\åQŒW(xu¨¦)itrixòq›_°ä¸­çš„很多设计实际上å¯ä»¥è¢«è§£é‡Šä¸ºæ¨¡åž‹å®šä¹‰ï¼Œæ¨¡åž‹æŽ¨å¯¼ä»¥åŠ æ¨¡åž‹åµŒå…¥½{‰æ–¹é¢çš„æŽ¢çƒ¦ã€‚这些具体技术的背åŽéœ€è¦çš„æ˜¯æ¯”一般MDAæ€æƒ³æ›´åŠ ¾_¾è‡´çš„设计原ç†ä½œä¸ºæ”¯æ’‘。我们å¯ä»¥è¿›è¡Œå¦‚下抽象分æžã€‚(Witrixæž¶æž„åˆ†æž <a >http://canonical.javaeye.com/blog/126467</a> åQ?br /> <br /> 1. é—®é¢˜å¤æ‚åQŸçº¿æ€§åˆ‡åˆ†æ˜¯å‰Šå‡é—®é¢˜è§„模åQˆä»Žè€Œé™ä½Žé—®é¢˜å¤æ‚性)的通用手段åQŒä¾‹å¦‚模å?Module)。(软äšg中的分æžå­?<a >http://canonical.javaeye.com/blog/33885</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">=</span><span style="color: #000000;"> M1 </span><span style="color: #000000;">+</span><span style="color: #000000;"> M2 </span><span style="color: #000000;">+</span><span style="color: #000000;"> M3 </span><span style="color: #000000;">+</span><span style="color: #000000;"> <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />    <br /> </span></div> <p><br /> </p> <p>2. 分嗘q‡å¤šåQŸåŒæ€æ˜ ž®„是¾pÈ»Ÿ¾U¦åŒ–的一般化½{–ç•¥åQŒä¾‹å¦‚多æ€ï¼ˆpolymorphismåQ‰ã€‚ï¼ˆåŒæž„ä¸ŽåŒæ€ï¼šè®¤è¯†åŒä¸€æ€?<a >http://canonical.javaeye.com/admin/blogs/340704</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">(abc,abb,ade,<img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />) </span><span style="color: #000000;">-></span><span style="color: #000000;"> [a],   (bbb, bcd,bab,<img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />) </span><span style="color: #000000;">-></span><span style="color: #000000;"> [b]</span></div> <p><br /> </p> <p>3. é€’å½’ä½¿ç”¨ä»¥ä¸Šä¸¤ç§æ–ÒŽ(gu¨©)³•åQŒå°†åˆ†åˆ†åˆåˆçš„æ¸¸æˆè¿›è¡Œåˆ°åº•ï¼ŒæŽ¨å‘æžè‡´ã€?br /> <br /> 4. 以少控多的终æžåÅžæ€ï¼Ÿå¦‚果存在åQŒåˆ™æž„æˆè¾“入与输å‡ÞZ¹‹é—´çš„éžçº¿æ€§å˜æ¢ï¼ˆè¾“入中局部微ž®å˜åŒ–将坯D‡´è¾“出中大范围明显的å˜åŒ–)ã€?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">=</span><span style="color: #000000;"> F(M)</span></div> <p><br /> </p> <p>5. å˜æ¢å‡½æ•°Få¯ä»¥è¢«è¯ é‡Šäؓ解释å™?Interpreter)或者翻译机åQŒä¾‹å¦‚工作æµå¼•擎ž®†å·¥ä½œæµæè¿°ä¿¡æ¯¾˜»è¯‘ä¸ÞZ¸€æ­¥æ­¥çš„具体æ“作,工作‹¹æ˜q°å¯ä»¥çœ‹ä½œæ˜¯ç”±åº• 层引擎支撑的åQŒåœ¨æ›´é«˜çš„æŠ½è±¡å±‚é¢ä¸Š˜q行的领域模型。但是在˜q™ç§è§‚ç‚¹ä¸‹ï¼Œå˜æ¢å‡½æ•°Fä¼ég¹Žæ˜¯é’ˆå¯ÒŽ(gu¨©)Ÿ¿U特定模型构造的åQŒå¼•擎内部信æ¯ä¼ å¯¼çš„途径是确定的åQŒå…³æ³¨çš„ é‡ç‚¹å§‹ç»ˆåœ¨æ¨¡åž‹ä¸ŠåQŒé‚£ä¹ˆè§£é‡Šå™¨è‡ªèín应该如何被构造出æ¥å‘¢åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">~</span><span style="color: #000000;"> M</span></div> <p><br /> </p> <p>6. å¦å¤–一¿U更加开攄¡š„è§‚ç‚¹æ˜¯å°†å˜æ¢å‡½æ•°F看作是生æˆå™¨(Generator)æˆ–è€…æŽ¨ç†æœºã€‚Fž®†æ ¹æ®è¾“入的信æ¯åQŒç»“åˆå…¶ä»–知识,推ç†ç”Ÿæˆä¸€¾pÕdˆ—新的命题和断 ­a€ã€‚æ¨¡åž‹çš„åŠ›é‡æºäºŽæŽ¨å¯¼ã€‚å˜æ¢å‡½æ•°F本èín在系¾lŸæž„造过½E‹ä¸­å¤„于核心åœîC½åQŒM仅仅是触å‘其推熘q‡ç¨‹çš„ä¿¡æ¯æºè€Œå·²ã€‚Fž®†æ¦¨òq²M的最åŽä¸€ç‚¹å‰©ä½™ä­h(hu¨¢n)å€û|¼Œæ‰€æœ‰æ ¹æ®M 能够¼‹®å®šçš„事实将被自动实玎ͼŒè€Œå¤§é‡å•é M自èínçš„ä¿¡æ¯æ— æ³•判定的命题也å¯ä»¥ç»“åˆF内在的知识作出判断。生æˆå™¨è‡ªèín的构造过½E‹éžå¸¸ç®€å?-åªè¦ä¸æ–­å‘推ç†ç³» ¾lŸä¸­å¢žåŠ æ–°çš„æŽ¨ç†è§„则å›_¯ã€‚语­a€å†…ç½®çš„æ¨¡æ¿æœºåˆ?template)åŠå…ƒ¾~–程技æœ?meta programming)åQŒæˆ–者跨­‘Šè¯­­a€è¾¹ç•Œçš„代ç ç”Ÿæˆå·¥å…·éƒ½å¯ä»¥çœ‹ä½œæ˜¯ç”Ÿæˆå™¨çš„具体实例。(关于代ç ç”Ÿæˆå’ŒDSL <a >http://canonical.javaeye.com/blog/275015</a> )</p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">=</span><span style="color: #000000;"> G</span><span style="color: #000000;"><</span><span style="color: #000000;">M</span><span style="color: #000000;">></span></div> <p><br /> </p> <p>7. 生æˆå™¨G之所以å¯ä»¥è¢«ç‹¬ç«‹å®žçްåQŒæ˜¯å› äؓ我们å¯ä»¥å®žçŽ°ç›¸å¯¹çŸ¥è¯†ä¸Žç»å¯¹çŸ¥è¯†çš„分离, ˜q™ä¹Ÿæ­£æ˜¯é¢å‘对象技术的本质所在。(é¢å‘对象之åÅžå¼ç³»¾l?<a >http://canonical.javaeye.com/blog/37064</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">G</span><span style="color: #000000;"><</span><span style="color: #000000;">M</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">==></span><span style="color: #000000;"> G </span><span style="color: #000000;">=</span><span style="color: #000000;"> {m </span><span style="color: #000000;">=></span><span style="color: #000000;"> m.x(a,b,c);m.y(); <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /> }</span></div> <p><br /> </p> <p>8. 现实世界的ä¸å®Œç¾ŽåQŒå°±åœ¨äºŽçŽ°å®žå†³ä¸æŒ‰ç…§æˆ‘ä»¬ä¸ºå…¶æŒ‡å®šçš„ç†æƒŒ™µ\¾U¿å‰˜q›ã€‚具体场景中æ€ÀL˜¯å­˜åœ¨ç€å¤§é‡æˆ‘们无法预知çš?#8220;噪声”åQŒå®ƒä»¬ä‹Éå¾—ä“Q何在“˜q‡åŽ»”¼‹®ç«‹çš„æ–¹½E? 都无法在“æœªæ¥”ä¿æŒæŒä¹…çš„åã^衡。传¾lŸæ¨¡åž‹é©±åŠ¨æž¶æž„çš„å›°å¢ƒ?y¨­u)®±åœ¨äºŽæ­¤ã€‚我们å¯ä»¥é€‰æ‹©ž®†æ¨¡åž‹M和生æˆå™¨G䏿–­å¤æ‚化,容纳­‘Šæ¥­‘Šå¤šçš„å¶ç„¶æ€§ï¼Œç›´è‡³å¤±åŽ»å¯ÒŽ(gu¨©)¨¡åž‹æ•´ 体结构的控制力。å¦å¤–一¿Ué€‰æ‹©æ˜¯æ¨¡åž‹åœ¨ä¸æ–­è†¨èƒ€åQŒä¸æ–­æé«˜è¦†ç›–能力的˜q‡ç¨‹ä¸­ï¼Œä¸æ–­çš„空‹zžåŒ–åQŒäñ”生大é‡å¯æ’å…¥(plugin)的接入点åQŒæœ€¾lˆä“áå¤±æ¨¡åž‹çš„æŽ¨ç† èƒ½åŠ›åQŒé€€åŒ–æˆä¸ÞZ¸€¿Uç¼–ç è§„范。Witrixòq›_°ä¸­é‡‡ç”¨çš„æ˜¯ç¬¬ä¸‰ç§é€‰æ‹©åQšæ¨¡åž‹åµŒå…?-模型中的多余信æ¯è¢«ä¸æ–­æ¸…‹z—掉åQŒæ¨¡åž‹é€šè¿‡¾_„¡‚¼åŒ–楽H出自èín存在的åˆç? 性,æˆäؓ更广泛的˜q行环境中的支撑骨架。(¾l“构的自­‘Ïx€?<a >http://canonical.javaeye.com/blog/482620</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">!=</span><span style="color: #000000;"> G0</span><span style="color: #000000;"><</span><span style="color: #000000;">M0</span><span style="color: #000000;">></span><span style="color: #000000;">  åQ?nbsp;App </span><span style="color: #000000;">!=</span><span style="color: #000000;"> G0</span><span style="color: #000000;"><</span><span style="color: #000000;">M1</span><span style="color: #000000;">></span><span style="color: #000000;">åQ?nbsp;App </span><span style="color: #000000;">=</span><span style="color: #000000;"> G1</span><span style="color: #000000;"><</span><span style="color: #000000;">M1</span><span style="color: #000000;">></span><span style="color: #000000;"> <br /> </span></div> <p><br /> </p> <p>9. 现在的问题是åQšå¦‚何基于一个已¾l被完美解决的é‡å¤§é—®é¢˜ï¼Œæ¥æ›´æœ‰æ•ˆçŽ‡çš„æžå®šä¸æ–­å‡ºçް但åˆä¸æ˜¯é‡å¤å‡ºçŽ°çš„å°é—®é¢˜ã€‚现在我们所需è¦çš„䏿˜¯æ²¿ç€æŸä¸ª¾l´åº¦˜q›è¡Œå‡åŒ€çš? 切分åQŒè€Œå¿…™åÀL˜¯æŸç§æœ‰æ•ˆçš„陾l´æ‰‹ŒDüc€‚如果我们å¯ä»¥å®šä¹‰ä¸€¿U投å½Þq®—å­P, ž®†å¾…解决的问题投ž®„到已ç»è¢«è§£å†³çš„问题域中åQŒåˆ™å‰©ä¸‹çš„补集往往å¯ä»¥è¢«ç®€åŒ–。(ä¸ÖM»Žåˆ†è§£è€Œä¸æ˜¯æ­£äº¤åˆ†è§?<a >http://canonical.javaeye.com/blog/196826</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">dA </span><span style="color: #000000;">=</span><span style="color: #000000;"> App </span><span style="color: #000000;">-</span><span style="color: #000000;"> P[App]  </span><span style="color: #000000;">=</span><span style="color: #000000;"> App </span><span style="color: #000000;">-</span><span style="color: #000000;"> G0</span><span style="color: #000000;"><</span><span style="color: #000000;">M0</span><span style="color: #000000;">></span></div> <p><br /> </p> <p>10. è¦å®žçŽîC»¥ä¸Šå¾®æ‰°åˆ†æžç­–ç•¥ï¼Œå‰ææ¡äšg是å¯ä»¥å®šä¹‰é€†å…ƒåQŒåƈ且需è¦å®šä¹‰ä¸€¿Uç²¾¾l†çš„¾_˜ç»“æ“作åQŒå¯ä»¥å°†åˆ†æ•£çš„æ‰°åЍ釿žäØ“¾_„¡¡®çš„应用到基础¾pÈ»Ÿçš„å„处。Witrixòq›_°çš„具体实现类ä¼égºŽæŸç§AOPåQˆé¢å‘切é¢ç¼–½E‹ï¼‰æŠ€æœ¯ã€‚(逆元åQšä¸å­˜åœ¨çš„真实存åœ?<a >http://canonical.javaeye.com/blog/325051</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">=</span><span style="color: #000000;"> A </span><span style="color: #000000;">+</span><span style="color: #000000;"> D </span><span style="color: #000000;">+</span><span style="color: #000000;"> B </span><span style="color: #000000;">=</span><span style="color: #000000;"> (A </span><span style="color: #000000;">+</span><span style="color: #000000;"> B </span><span style="color: #000000;">+</span><span style="color: #000000;"> C) </span><span style="color: #000000;">-</span><span style="color: #000000;"> C </span><span style="color: #000000;">+</span><span style="color: #000000;"> D </span><span style="color: #000000;">=</span><span style="color: #000000;"> App0 </span><span style="color: #000000;">+</span><span style="color: #000000;"> (</span><span style="color: #000000;">-</span><span style="color: #000000;">C </span><span style="color: #000000;">+</span><span style="color: #000000;"> D) </span><span style="color: #000000;">=</span><span style="color: #000000;"> G0</span><span style="color: #000000;"><</span><span style="color: #000000;">M0</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> dA</span></div> <p><br /> </p> <p>11. 模型驱动òq¶ä¸æ„味ç€ä¸€ä¸ªåº”用åªèƒ½ç”±å”¯ä¸€çš„一个模型æ¥é©±åЍåQŒä½†æ˜¯å¦‚果引入多个ä¸åŒåÅžå¼çš„æ¨¡åž‹åQŒåˆ™å¿…é¡»ä¸ºå¦‚ä¸‹æŽ¨ç†æä¾›å…·ä½“çš„æŠ€æœ¯èµ\径:<br />   A. ž®†å¤šä¸ªæ¨¡åž‹å˜æ¢åˆ°å…±åŒçš„æ˜q°åŸŸ <br />   B. 实现多个模型的加å’?<br />   C. å¤„ç†æ¨¡åž‹ä¹‹é—´çš„冲½HåÆˆå¡«è¡¥æ¨¡åž‹ä¹‹é—´çš„ç©ºç™?br /> 在Witrixòq›_°ä¸­æ¨¡åž‹åµŒå…?¾l„åˆä¸»è¦ä¾èµ–于文本化åŠç¼–译期˜q行½{‰æœºåˆ¶ã€‚(文本åŒ?<a >http://canonical.javaeye.com/blog/309395</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App </span><span style="color: #000000;">=</span><span style="color: #000000;"> Ga</span><span style="color: #000000;"><</span><span style="color: #000000;">Ma</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> Gb</span><span style="color: #000000;"><</span><span style="color: #000000;">Mb</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> dA</span></div> <p><br /> </p> <p>12. ¾pÈ»Ÿçš„开呿—¶åˆ»t0和实施时刻t1一般是明确分离的,因此如果我们è¦å¾ç«‹ä¸€ä¸ªåŒ…å«å¼€å‘与实施时刻信æ¯çš„æ¨¡åž‹ï¼Œåˆ™è¿™ä¸€æ¨¡åž‹å¿…é¡»æ˜¯å«æ—¶çš„åQŒå¤šé˜¶æ®µçš„。关于时 é—ß_¼Œæˆ‘们所知é“的最é‡è¦çš„事实之一æ˜?#8220;æœªæ¥æ˜¯ä¸å¯é¢„知的”。在t0æ—¶åˆ»å»ºç«‹çš„æ¨¡åž‹å¦‚æžœè¦æ¶ëŠ›–t1时刻的所有å˜åŒ–,则必™åÕdšå‡ºå¤§é‡çŒœ‹¹‹ï¼Œè€Œä¸”t1时刻è·ç¦» t0时刻­‘Šè¿œåQŒçŒœ‹¹‹çš„é‡è¶Šå¤§ï¼Œ“猜测有效”˜q™ä¸€é›†åˆçš„æµ‹åº¦è¶Šž®ï¼Œç›´è‡³ä¸?。åšg˜qŸé€‰æ‹©æ˜¯å®žçް嫿—¶ç³»¾lŸæŽ§åˆ¶çš„ä¸äºŒæ³•é—¨ã€?br />    在Witrixòq›_°ä¸­ï¼Œæ‰€æœ‰åŠŸèƒ½ç‰¹æ€§çš„å®žçŽ°éƒ½åŒ…å«æŸ¿Uå…ƒæ•°æ®æè¿°æˆ–è€…å®šåˆ¶æ¨¡æ¿ï¼Œå› æ­¤¾l“åˆé…置机制以åŠåЍæ€ç¼–译技术既å¯å®žçŽ°å¤šé˜¶æ®µæ¨¡åž‹ã€‚ä¾‹å¦‚å¯¹äºŽä¸€ä¸ªåœ¨æœªæ¥ æ‰èƒ½¼‹®å®šçš„叏釿•°¾l„,我们å¯ä»¥å®šä¹‰ä¸€ä¸ªExcelæ–‡äšgæ¥å…许实施äh员录入具体的å€û|¼Œç„¶åŽé€šè¿‡åЍæ€ç¼–译技术在¾~–译期解æžExcelæ–‡äšgåQŒåƈ完æˆä¸€¾pÕdˆ—数值映 ž®„è¿½Ž—ï¼Œæœ€¾lˆå°†å…¶è{åŒ–äØ“¾~–译期存在的一个常é‡ã€‚这一˜q‡ç¨‹ä¸ä¼šå¼•å…¥ä»ÖM½•é¢å¤–çš„è¿è¡Œæˆæœ¬ï¼Œä¹Ÿä¸è¦æ±‚ä»ÖM½•特定的缓存机åˆÓž¼Œæœ€¾lˆçš„˜q行¾l“构与在未æ¥å½“所有信æ¯éƒ½åœ? ä½ä¹‹åŽå†æ‰‹å†™ä»£ç æ²¡æœ‰ä»ÖM½•区别。(D语言与tpl之编译期动作 <a >http://canonical.javaeye.com/blog/57244</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">App(t1) </span><span style="color: #000000;">=</span><span style="color: #000000;"> G(t0,t1)</span><span style="color: #000000;"><</span><span style="color: #000000;">M(t0,t1)</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> dA(t0,t1)</span></div> <p><br /> </p> <p>13. ¾U§åˆ—ç†è®ºæä¾›äº†ä¸€ä¸ªæ¼”化框æžÓž¼Œå®ƒæŒ‡å‡ºå­¤ç«‹çš„æ¨¡åž‹å¿…须被放在模型çñ”列中被定义,被解释。(关于¾U§åˆ—设计ç†è®º <a >http://canonical.javaeye.com/blog/33824</a> åQ?/p> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">M[n] </span><span style="color: #000000;">=</span><span style="color: #000000;"> G</span><span style="color: #000000;"><</span><span style="color: #000000;">M[n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> dMn</span></div> <p><br /> </p> <p>14. 推ç†çš„链æ¡ä¼šå› äØ“ä»ÖM½•局部å例的出现而中断。在ä»ÀL„时空点上åQŒæˆ‘们能够断­a€çš„事实有哪些åQŸä¿¡æ¯è¶Šž®‘,我们能够¼‹®å®šçš„事实越ž®‘,能够åšå‡ºçš„æŽ¨è®ÞZ¹Ÿž®Þp¶Šž®‘。现 在æµè¡Œçš„很多设计实质上是在破åç³»¾lŸçš„对称性,破å¾pÈ»Ÿå¤§èŒƒå›´çš„¾l“构。比如明明ORM容器已ç»å®žçŽ°æ‰€æœ‰æ•°æ®å¯¹è±¡çš„¾lŸä¸€½Ž¡ç†åQŒéžè¦å°†å…¶æ‹†åˆ†äØ“æ¯ä¸ªä¸šåŠ¡è¡¨ä¸€ä¸? çš„DAO接å£ã€‚很多对ç‰|´»æ€§çš„˜q½æ±‚å®Œå…¨æ²¡æœ‰æžæ¸…æ¥šä¿¡æ¯æ˜¯å¯¹ä¸¼‹®å®šæ€§çš„æ¶ˆé™¤åQŒè€Œä¸¼‹®å®šæ€§çš„å‡å°‘æ„味ç€é™åˆ¶çš„增加,¾U¦æŸçš„增加。(From Local To Global <a >http://canonical.javaeye.com/blog/42874</a> åQ?br /> <br />    ¾l„äšg/æž„äšg技术的宣言是生产峾l„装åQŒä½†æ˜¯ç»„è£…æœ‰æˆæœ¬åQŒæœ‰åŽé—症(例如需è¦é¢å¤–的胶水或者螺钉)。èÊY件的本质òq¶ä¸æ˜¯ç‰©è´¨ï¼Œè€Œæ˜¯ä¿¡æ¯åQŒè€Œä¿¡æ¯çš„æœ¬è´¨æ˜¯æŠ½è±¡çš„è§? å¾‹ã€‚åœ¨æŠ½è±¡ä¸–ç•Œä¸­æœ€æœ‰æ•ˆçš„ç”Ÿäº§æ–¹å¼æ˜¯æŠ½è±¡çš„è¿½Ž—ï¼Œ˜qç®—å³ç”Ÿäº§ã€‚组件å¼å¼€å‘æ„å‘³ç€æœä»ŽçŽ°æœ‰è§„å¾‹åQŒç†Ÿ¾lƒåº”ç”¨ï¼Œè€ŒåŽŸç†æ€§ç”Ÿäº§åˆ™æ„味ç€ä¸æ–­åˆ›é€ æ–°çš„规律。功能模 å—越多,¾l´æŠ¤çš„æˆæœ¬è¶Šé«˜ï¼Œæ˜¯è´Ÿæ‹…ï¼Œè€ŒæŽ¨ç†æœºåˆ¶è¶Šå¤šï¼Œç”Ÿäñ”çš„æˆæœ¬è¶Šä½Žï¼Œæ˜¯èƒ¦å¯Œã€‚åªæœ‰æ¢å¤èÊY件的抽象性,明确把æ¡è½¯äšg构造过½E‹å†…在的数学原ç†åQŒæ‰èƒ½çœŸæ­£é‡Šæ”¾èÊY ä»¶ç ”å‘的生äñ”力。(从编写代ç åˆ°åˆ‰™€ ä»£ç ?<a >http://canonical.javaeye.com/blog/333167</a> åQ?br /> </p> <p><br /> </p> <p>注解1åQšå¾ˆå¤šè®¾è®¡åŽŸåˆ™å…¶å®žæ˜¯åœ¨å¼ºè°ƒèÊY件由人构造由人ç†è§£ï¼Œè½¯äšg开呿œ¬è´¨ä¸Šæ˜¯äh¾cÕd·¥½E‹å­¦åQŒéœ€è¦å…³æ³¨äh¾cÈš„ç†è§£åŠ›ä¸Žå作能力。例如共åŒçš„建模语言å‡å°‘äº¤äº’æˆæœ¬åQŒåŸºäºŽæ¨¡åž‹å‡ž®‘设计与实现的分¼›»ï¼Œæ˜“è¯»çš„ä»£ç æ¯”é«˜æ€§èƒ½çš„ä»£ç æ›´é‡è¦åQŒåšä¸€ä»¶äº‹åªæœ‰å”¯ä¸€çš„一¿Uæ–¹å¼ç­‰ã€?br /> <br /> 注解2åQšç”Ÿæˆç³»¾lŸçš„æ¼”绎˜qœæ¯”我们惌™±¡çš„è¦æ·±åˆ»ä¸Žå¤æ‚得多。例如生命的æˆé•¿å¯ä»¥è¢«çœ‹ä½œæ˜¯åœ¨å¤–界åé¦ˆä¸‹ä¸æ–­è°ƒæ•´çš„生æˆè¿‡½E‹ã€?br /> <br /> 注解3åQšé¢†åŸŸæ˜q°æ˜¯æ›´ç´§è‡´ä½†å´æœªå¿…是更本质的表达。äh¾cÈš„DNA如果表达为ATGCåºåˆ—完全å¯ä»¥æ‹¯‚´åˆ°U盘中带走åQŒåªè¦å¯¹DNAåšå°‘é‡å¢žåˆ ï¼Œž®±å¯ä»¥å®žçްè€? é¼ åˆ°äººç±»çš„å˜æ¢ï¼ˆäººç±»å’Œè€é¼ éƒ½æœ‰å¤§çº¦30000æ¡åŸºå› ï¼Œå…¶ä¸­¾U¦æœ‰80%的基因是“完全一æ ïL(f¨¥ng)š„”åQŒå¤§¾U¦å…±äº«æœ‰99%的类似基因)åQŒä½†æ˜¯å¾ˆéš¾è®¤ä¸ÞZh¾cÀL‰€æœ‰æ™ºæ…? 的本质都体现在DNA中,DNA看è“væ¥æ›´åƒæ˜¯æŸç§åºåˆ—化ä¿å­˜åÅžå¼è€Œå·²ã€?br /> <br /> 注解4åQšæ¨¡åž‹è{æ¢è¿™ä¸€ææ³•ä¼ég¹Žæ˜¯åœ¨å¼ø™°ƒæ¨¡åž‹ä¹‹é—´çš„åŒæž„对应,转æ¢ä¼ég¹Žæ€ÀL˜¯å¯ä»¥åŒå‘˜q›è¡Œçš„,仅仅是实现难度é™åˆ¶äº†åå‘转æ¢è€Œå·²ã€‚ä½†æ˜¯å¤§é‡æœ‰ç”¨çš„æ¨¡åž‹å˜æ¢å´æ˜¯å•å‘çš„ï¼Œå˜æ¢˜q‡ç¨‹è¦æ±‚䏿–­è¡¥å……新的信æ¯ã€?br /> <br /> 注解5åQšæ¨¡åž‹é©±åŠ¨åœ¨å¾ˆå¤šäººçœ‹æ¥å°±æ˜¯æ•°æ®åº“模型或者对象模型驱动系¾lŸç•Œé¢è¿è¡Œï¼Œä½†å®žé™…上模型å¯ä»¥æ„指ä»ÀL„抽象知识。虽然在目å‰ä¸šå†…òq¿æ³›‹¹è¡Œçš„对象范å¼ä¸‹åQŒæ‰€ 有知识都å¯ä»¥è¡¨è¾¾ä¸ºå¯¹è±¡ä¹‹é—´çš„å…Œ™”åQŒä½†æ˜¯å¯¹è±¡å…³¾p»ï¼ˆåè¯ä¹‹é—´çš„å…³è”å…³¾p»ï¼‰å¯¹è¿½Ž—结构的æ­ç¤ºæ˜¯è¿œ˜qœä¸å¤Ÿå……分的。很多时候所谓的领域模型仅仅是表明概念之间具 有相å…Ïx€§ï¼Œä½†æ˜¯å¦‚æžœä¸è¡¥å……一大段文字说明åQŒæˆ‘们对于系¾lŸå¦‚何è¿ä½œä»ç„¶ä¸€çŸ¥åŠè§£ã€‚数学分æžå…¶å®žæ˜¯ž®†é¢†åŸŸå†…在的æ„义抽空åQŒä»…余下通用的åÅžå¼åŒ–½W¦å·ã€?br /> </p> <img src ="http://www.aygfsteel.com/canonical/aggbug/343919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2011-02-07 02:56 <a href="http://www.aygfsteel.com/canonical/archive/2011/02/07/343919.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>¾l“构的稳定æ€?/title><link>http://www.aygfsteel.com/canonical/archive/2009/12/06/304906.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 06 Dec 2009 04:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2009/12/06/304906.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/304906.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2009/12/06/304906.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/304906.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/304906.html</trackback:ping><description><![CDATA[   ¾l“构的稳定性,直观的ç†è§£è“væ¥ï¼Œž®±æ˜¯¾l“构在存在外部扰动的情况下长旉™—´ä¿æŒæŸç§å½¢å¼ä¸å˜æ€§çš„能力。稳定æ„味瀞®çš„æ‰°åЍ造æˆçš„åŽæžœä¹Ÿæ˜?#8220;ž®?#8221;的。在数学中,Taylor¾U§æ•°ä¸ºæˆ‘们æ¾l˜äº†å˜åŒ–传播的基本图景ã€?br /> <br />  <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">F(x0 </span><span style="color: #000000;">+</span><span style="color: #000000;"> dx) </span><span style="color: #000000;">=</span><span style="color: #000000;"> F(x0) </span><span style="color: #000000;">+</span><span style="color: #000000;"> F</span><span style="color: #000000;">'</span><span style="color: #000000;">(x0)*dx + 0.5*F</span><span style="color: #000000;">''</span><span style="color: #000000;">(x0)*dx^2 + <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span></div> <br /> 扰动dxå¯èƒ½åœ¨ç³»¾lŸF中引å‘éžå¸¸å¤æ‚的作用˜q‡ç¨‹åQŒåœ¨¾pÈ»Ÿå„处产生一个个局部å˜åŒ–结果。表é¢ä¸Šçœ‹è“væ¥ï¼Œä¼ég¹Ž˜q™äº›å˜åŒ–¾l“æžœå­˜åœ¨ç€æ— ç©·å¤šç§å¯èƒ½çš„分¾l„æ–¹å¼ï¼Œä¾‹å¦‚ (F'(x0)-2)*dx + 2*dx^2, 但是åŸÞZºŽå¾®åˆ†åˆ†æžåQŒæˆ‘们å´å¾ˆå®¹æ˜“了解到Taylor¾U§æ•°çš„æ¯ä¸€¾U§éƒ½å¯¹åº”ç€ç‹¬ç«‹çš„物ç†è§£é‡Šï¼Œå®ƒä»¬æž„æˆè‡ªç„¶çš„分¾l„标准。æŸä¸€é‡çñ”下的所有å˜åŒ–汇æ€Õd½’òq¶åˆ°ä¸€èµøP¼Œòq¶å¯¹åº”一个明¼‹®çš„æ•´ä½“æè¿°ã€‚在抽象的数ç†ç©ºé—´ä¸­åQŒæˆ‘们具有一¿U无所ä¸è¾¾çš„å˜åŒ–æœé›†èƒ½åŠ›ã€‚å˜åŒ–项å¯ä»¥ä»ŽåŸº¼‹€¾l“构中分¼›Õd‡ºæ¥ï¼Œ¾l过汇æ€ÕdŽå¯ä»¥å¯¹å…¶˜q›è¡Œç‹¬ç«‹çš„ç ”½I¶ã€‚å˜åŒ–本íw«åƈä¸ä¼šç›´æŽ¥å¯ÆD‡´åŸºç¡€¾l“构的崩溃ã€?br />    在èÊY件徿¨¡é¢†åŸŸï¼Œæ¨¡åž‹çš„稳定性é¢ä¸´çš„å´æ˜¯å¦ä¸€ç•ªåœºæ™¯ã€‚一个èÊY件模型一旦被实现之åŽåQŒç§¿Uå±€éƒ¨éœ€æ±‚å˜æ›´å°±éƒ½ä¼šå½¢æˆå¯¹åŽŸæœ‰åŸº¼‹€¾l“构的冲凅R€‚一些局部的需求å˜åŒ–å¯èƒ½é€ æˆå¤§ç‰‡åŽŸæœ‰å®žçŽ°å¤±æ•ˆåQŒæˆ‘ä»¬å°†è¢«è¿«ä¸ºç±»ä¼¼çš„éœ€æ±‚é‡æ–°ç¼–写类似的代ç ã€‚æ­¤æ—Óž¼Œè½¯äšgå¼€å‘åÆˆä¸åƒæ˜¯ä¸€¿U纯¾_¹çš„ä¿¡æ¯åˆ›é€ ï¼Œè€Œæ˜¯å®›è‹¥æŸç§ç‰©è´¨äº§å“的生产(å‚è§ä»Žç¼–写代ç åˆ°åˆ‰™€ ä»£ç ?<a >http://canonical.javaeye.com/blog/333167</a> åQ‰ã€‚显ç„Óž¼Œæˆ‘们需è¦ä¸€¿U能力,ž®†å±€éƒ¨å˜åŒ–从基础¾l“构中剥¼›Õd‡ºæ¥ï¼Œ¾l过汇æ€Õd½’òq¶ä¹‹åŽå†˜q›è¡Œ¾l¼åˆåˆ†æžå’Œå¤„ç†ã€‚这正是AOP(Aspect Oriented Programming)技术的价值所在ã€?br /> <br />     <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">M1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> (G0</span><span style="color: #000000;">+</span><span style="color: #000000;">dG0)</span><span style="color: #000000;"><</span><span style="color: #000000;">M0</span><span style="color: #000000;">+</span><span style="color: #000000;">dM0</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">==></span><span style="color: #000000;"> M1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> G0</span><span style="color: #000000;"><</span><span style="color: #000000;">M0</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> dM</span></div>   AOP本质上是软äšg¾l“æž„½Iºé—´çš„自ç”׃¿®æ­£æœºåˆ¶ã€‚åªæœ‰ç»“åˆAOP技术之åŽï¼Œè½¯äšg模型æ‰èƒ½å¤Ÿé‡æ–°æ¢å¤æŠ½è±¡çš„æœ¬è´¨åQŒåœ¨æ—‰™—´ä¹‹æ²³ä¸­é€ƒç¦»éšæœºå˜åŒ–çš„äçR蚀åQŒä¿æŒå®žçް层é¢çš„½E›_®šæ€§ã€‚在˜q™ä¸€èƒŒæ™¯ä¸‹ï¼Œå»ºæ¨¡çš„ç›®çš„å°†ä¸æ˜¯ä¸ÞZº†èƒ½å¤Ÿè·Ÿè¸ªæœ€¾lˆéœ€æ±‚çš„å˜åЍåQŒè€Œæ˜¯è¦åœ¨æŸä¸ªç‹¬ç«‹çš„层é¢ä¸Šèƒ½å¤Ÿè‡ªåœ†å…¶è¯´åQŒèƒ½å¤Ÿå…·æœ‰æŸ¿U独立存在的完满性,æˆäØ“æ€ç»´ä¸Šå¯ä»¥æŠŠæ¡çš„æŸä¸ª½E›_®šçš„基ç‚V€‚æ¨¡åž‹çš„çœŸå®žæ€§å°†å› äØ“è‡ªèín¾l“æž„çš„å®Œå¤‡æ€§è€Œå¾—åˆ°è¯æ˜Žï¼Œä¸Žå¤–部世界的契刽E‹åº¦ä¸å†æ˜¯ä­h(hu¨¢n)值判断的唯一标准ã€?a >http://canonical.javaeye.com/blog/482620</a><br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/304906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2009-12-06 12:23 <a href="http://www.aygfsteel.com/canonical/archive/2009/12/06/304906.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>¾l“构的自­‘Ïx€?/title><link>http://www.aygfsteel.com/canonical/archive/2009/10/07/297381.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Wed, 07 Oct 2009 09:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2009/10/07/297381.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/297381.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2009/10/07/297381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/297381.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/297381.html</trackback:ping><description><![CDATA[   说到软äšg建模åQŒä¸€ä¸ªå¸¸è§çš„è®ø™°ƒæ˜¯æ¨¡åž‹åº”该符åˆå®žé™…éœ€æ±‚ï¼Œåæ˜ é—®é¢˜çš„æœ¬è´¨ã€‚ä½†æ˜¯ä½•è°“æœ¬è´¨ï¼Œå´æ˜¯æ²¡æœ‰å…ˆéªŒå®šä¹‰çš„。在æˆåŠŸçš„å¾ç«‹ä¸€ä¸ªæ¨¡åž‹ä¹‹å‰ï¼Œæ— è®ºåœ¨å†…涵上˜q˜æ˜¯åœ¨å¤–延上我们都很难说清楚一个问题的本质是什么。如果将模型看作是对领域¾l“构的一¿Uæ˜¾å¼æ˜q°å’Œè¡¨è¾¾åQŒæˆ‘们å¯ä»¥é¦–先考察一下一ä¸?#8220;åˆé€?#8221;的结构应该具备哪些特å¾ã€?br />    按照¾l“æž„ä¸ÖM¹‰å“²å­¦çš„观点,¾l“æž„å…ähœ‰ä¸‰ä¸ªè¦ç´ åQšæ•´ä½“æ€§ï¼Œå…ähœ‰è½¬æ¢è§„å¾‹æˆ–æ³•åˆ™ï¼ˆè½¬æ¢æ€§ï¼‰åQŒè‡ªíw«è°ƒæ•´æ€§ï¼ˆè‡ªå¾‹æ€§ï¼‰ã€‚整体性æ„味瀾l“æž„ä¸èƒ½è¢«ç®€å•的切分åQŒå…¶æž„æˆè¦ç´ é€šè¿‡å†…在的关¾p»è¿½Ž—实现大范围的关è”与转æ¢åQŒæ•´ä½“之所以æˆä¸ºæ•´ä½“正是以转æ¢/˜qç®—çš„ç¬¬ä¸€æ€§äØ“ä¿è¯çš„。这¿Uè{æ¢å¯ä»¥æ˜¯å…±æ—¶çš„ï¼ˆåŒæ—¶å­˜åœ¨çš„å„元素åQ‰ï¼Œä¹Ÿå¯ä»¥æ˜¯åŽ†æ—¶çš„ï¼ˆåŽ†å²çš„è{æ¢æž„造过½E‹ï¼‰åQŒè¿™æ„味瀾l“æž„æ€»è¦æ±‚一个内在的构造过½E‹ï¼Œåœ¨ç‹¬ç«‹äºŽå¤–部环境的情况下¾l“æž„å…ähœ‰æŸç§è‡ªç»™è‡ªèƒö的特性,ä¸ä¾èµ–于外部æ¡äšgå›_¯ç‹¬ç«‹çš„å­˜åœ¨åÆˆä¿æŒå†…在的活动。自律性æ„味瀾l“构内在的è{æ¢æ€ÀL˜¯¾l´æŒç€æŸç§ž®é—­æ€§å’Œå®ˆæ’性,¼‹®ä¿æ–°çš„æˆåˆ†åœ¨æ— é™åœ°æž„æˆè€Œç»“构边界å´ä¿æŒ½E›_®šã€‚注æ„到˜q™é‡Œå¯¹ç»“构的评判òq¶ä¸æ˜¯æ¥è‡ªå¤–在规范和¾U¦æŸåQŒè€Œæ˜¯åŸÞZºŽ¾l“æž„å†…åœ¨çš„è§„å¾‹æ€§ï¼Œæ‰€å¼ø™°ƒçš„䏿˜¯ç»“构对外部æ¡äšg的适应性,而是自èín概念体系的完备性。实际上åQŒä¸€ä¸ªæ— æ³•直接对应于当å‰å®žé™…环境的结构ä»ç„¶å¯èƒ½å…·æœ‰é‡è¦çš„ä»·å€û|¼Œòq¶åœ¨è§£å†³é—®é¢˜çš„过½E‹ä¸­æ‰®æ¼”ä¸å¯æˆ–缺的角艌Ӏ‚在åˆç†æ€§è¿™ä¸ªè§†è§’下åQŒæˆ‘们所å…Ïx³¨çš„ä¸ä»…仅是当å‰çš„现实世界åQŒè€Œæ˜¯æ‰€æœ‰å¯èƒ½çš„世界。一ä¸?#8220;åˆç†”的结构的价值必能在它所适应的世界中凸现出æ¥ã€?br />    在信æ¯ç³»¾lŸä¸­åQŒæˆ‘们å¯èƒ½ç»å¸æ€¼šé—®è¿™ä¸ªæ¨¡åž‹æ˜¯å¦æ˜¯å¯¹ä¸šåŠ¡çš„å‡†ç¡®æè¿°åQŒæ˜¯å¦å¯ä»¥é€‚åº”éœ€æ±‚çš„å˜æ›´åQŒæ˜¯å¦å…许未æ¥çš„å„ç§æ‰©å±•½{‰ç­‰ã€‚但是如果æ¢ä¸€ä¸ªæ€ç»´æ–¹å‘åQŒæˆ‘们会å‘现˜q™äº›é—®é¢˜éƒ½æ˜¯é’ˆå¯¹æœ€¾lˆç¡®ç«‹çš„æ¨¡åž‹è€Œå‘问的åQŒè€Œåœ¨æ¨¡åž‹æž„å¾çš„过½E‹ä¸­åQŒé‚£äº›å¯è¢«åˆ©ç”¨çš„已存在的或者å¯ä»¥å­˜åœ¨çš„æ¨¡åž‹åˆæ˜¯å“ªäº›å‘¢ã€‚æ¯ä¸€ä¸ªä¿¡æ¯æ¨¡åž‹éƒ½å¯¹åº”ç€æŸç§è‡ªåŠ¨æŽ¨ç†æœºï¼Œå¯ä»¥æŽ¥æ”¶ä¿¡æ¯òq¶åšä¸€å®šçš„æŽ¨å¯¼¾l¼åˆå·¥ä½œã€‚一个å¯è¡Œçš„问题是,如何æ‰èƒ½æ›´æœ‰æ•ˆçš„利用已有的信æ¯è¿›è¡ŒæŽ¨å¯û|¼Œå¦‚何消除冗余òq¶å‡ž®‘å„¿Uè{æ¢æˆæœ¬ã€‚我们ç»å¸¸å¯ä»¥è§‚察到åQŒæŸä¸€ä¿¡æ¯¾l„ç»‡æ–¹å¼æ›´å……åˆ†çš„å‘æŽ˜äº†ä¿¡æ¯ä¹‹é—´çš„内在兌™”åQˆä¸€ä¸ªè¡¨è±¡æ˜¯å®ƒå¯¹ä¿¡æ¯çš„ä‹Éç”¨ä¸æ˜¯ç®€å•的局域化的,而是在多处呈çŽîCؓ互相¾U ç¼ çš„æ–¹å¼ï¼Œéš¾ä»¥è¢«åˆ†è§£ï¼‰åQŒè¿™¿U内在关è”èƒö够丰富,以至于我们ä¸ä¾èµ–于外部因素就å¯ä»¥ç‹¬ç«‹çš„ç†è§£ã€‚è¿™¿U纠¾~ åœ¨ä¸€èµïL(f¨¥ng)š„ä¿¡æ¯å—自然会æˆäؓ我们建模的对象ã€?br />    如果模型çš?#8220;覆盖能力”ä¸å†æ˜¯æˆ‘们关注的é‡ç‚¹åQŒé‚£ä¹ˆå¾æ¨¡çš„æ€ç»´å›‘Ö¼ž®†ä¼šå‘生如下的è{åŒ?br /> <div align="center"><img src="http://www.aygfsteel.com/images/blogjava_net/canonical/MicroModel.jpg" alt="" border="0" /></div> <br /> <br /> 最¾lˆçš„æ¨¡åž‹å¯ä»¥ç”׃¸€¾pÕdˆ—微模型交¾l‡æž„æˆã€‚模型的递进构造过½E‹åƈä¸åŒäºŽç»„ä»?Component)的实物组装接å£ï¼Œä¹Ÿä¸æ˜¯CAD囄¡º¸å †å å¼çš„æž¶æž„概念所能容¾U³çš„。在Witrixòq›_°ä¸­ï¼Œæ¨¡åž‹åˆ†è§£å’Œæž„é€ è¡¨è¾¾äØ“å¦‚ä¸‹å½¢å¼  <a >http://canonical.javaeye.com/blog/333167</a><br />      Biz[n] = Biz[n+1] aop-extends CodeGenerator<DSLx, DSLy>ã€?br />    在èÊYä»¶å‘展的早期åQŒæ‰€æœ‰çš„½E‹åºéƒ½æ˜¯ç‰ÒŽ(gu¨©)®Šæž„造的åQŒå…¶å¿…ç„¶çš„å‡è®¾æ˜¯ã€åœ¨æ­¤æƒ…况下】,é‡ç”¨ä¸åœ¨è€ƒè™‘范围之内åQŒå¼€å‘å¯ä»¥è¯´æ˜¯ä¸€ä¸ªç›²ç›®è¯•错的˜q‡ç¨‹ã€‚éšç€æˆ‘们逿­¥¿U¯ç¯äº†ä¸€äº›ç»éªŒï¼Œå¼€å§‹è‡ªè§‰çš„应用ç†è®ºåˆ†æžæ‰‹æ®µåQŒã€åœ¨æ‰€æœ‰æƒ…况下】都æˆç«‹çš„一些普适的原ç†è¢«æ­½Cºå‡ºæ¥ï¼Œå®ƒä»¬æˆäؓ我们在广阔的未知世界中跋涉时的å‘对{€‚当我们的èƒö˜qÒŽ(gu¨©)¸æ¸æŽ¥˜q‘领域的边界åQŒå¯¹é¢†åŸŸçš„全貌有一个æ€ÖM½“的认知之åŽï¼Œä¸€¿U对自èínæˆç†Ÿæ€§çš„自信很自然的ž®†æˆ‘们坼呿›´åŠ é¢†åŸŸç‰¹å®šçš„åˆ†æžã€‚很多时候,我们会å‘çŽîC¸€ä¸ªç‰¹åŒ–å‡è®‘֯以大大æé«˜ä¿¡æ¯çš„利用率,推导å‡ÞZ¼—多未被显å¼è®¾å®šçš„知识。我们需è¦é‚£äº›ã€åœ¨æŸäº›æƒ…å†µä¸‹ã€‘æœ‰æ•ˆçš„è§„åˆ™æ¥æž„æˆä¸€ä¸ªå®Œå¤‡çš„æ¨¡åž‹åº“。这ž®±å¦‚åŒæœ‰å¤§é‡å¤‡é€‰çš„æ•°å­¦å®šç†åQŒé¢å¯¹ä¸åŒçš„物ç†çŽ°è±¡åQŒæˆ‘们会从一¾pÕdˆ—的数学工具中选择一个进行ä‹É用一栗÷€?br />    <br /> <br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/297381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2009-10-07 17:10 <a href="http://www.aygfsteel.com/canonical/archive/2009/10/07/297381.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>è¡ŒäØ“èšé›†http://www.aygfsteel.com/canonical/archive/2009/07/11/286397.htmlcanonicalcanonicalSat, 11 Jul 2009 13:37:00 GMThttp://www.aygfsteel.com/canonical/archive/2009/07/11/286397.htmlhttp://www.aygfsteel.com/canonical/comments/286397.htmlhttp://www.aygfsteel.com/canonical/archive/2009/07/11/286397.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/286397.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/286397.html   A1 --> B2,  A2 --> B2,  A3 --> B3 ...
我们观察到A1å’ŒA2之间, B2å’ŒB2之间å…ähœ‰æŸç§æ¦‚念兌™”æ€? åŒæ—¶å­˜åœ¨æŸç§æŠ½è±¡¾l“æž„ [A] --> [B].
对于˜q™ç§æƒ…况, 我们å¯ä»¥å®šä¹‰å¯¹è±¡ [A], [B], 它们分别æ˜?A1å’ŒA2çš„èšå? B1å’ŒB2çš„èšåˆç­‰. 举例æ¥è¯´, 对于如下表格æè¿°, <ui:Col>所æä¾›çš„ä¿¡æ¯åœ¨æ˜ å°„为html实现的时候将在多处被应用.
<ui:Table data="${data}">
  <ui:Col name="fieldA" label="labelA" width="20" />
  <ui:Col name="fieldB" label="labelB" width="10" /> 
</ui:Table>
˜q™é‡Œ<ui:Col>æä¾›çš„ä¿¡æ¯å¯¹åº”三个部分的内容: 1. 列标é¢?2. 列样å¼?宽度½{?  3. 列数æ?br />
é¢å‘对象的常è§åšæ³•æ˜¯æŠ½è±¡å‡?UiCol对象, 它作为UiTable对象的属性存åœ? 在生æˆè¡¨å¤? 表列样å¼å’Œè¡¨æ ¼æ•°æ®å†…å®ÒŽ(gu¨©)—¶ž®†è¢«ä½¿ç”¨. 但是我们注æ„到é¢å‘å¯¹è±¡è¦æ±‚多个方法通过this指针形æˆçжæ€è€¦åˆ

åQŒåœ¨æŸç§æ„义上它æ„å‘³ç€æ‰€æœ‰çš„æˆå‘˜æ–ÒŽ(gu¨©)³•在ä“Qä¸€æ—¶åˆ»éƒ½æ˜¯åŒæ—¶å­˜åœ¨ç€çš„。它们所代表ç€çš„存在的代ä­h(hu¨¢n)必须被接å—(存储½Iºé—´½{‰ï¼‰ã€‚å³ä½¿åƈä¸åŒæ—¶è¢«ä½¿ç”¨åQŒæˆ‘们ä»ç„‰™œ€è¦åŒæ—¶æŒæœ‰æ‰€æœ‰æˆå‘˜å‡½æ•°æŒ‡é’ˆåŠ

å…׃ínçš„this指针。实际上, 我们òq¶ä¸ä¸€å®šéœ€è¦A1å’ŒA2åŒæ—¶åœ¨åœº. 在这¿U情况下, ¾~–译期技术å¯ä»¥æä¾›å¦ä¸€¿Uä¸åŒçš„è¡ŒäØ“èšåˆæ–¹å¼.


<table>
  <thead>
    <sys:CompileTagBody cp:part="thead" />
  </thead>
  <cols>
    <sys:CompileTagBody cp:part="cols" />
  </cols>
  <tbody>
    <sys:CompileTagBody cp:part="tbody" />
  </tbody>
</table>

åªè¦<ui:Col>标签的实çŽîC¸­é’ˆå¯¹¾~–译期的cp:partå˜é‡˜q›è¡Œåˆ†åˆ«å¤„ç†, å›_¯å®žçŽ°ä¿¡æ¯çš„部分æžå?




]]>
ä¿¡é“æž„å¾http://www.aygfsteel.com/canonical/archive/2009/03/22/261352.htmlcanonicalcanonicalSun, 22 Mar 2009 13:10:00 GMThttp://www.aygfsteel.com/canonical/archive/2009/03/22/261352.htmlhttp://www.aygfsteel.com/canonical/comments/261352.htmlhttp://www.aygfsteel.com/canonical/archive/2009/03/22/261352.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/261352.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/261352.html

    在系¾lŸè§„划中åQŒå¤šå±‚结构应该内¾|®ä¸Žå…·ä½“语义无关的通用信é“åQŒå®ƒè·¨è¶Šå¤šä¸ªå±‚次åQŒå…è®æ€¿¡æ¯é€æ˜Žçš„通过åQŒåƈ以未预期的方å¼åœ¨ä¸åŒçš„层颿¿€å‘å„¿Uç›¸å…³çš„è¡ŒäØ“ã€‚åœ¨Witrixòq›_°ä¸­ï¼Œòq›_°ä»£ç ä¸Žç‰¹å®šåº”用中的业务代ç å¤„于高度交¾l‡çš„状æ€ï¼Œä¸€ä¸ªç‰¹å®šä¸šåŠ¡åŠŸèƒ½çš„å®žçŽ°å¾€å¾€éœ€è¦å¤šå¤„业务代ç ç›¸äº’ååŒï¼Œòq›_°å¿…é¡»æˆäØ“æŸç§é€æ˜Žçš„背景。例如,å‡è®¾æˆ‘们¾~–制了一个通用的列表选择控äšg,它å°è£…的逻辑是从一个实体列表中˜q›è¡Œé€‰æ‹©
      <app:SelectOne objectName="MyEntity" />
å¦‚æžœçŽ°åœ¨è¦æ±‚选择时åªåˆ—出æŸä¸ª¾cÕdž‹çš„实体,则调用åÅžå¼äØ“
      <app:SelectOne objectName="MyEntity" extArgs="$bizId=select&amp;$type=1" />
在调用入å£å¤„补充必è¦çš„ä¿¡æ¯ä¹‹åŽä¼šæŽ¨åЍ¾pÈ»Ÿåœ¨é¥˜qœçš„状æ€ç©ºé—´ä¸­åº”用一个特定的˜q‡æ×oæ¡äšg。这é‡?bizId负责指示òq›_°åº”用特定的元数æ®é…ç½®åQŒè€Œå…¶ä»–çš„å‚æ•°åˆ™ç”±å…ƒæ•°æ®ä¸­çš„逻辑负责处ç†ã€‚åã^åîC¸Žç‰¹å®šä¸šåС代ç å„å–æ‰€éœ€åQŒç›¸äº’é…åˆï¼Œž®†å°½å¯èƒ½å¤šçš„逻辑剥离为通用机制ã€?br />




]]>
åŒæž„ä¸ŽåŒæ€ï¼šè®¤è¯†åŒä¸€æ€?/title><link>http://www.aygfsteel.com/canonical/archive/2009/02/28/257150.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sat, 28 Feb 2009 08:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2009/02/28/257150.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/257150.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2009/02/28/257150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/257150.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/257150.html</trackback:ping><description><![CDATA[   çŽîC»£æ•°å­¦æ˜¯å¾ç«‹åœ¨½{‰ä­h(hu¨¢n)¾c»è¿™ä¸€æ¦‚念的基¼‹€ä¹‹ä¸Šçš„ã€‚åŒæž„是对等价关¾pÈš„一¿U刻划。简å•çš„å¯ä»¥æŠŠå®ƒç†è§£ä¸ÞZ¸¤ä¸ªç³»¾lŸä¹‹é—´çš„一¿U?#8220;ä¿æŒ”˜q算规则的一一对应关系。在 数学中一个符åäh‰€ä»£è¡¨çš„æ˜¯æ‰€æœ‰èƒ½å¤Ÿäº’ç›¸åŒæž„的对象。例如整æ•?å¯ä»¥çœ‹ä½œæ˜¯ä¸ŽæŸä¸ªå…ƒç´ ä¸ªæ•°ä¸?的集åˆå¯ä»¥å¾ç«‹ä¸€ä¸€å¯¹åº”å…³ç³»çš„æ‰€æœ‰çš„é›†åˆæ‰€æž„æˆçš„æ•´ä½“。所以在 数学中,如果我们解决æŸä¸ªç‰¹å®šçš„é—®é¢˜ï¼Œå®ƒåŒæ—¶ä¹Ÿž®±æ„å‘³ç€æˆ‘们解决了一¾pÕdˆ—ç›æ€º’½{‰ä­h(hu¨¢n)的问题ã€?br />     åŒæž„关系对于认知å¯ä»¥èµ·åˆ°æœ¬è´¨ä¸Šçš„½Ž€åŒ–作用。如果通过一个推ç†é“¾æ¡ï¼Œ¼‹®è®¤äº†A == B == C == DåQŒåˆ™å¯ä»¥ç›´æŽ¥ä»Žæ¦‚念上推导å‡?A == D, ˜q™ä¸€å…³ç³»æœ‰å¯èƒ½è¢«ç›´è§‚ç†è§£åQŒè€Œä¸éœ€è¦ç†ä¼šä¸­é—´çš„æŽ¨ç†æ­¥éª¤ã€‚(注æ„åˆîC»¥ä¸Šå…ƒç´ ä¸¤ä¸¤å¾ç«‹åŒæž„å…³¾pÈš„时候å¯èƒ½è¦é‡‡ç”¨ä¸åŒçš„对应手ŒDµï¼Œå› æ­¤ä¸Šé¢çš„ç­‰å¼åÆˆä¸æ˜¯òq›_‡¡ 的。)å¦ä¸€æ–šw¢åQŒæˆ‘们å¯ä»¥ç¡®å®šä¸€ä¸ªæ¨¡åž‹å…ƒç´ M,  ž®†ç³»¾lŸç®€åŒ–䨓 A == M, B == M, C == M, D == M。åªè¦ç†è§£äº†å…ƒç´ Mž®Þq†è§£äº†½{‰ä­h(hu¨¢n)的其他元素ã€? <p>    Witrixòq›_°ä¸­PDMå®šä¹‰ä½œäØ“åŸºç¡€çš„ç»“æž„æ¨¡åž‹ï¼Œå®ƒåŒæ—¶æ˜ ž®„æˆä¸ºæ•°æ®åº“表,以åŠhbm, java, meta½{‰å¤šä¸ªä»£ç æ–‡ä»Óž¼Œæ­¤å¤–˜q˜å¯¹åº”于¾U¦å®šçš„WebObjectåç§°å’ŒBizFlowæ–‡äšgåç§°åQŒç›¸åº”的报表文äšg目录½{‰ã€‚我们åªè¦ç†è§£äº†pdm模型åQŒå³å¯é€? ˜q‡æŽ¨ç†è‡ªç„¶çš„æŽŒæ¡å„个层é¢ä¸Šå¯¹åº”çš„¾l“构。这æ„味ç€åªè¦çŸ¥é“实体åç§°åQŒå°±çŸ¥é“如何通过Web讉K—®˜q™ä¸ªå¯¹è±¡åQŒçŸ¥é“æ•°æ®åœ¨æ•°æ®åº“中对应的数æ®åº“表,而ä¸éœ€è¦çŸ¥é? åŽå°æ˜¯å¦‚何读å–å‰å°æäº¤çš„傿•°ä»¥åŠå¦‚何执行ä¿å­˜æ•°æ®æŒ‡ä×o的。ä¸ä»…仅是在模型驱动领域åQŒåœ¨¾pÈ»Ÿè®¾è®¡çš„å„个方é¢ï¼Œæˆ‘们都应该尽é‡å……分的利用当å‰çš„ä¿¡æ¯é€šè¿‡æŽ¨ç† 得到¾pÈ»Ÿå…¶ä»–éƒ¨åˆ†çš„ç»“æž„ï¼Œè€Œä¸æ˜¯é€šè¿‡æ‰‹å·¥å…Œ™”或者判断在½E‹åºä¸­åЍæ€ç»´æŒè¿™¿U对应关¾p…R€‚例如在flow-cp机制中,bizçš„id, actionçš„id½{‰éƒ½æ ÒŽ(gu¨©)®stepé…置的id推导得到åQŒè¿™æ ·åœ¨å·¥ä½œåˆ—表跌™{的时候就å¯ä»¥æ ÒŽ(gu¨©)®è§„åˆ™æŽ¨å¯¼å‡ø™Ÿ©è½¬é¡µé¢å¯¹åº”的链接åQŒè€Œä¸éœ€è¦æ‰‹å·¥ç¼–写页é¢é‡å®šå‘ 代ç ã€?/p> <p style="text-align: center;"><br /> <img src="http://www.aygfsteel.com/images/blogjava_net/canonical/mapping.jpg" alt="" border="0" height="262" width="262" /><br /> </p> <p><br />  <br />     åŒæ€ï¼ˆhomomorphismåQ‰å…³¾pÈ›¸å¯¹äºŽåŒæž„关系åQŒåªå¼ø™°ƒå•呿˜ å°„çš„å¯è¡Œæ€§ï¼Œå®ƒæ˜¯ä¸€ä¸ªèˆå¼ƒå±žæ€§çš„˜q‡ç¨‹ã€‚åŒæ€ä½œä¸ºæœ€åŸºç¡€çš„认知手ŒDµä¹‹ä¸€åQŒå®ƒä¸ä»…仅是用一 个符åäh¥¾|®æ¢ä¸€¾l„å…ƒç´ ï¼Œè€Œæ˜¯åŒæ—¶ä¿ç•™äº†æŸ¿Uå…¨å±€çš„è¿½Ž—å…³¾p»ï¼Œå› æ­¤åŒæ€æ˜ åƒå¯ä»¥æž„æˆæŸ¿U独立的完整的研½I¶å¯¹è±¡ã€‚é€šè¿‡åŒæ€æ˜ ž®„,我们å¯ä»¥åœ¨ä¸åŒçš„æŠ½è±¡å±‚é¢ä¸Šç ” ½I¶åŽŸ¾pÈ»Ÿçš„一个简化版本。例如meta中的layout是一¿U典型的领域特定语言(DSL)ã€?br />     userName userTitle<br />     emailAddress<br /> <br /> æ¯ä¸€ä¸ªå­—ŒDµè¡¨½CÞZº†ä¸€ä¸ªå¯èƒ½ä“Qæ„夿‚çš„inputor或者viewer, 字段之间的å‰åŽå…³¾pÀL˜qîCº†æœ€¾lˆæ˜¾½Cºé¡µé¢ä¸Šæ˜„¡¤ºå†…容的相对关¾p…R€‚当vieweræ ÒŽ(gu¨©)®éœ€æ±‚å‘生改å˜çš„æ—¶å€™ï¼Œòq¶ä¸å½±å“到l(f¨¡)ayout层é¢ä¸Šçš„关系åQŒå› æ­? layoutå¯ä»¥ä¿æŒä¸å˜ã€‚如果我们在¾pÈ»Ÿä¸­æŠŠé—®é¢˜åˆ†è§£ä¸ºå¤šä¸ªæŠ½è±¡å±‚é¢ä¸ŠåQŒå¤šä¸ªè§‚å¯Ÿè§†è§’ä¸Šçš„åŒæ€æ¨¡åž‹ï¼Œåˆ™å¯èƒ½å®žçŽ°æ›´é«˜çš„è½¯äšgå¤ç”¨½E‹åº¦ã€?br />     在Witrixòq›_°çš„设计中åQŒå¾ˆå¤šç»†¾_’度的标½{ùNƒ½å®šä¹‰ä¸ºtpl文本ŒDµï¼Œ˜q™æ ·òq›_°åªè¦ç†è§£æŸä¸€å±‚é¢ä¸Šçš„交互关系åQŒå®žé™…应用中å¯èƒ½å‡ºçŽ°çš„ç»†èŠ‚åœ¨æ ‡ç­¾å†…éƒ¨˜q›è¡Œå±€ 部处ç†ï¼Œä¸ä¼š½H破原始设计的åÅžå¼è¾¹ç•Œï¼Œä¸ä¼šå½±å“到原先设定的ä¸ÖM½“¾pÈ»Ÿ¾l“构。例如BizFlow中的tplsŒDµï¼Œactionçš„sourceŒD늭‰ã€?br />     上世¾U?0òq´ä»£ä»¥å‰åQŒç”Ÿç‰©å­¦å®¶åšæ¢¦ä¹ŸæƒŒ™±¡ä¸åˆ°å…ähœ‰æ— é™å¤æ‚性的生物é—ä¼ ˜q‡ç¨‹åQŒç«Ÿç„¶å¯ä»¥è¢«æŠ½è±¡ä¸ºATGC四个抽象½W¦å·çš„串è”。生命竟然ä¸ç†ä¼šå„ç§å·²çŸ¥çš„æˆ–æ˜? 未知的物ç†åŒ–学作用,被抽象的三è”ç æ‰€é©±åŠ¨ã€‚ä¸€¿U抽象的本质ä¼ég¹Žæˆäº†ç”Ÿå‘½ä¸–界的本原。在软äšg的世界中åQŒå¯ä»¥è¢«è¯†åˆ«çš„æŠ½è±¡å…ƒç´ ç»ä¸åªæ˜¯è¯­­a€æœ¬èín所æä¾›çš„é‚£äº? 机制ã€?/p> <img src ="http://www.aygfsteel.com/canonical/aggbug/257150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2009-02-28 16:57 <a href="http://www.aygfsteel.com/canonical/archive/2009/02/28/257150.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>¾cÕdž‹åŒ–:形而上学的信äÔ’http://www.aygfsteel.com/canonical/archive/2009/02/21/255974.htmlcanonicalcanonicalSat, 21 Feb 2009 11:43:00 GMThttp://www.aygfsteel.com/canonical/archive/2009/02/21/255974.htmlhttp://www.aygfsteel.com/canonical/comments/255974.htmlhttp://www.aygfsteel.com/canonical/archive/2009/02/21/255974.html#Feedback2http://www.aygfsteel.com/canonical/comments/commentRss/255974.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/255974.html       ä¸­å›½äººçš„ä¼ ç»Ÿå“²å­¦è®¤äØ“ä¸–ç•Œæ˜¯æ™®é蔾pÈš„åQŒäº‹ç‰©ä¹‹é—´å­˜åœ¨ç€¼œ¸ç¦ç›æ€¾çš„辩è¯è{化关¾p…R€‚而å¤å¸Œè…Šäººå¼ºè°ƒä¸ªä½“æ„识,以两分法看待世界åQŒä»–ä»¬å°†ä¸–ç•Œçœ‹æˆæ˜¯å­¤ç«‹çš„物体¾l„æˆåQˆåŽŸå­è®ºåQ‰æž„æˆï¼Œç„¶åŽé€‰æ‹©ä¸€ä¸ªå­¤ç«‹ç‰©ä½“(è„Þq¦»èƒŒæ™¯åQ‰ï¼Œå¼€å§‹ç ”½I¶å®ƒçš„å„™å¹å±žæ€§ï¼ŒæŽ¥ç€ž®†å±žæ€§æ³›åŒ–,构æˆåˆ†ç±»çš„基¼‹€ã€‚西方语­a€ä¸­å¤§é‡æŠ½è±¡æ¦‚å¿µéƒ½æ˜¯ä»Žä½œäØ“å±žæ€§çš„å½¢å®¹è¯ç›´æŽ¥è{化而æ¥åQŒä¾‹å¦? white --> whiteness 。而中文中很少有精¼‹®çš„¾cÕdž‹å®šä¹‰åQŒè€Œå¤šåŠæ˜¯å¯Œæœ‰è¡¨çŽ°åŠ›çš„åQŒéšå–ÀL€§çš„è¯è¯­åQŒä¾‹å¦‚我们ä¸è°ˆè®ºæŠ½è±¡çš„白åQŒè€Œåªè¯´é›ªç™½ï¼Œæ²¡æœ‰æŠ½è±¡çš? size åQŒè€Œåªè¯´å…·ä½“的大å°ã€?

       亚里士多徯‚®¤ä¸ºé“çƒåœ¨½Iºæ°”ä¸­ä¸‹è½æ˜¯å› äؓ它具æœ?#8220;釿€?#8221;åQŒè€Œæœ¨å—在水中漂æÕQ是因为木å—å…·æœ?#8220;è½ÀL€?#8221;。这¿U将一切原因归¾l“äØ“äº‹ç‰©å†…åœ¨å±žæ€§çš„ä¼ ç»Ÿåœ¨ä¸€å®šç¨‹åº¦ä¸Šå¦¨ç¢äº†è¥¿æ–¹äh认识到背景的存在和作用,但ä‹É得他们å¯ä»¥æŠŠé—®é¢˜½Ž€åŒ–ã€?

       å¤å¸Œè…Šäh对于¾cÕdž‹çš„热è¡ähºäºŽä»–们对于永æ’çš„˜qäh‹ã€‚陿€çš„亘å¤ä¸å˜çš„ä¸–ç•Œæ‰æ˜¯ä»–ä»¬çš„æ€æƒ³æ –æ¯çš„场所。具体的物体是易é€çš„åQŒå¤šå˜çš„åQŒåªæœ‰æŠ½è±¡çš„¾cÕdž‹æ‰æ˜¯æ°¸æ’çš„å­˜åœ¨ï¼Œä¹Ÿåªæœ‰æŠ½è±¡æ¦‚å¿µä¹‹é—´çš„å…³ç³»æ‰æ˜¯æ°¸çœŸçš„蔾p…R€‚而具体实例之间的兌™”在柿U程度上被认为是ä¸é‡è¦çš„åQŒç”šè‡Ïx˜¯ä¸å¯é çš„ã€?



       ž®†å…·æœ‰æŸä¸€å±žæ€§çš„æ‰€æœ‰ç‰©ä½“å®šä¹‰äØ“ä¸€ä¸ªé›†åˆï¼Œ˜q™ä¸€åšæ³•åœ¨ä¸Šä¸–çºªåˆè¢«å‘现会引起逻辑æ‚(zh¨¨n)–论åQŒåŠ¨æ‘‡äº†æ•´ä¸ªæ•°å­¦çš„åŸº¼‹€åQŒå®ƒ¾lä¸åƒè¡¨é¢ä¸Šçœ‹è“væ¥é‚£ä¹ˆå•¾U¯ã€‚但¼‹®å®šæ— ç–‘的是åQŒé€šè¿‡¾cÕdž‹æ¥æŠŠæ¡ä¸å˜çš„事实是一¿Uéžå¸”R‡è¦ä¸”有效的认识策略。é¢å‘对象语­a€å¼ø™°ƒåè¯æ¦? 念,从引入类定义以劾cÖM¹‹é—´çš„¾l§æ‰¿å…³ç³»å¼€å§‹ï¼Œ˜q™ç¬¦åˆè¥¿æ–¹ä¸€è´¯çš„作风。è€? Ruby ˜q™ç§å¼ø™°ƒå®žä¾‹é—´å…³¾pÈš„动æ€è¯­­a€é¦–先由日本äh呿˜ŽåQŒå¯èƒ½ä¹Ÿä¸æ˜¯å¶ç„¶çš„。虽然现在大安™ƒ½åœ¨çŽ©é«˜ç§‘æŠ€äº†ï¼Œå¯å®žé™…è´©å–给你的多åŠä»ç„¶æ˜¯åŒ…æ²È™¾ç—…çš„¼œ–ä¼ ¿U˜æ–¹ã€‚文化å¯èƒ½é€ æˆè®¤çŸ¥ä¸Šçš„一¿U忉§ï¼Œåœ¨æŠ€æœ¯é¢†åŸŸè¿™ä¸€çŽ°è±¡òq¶æ²¡æœ‰è¢«æ¸…楚的æ„识到ã€?

 



]]>
从编写代ç åˆ°åˆ‰™€ ä»£ç ?/title><link>http://www.aygfsteel.com/canonical/archive/2009/02/15/254784.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 15 Feb 2009 10:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2009/02/15/254784.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/254784.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2009/02/15/254784.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/254784.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/254784.html</trackback:ping><description><![CDATA[<p>    软äšgå¼€å‘作ä¸ÞZ¸€¿Uå·¥½E‹æŠ€æœ¯ï¼Œå®ƒæ‰€ç ”究的一个é‡ç‚¹å°±æ˜¯å¦‚何æ‰èƒ½æœ‰æ•ˆé™ä½ŽèÊYä»¶äñ”å“çš„ç ”å‘æˆæœ¬ã€‚在˜q™ä¸€æ–¹å‘上,¾l„äšg技术å–得了½Iºå‰çš„æˆåŠŸã€‚å®ƒæ‰€æä¾›çš„基本图景是 åƒæ­¿U¯æœ¨ä¸€æ ·ä»Žæ— åˆ°æœ‰çš„¾l„装出最¾lˆçš„产å“。在æŸç§æ„义上,˜q™æ˜¯å¯¹çް代徽{‘å·¥ä¸šçš„æ¨¡ä»¿å’Œè‡´æ•¬ã€‚æ–°ææ–™åQŒé¢„制äšgåQŒæ¡†æž¶ç»“构,˜q™äº›å»ºç­‘学的˜q›å±•在èÊY仉™¢†åŸŸè¢«ä¸€ä¸€ å¤åˆ¶åQŒå¾½{‘å·¥åœîC¸Šçš„æ°‘工自然也æˆäؓ了程åºå‘˜ä»¬å­¦ä¹ çš„æ¥äh¨¡ã€‚毕竟,在组件的世界中ç ä»£ç åQŒåŸºæœ¬ä¸Šä¹Ÿæ˜¯ä¸€¿U?#8220;æ¬ç –”的行为ã€?/p> <p>     值得庆幸的是åQŒèÊYä»¶å¼€å‘作ä¸ÞZ¸€¿U智力活动,它天生具有一¿U?#8220;åŽÀL°‘工化”的們֑。信æ¯äñ”哿œ‰ç€ä¸Žç‰©è´¨ä¸–界äñ”å“完全ä¸åŒçš„æŠ½è±¡æœ¬è´¨ã€‚在物熽Iºé—´ä¸­ï¼Œå»ºé€?00 栋房屋,必须付出100å€çš„努力åQŒè€è€å®žå®žçš„òq²ä¸Š100é。而在概念½Iºé—´ä¸­å¾é€?00栋房屋,我们å´å¯ä»¥è¯´å…¶ä»–æˆ¿å±‹ä¸Žç¬¬ä¸€æ ‹ä¸€æ¨¡ä¸€æ øP¼ŒåŠ ç‚¹òq³ç§»æ—‹è{å˜æ¢å? å¯ã€‚一å—砖填了地基ž®×ƒ¸èƒ½ç”¨æ¥ç›–屋顶åQŒè€Œä¸€ŒDµå†™å¥½çš„代ç å´å¯ä»¥åœ¨ä»ÖM½•å¯ç”¨çš„åœºåˆæ— æŸè€—的被ä‹É用。一栋å¾å¥½çš„æˆ¿å±‹å‘çŽ°æ°´ç®¡æ¼æ°´è¦å¤§åŠ¨å¹²æˆˆï¼Œè€Œåœ¨å®Œæˆçš„èÊY件中 补个局部bugå´æ˜¯ž®èœä¸€¼„Ÿã€‚在抽象的世界中有效的进行生产,所ä¾èµ–çš„ä¸åº”该是大òq?苦干的堆砌,而应该是å‘现æŸç§å¯ç”¨äºŽæŽ¨å¯¼çš„原ç†åQŒåŸºäºŽè¿™äº›åŽŸç†ï¼Œè¾“å…¥ ä¿¡æ¯å¯ä»¥ç«‹åˆ»è½¬æ¢ä¸ºæœ€¾lˆçš„¾l“æžœåQŒè€Œä¸éœ€è¦ä¸€ä¸ªé€æ­¥æž„造的˜q‡ç¨‹ã€‚峿ˆ‘们有å¯èƒ½è¶…­‘Šç»„装性生产,实现æŸç§¾cÖM¼¼äºŽæ•°å­¦çš„åŽŸç†æ€§ç”Ÿäº§ã€?a mce_href="/blog/325051">http://canonical.javaeye.com/blog/325051</a><br /> </p> <p>    代ç å¤ç”¨æ˜¯ç›®å‰èÊY件业中鼓åšw™ä½Žç”Ÿäº§æˆæœ¬çš„主è¦å£å·ä¹‹ä¸€ã€‚但是在¾l„äšg技术的指å‘下,一般所å¤ç”¨çš„åªæ˜¯ç”¨äºŽæž„建的砖å—åQŒè€ŒåÆˆä¸æ˜¯æŸç§æž„造原ç†ã€‚å³ä½¿åœ¨æ‰€æœ‰ä¿¡ æ¯å·²¾l确定的情况下,我们ä»ç„¶ä¸å¯èƒ½ä»Žéœ€æ±‚ç«‹åˆÕd¾—åˆ°å¯æ‰§è¡Œçš„äñ”å“。很多代ç å³ä½¿æˆ‘们在惌™±¡ä¸­å·²¾l历历在目,å´ä»ç„‰™œ€è¦ä¸€è¡Œè¡ŒæŠŠå®ƒä»¬èªŠå†™ä¸‹æ¥ã€‚当我们å‘现¾p? ¾lŸä¸­å·²ç»æ²¡æœ‰ä»ÖM½•¾l„äšg值得抽象的时候,ä»ç„¶ç•™ä¸‹æ¥ä¼—å¤šçš„å·¥ä½œéœ€è¦æœºæ¢°åŒ–的执行。代ç å¤ç”¨çš„ç†æƒ³å›½è·¼›ÀLˆ‘们ä»ç„‰™žå¸¸çš„é¥è¿œã€?/p> <p>     å­ä¾‹½E?subroutine)是最早的代ç é‡ç”¨æœºåˆ¶ã€‚è¿™ž®±åƒæ˜¯å°†æ˜¨å¤©å·²ç»å®Œæˆçš„工作录制下æ¥ï¼Œåœ¨éœ€è¦çš„æ—¶å€™é‡æ–°æ’­æ”¾ã€‚函æ•?function)ç›¸å¯¹äºŽå­ ä¾‹ç¨‹æ›´åŠ å¼ºå¤§ã€‚å¾ˆå¤šä»£ç çœ‹èµäh¥òq¶ä¸ä¸€æ øP¼Œä½†æ˜¯å¦‚果把其中的差异部分看作是å˜é‡ï¼Œé‚£ä¹ˆå®ƒä»¬çš„结构就å¯ä»¥¾lŸä¸€äº†ã€‚å†åŠ ä¸Šä¸€äº›åˆ¤æ–­å’Œå¾ªçŽ¯åQŒå¾ˆå¤šé¢ç›®èòE异的东西å…? 实是存在ç€å¤§é‡å…׃ínä¿¡æ¯çš„。é¢å‘对象技术是一‹Æ¡é£žè·ƒæ€§çš„å‘展。众多相关信æ¯è¢«æ‰“包åˆîC¸€ä¸ªå¿UŽÍ¼ˆ¾cÕdž‹åQ‰ä¸­åQŒå¤ç”¨çš„¾_’åº¦å’Œå¤æ‚度都大大æå‡ã€‚派生类从基¾cÈ‘ô 承,å¯ä»¥é€šè¿‡é‡è²å®žçŽ°å¯¹åŽŸæœ‰ä»£ç çš„¾l†è‡´è°ƒæ•´ã€‚丘q‡ï¼Œ˜q™ç§æ–¹å¼ä»ç„¶æ— æ³•满èƒö日益增长的å¤ç”¨éœ€æ±‚。很多时候,一个å¿U°åƈä¸èƒö以标定我们最¾lˆéœ€è¦çš„代砾l“æž„åQŒåœ¨ 实际使用的时候还需è¦è¡¥å……更多的信æ¯ã€‚ç±»åž‹å‚æ•°åŒ–åQŒå³æ³›åž‹æŠ€æœ¯ï¼Œä»Žäº‹åŽçš„角度看其实是一¿U明昄¡š„解决æ–ÒŽ(gu¨©)¡ˆã€‚æ ¹æ®å‚数动æ€çš„生æˆåŸºç±»è‡ªç„¶å¯ä»¥å¸çº³æ›´å¤šçš„å˜ åŒ–ã€‚ç»åŽ†äº†æ‰€è°“Modern C++çš„å‘展之åŽï¼Œæˆ‘们现在已ç»éžå¸¸æ˜Žç¡®åQŒæ³›åž‹åƈéžä»…仅能够实现类型共å˜ï¼Œè€Œæ˜¯å¯ä»¥ä»Žç±»åž‹å‚æ•îC¸­å¼•入更丰富的¾l“构信æ¯åQŒå®ƒçš„æœ¬è´¨æ˜¯ä¸€¿U代ç ç”Ÿæˆçš„˜q‡ç¨‹ã€?a mce_href="/blog/57244">http://canonical.javaeye.com/blog/57244</a> 认清了这一点,它的扩展ž®±éžå¸¸æ˜Žæ˜¾äº†<br /> </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">   BaseClass</span><span style="color: #000000;"><</span><span style="color: #000000;">ArgClass</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">--></span><span style="color: #000000;"> CodeGenerator</span><span style="color: #000000;"><</span><span style="color: #000000;">DSL</span><span style="color: #000000;">></span></div> <p>DSLåQˆæˆ–者柿U模型对象)相对于普通的¾cÕdž‹(Class)åQŒä¿¡æ¯å¯†åº¦è¦å¤§å¾ˆå¤šï¼Œå®ƒå¯ä»¥æä¾›æ›´ä¸°å¯Œä¹Ÿæ›´å®Œæ•´çš„输入信æ¯ã€‚而CodeGenerator也ä¸å¿…拘泥于基础语言本èínæä¾›çš„å„¿U编译机åˆÓž¼Œè€Œæ˜¯å¯ä»¥ç‰|´»åº”用å„ç§æ–‡æœ¬ç”ŸæˆæŠ€æœ¯ã€?a mce_href="/blog/309395">http://canonical.javaeye.com/blog/309395</a> CodeGenerator在这里所æä¾›çš„æ­£æ˜¯æ ¹æ®è¾“入模型推导出完整实现代ç çš„æž„造原ç†ã€?/p> <p>     现在很多人热衷于开å‘自å·Þqš„½Ž€æ˜“代ç ç”Ÿæˆå·¥å…øP¼Œ˜q™äº›å·¥å…·ä¹Ÿè®¸å¯ä»¥åœ¨ç®€å•的情åŞ下å‡è½ÖM¸€äº›ä½“力工作,但是生æˆçš„代ç ä¸€èˆ¬ä¸èƒ½ç›´æŽ¥æ»¡­‘³éœ€æ±‚,ä»ç„¶éœ€è¦æ‰‹å·¥æ‰§è¡? 大é‡çš„删改工作。当代ç ç”Ÿæˆä¹‹åŽåQŒå®ƒæˆäؓ一¿U固化的物质产å“åQŒä¸å†èƒ½å¤Ÿéšç€ä»£ç ç”Ÿæˆå·¥å…·çš„æ”¹˜q›è€ŒåŒæ­¥æ”¹˜q›ï¼Œåœ¨é•¿æœŸçš„¾pÈ»Ÿæ¼”化˜q‡ç¨‹ä¸­ï¼Œ˜q™äº›å·¥å…·òq¶ä¸ä¸€å®šèƒ½å¤? å‡å°‘累积的工作é‡ã€?br /> </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">   修正˜q‡ç¨‹  </span><span style="color: #000000;">==></span><span style="color: #000000;"> CodeGenerator</span><span style="color: #000000;"><</span><span style="color: #000000;">DSL</span><span style="color: #000000;">></span></div> <p>ä¸ÞZº†æ”¹è¿›ä»¥ä¸Šä»£ç ç”Ÿäñ”˜q‡ç¨‹åQŒä¸€äº›äh试图在CodeGenerator中引入越æ¥è¶Šå¤šçš„å¯é…¾|®æ€§ï¼Œž®†å„¿Uå˜åŒ–çš„å¯èƒ½å†…置在构造原ç†ä¸­ã€‚显然这会造æˆCodeGeneratorçš„ä¸æ­£å¸¸çš„肿胀。当更多的å¶ç„¶æ€§è¢«åŒ…å«åœ¨åŽŸç†ä¸­çš„æ—¶å€™ï¼Œå¿…然会破å原ç†çš„½Ž€å•性和普适性ã€?<br /> </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">   输入信毠</span><span style="color: #000000;">+</span><span style="color: #000000;"> ä¸€ŒD는¨äºŽæŽ¨å¯¼çš„原熠</span><span style="color: #000000;">+</span><span style="color: #000000;"> ä¿®æ­£è¡¥å…… </span><span style="color: #000000;">=</span><span style="color: #000000;"> çœŸå®žæ¨¡åž‹</span></div> <p>必须存在[修正补充]˜q™ä¸€™åÒŽ(gu¨©)‰èƒ½ç»´æŒä»¥ä¸Šæ–¹½E‹çš„æŒä¹…òqŒ™¡¡ã€?/p> <p>     ä¸ÞZº†æ‘†è„±äººå·¥ä¿®æ­£˜q‡ç¨‹åQŒå°†æ¨¡åž‹è°ƒæ•´¾U›_…¥åˆ°æ¦‚念世界中åQŒæˆ‘们需è¦è¶…­‘Šç‘ô承机制的åQŒæ›´åŠ å¼ºå¤§çš„åQŒæ–°çš„æŠ€æœ¯æ‰‹ŒDüc€‚其实在当å‰çš„æŠ€æœ¯èƒŒæ™¯ä¸‹åQŒè¿™ä¸€æŠ€æœ¯å·²¾l是å‘ég¹‹‹Æ²å‡ºäº†ã€‚è¿™ž®±æ˜¯AOP, Aspect Oriented Programmingã€?a mce_href="/blog/34941">http://canonical.javaeye.com/blog/34941</a> <br /> </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">      Biz </span><span style="color: #000000;">==</span><span style="color: #000000;">[AOP </span><span style="color: #0000ff;">extends</span><span style="color: #000000;">]</span><span style="color: #000000;">==></span><span style="color: #000000;"> CodeGenerator</span><span style="color: #000000;"><</span><span style="color: #000000;">DSL</span><span style="color: #000000;">></span><span style="color: #000000;"> <br /> </span></div> <p>¾l§æ‰¿ä»…仅能够实现åŒåæ–ÒŽ(gu¨©)³•之间的简å•覆盖,而AOP所代表的技术原ç†å´æ˜¯åœ¨ä»£ç ¾l“æž„½Iºé—´ä¸­è¿›è¡Œä“Qæ„夿‚的删改æ“作,它潜在的能力½{‰ä­h(hu¨¢n)于äh工调整ã€?/p> <p>     ä¸ÞZº†å®žçŽ°ä¸Šè¿°ç”Ÿäñ”模å¼åQŒéœ€è¦å¯¹¾~–程语言åQŒç»„件模型,框架设计½{‰æ–¹é¢è¿›è¡Œä¸€¾pÕdˆ—攚w€ ã€‚ç›®å‰é€šç”¨çš„AOP实现和元¾~–ç¨‹æŠ€æœ¯å…¶å®žåÆˆä¸èƒö以支æŒä»¥ä¸Šæ¨¡å¼ã€?a mce_href="/blog/275015">http://canonical.javaeye.com/blog/275015</a> <br />     ˜q™ä¸€ç”Ÿäñ”模弞®†ä¼šå¦‚何演化åQŒä¹Ÿæ˜¯ä¸€ä¸ªæœ‰­‘£çš„问题。按照çñ”列ç†è®ºï¼Œæˆ‘们立刻å¯ä»¥å¾—到如下å‘展方å‘åQ?/p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">    Context0 </span><span style="color: #000000;">+</span><span style="color: #000000;"> DSL1 </span><span style="color: #000000;">+</span><span style="color: #000000;"> EXT0 </span><span style="color: #000000;">=</span><span style="color: #000000;"> DSL0  <br />     Context1 </span><span style="color: #000000;">+</span><span style="color: #000000;"> DSL2 </span><span style="color: #000000;">+</span><span style="color: #000000;"> EXT1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> DSL1  <br />     <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /> <br /> </span></div> <p><a mce_href="/blog/33824"> http://canonical.javaeye.com/blog/33824</a></p> <p>Witrixòq›_°ä¸­BizFlowå¯ä»¥çœ‹ä½œæ˜¯å¯¹DaoWebAction的修正模型,但是它本íw«å…·æœ‰å®Œæ•´çš„æ„ä¹‰åQŒå¯ä»¥ç›´è§‚的被ç†è§£ã€‚在BizFlow的基¼‹€ä¸Šå¯ä»¥é€æ­¥å»ºç«‹SeqFlowåQŒStateFlow½{‰æ¨¡åž‹ã€?a mce_href="/blog/126467">http://canonical.javaeye.com/blog/126467</a></p> <p>      çŽ°åœ¨æœ‰äº›äºø™¯•图深挖函数å¼è¯­è¨€åQŒåˆ©ç”¨æ¨¡å¼åŒ¹é…之¾cÈš„概念åQŒåš½W¦å·½Iºé—´çš„全局优化。但是我们需è¦è®¤è¯†åˆ°é€šç”¨çš„æœºåˆ¶æ˜¯å¾ˆå°‘的,能够在通用语言背景下被明确æå‡º 的问题更是很ž®‘çš„ã€‚åªæœ‰åœ¨ç‰¹å®šé¢†åŸŸä¸­ï¼Œåœ¨æŽŒæ¡æ›´å¤šå±€éƒ¨ä¿¡æ¯çš„æƒ…况下,我们æ‰èƒ½æå‡ºä¸°å¯Œçš„问题,òq¶ä½œå‡ÞZ¸€å®šèƒŒæ™¯ä¸‹çš„è§£½{”。DSL的世界中待åšçš„å’Œå¯åšçš„å·¥ä½? 很多ã€?a mce_href="/blog/147065">http://canonical.javaeye.com/blog/147065</a> <br /> </p> <p>      对于½E‹åºå‘˜è€Œè¨€åQŒæœªæ¥å°†å˜å¾—­‘Šæ¥­‘Šä¸°å¯Œè€Œå¤æ‚,它将æŒç®‹æ‹·é—®æˆ‘ä»¬çš„æ´žå¯ŸåŠ›ã€‚æˆ‘ä»¬ä¸æ˜¯ä¸€è¡Œè¡Œçš„编写代ç ï¼ŒæŠŠéœ€æ±‚ä¸€æ¡æ¡çš„翻译到æŸç§å®žçŽ°ä¸Šï¼Œè€Œæ˜¯ä¸æ–­å‘明局部的生äñ”原ç†åQŒä¾é è‡ªå·±åˆ¶å®šçš„规则在抽象的½Iºé—´ä¸­ä¸æ–­çš„创造新的表象ã€?br /> </p> <img src ="http://www.aygfsteel.com/canonical/aggbug/254784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2009-02-15 18:21 <a href="http://www.aygfsteel.com/canonical/archive/2009/02/15/254784.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>逆元åQšä¸å­˜åœ¨çš„真实存åœ?http://www.aygfsteel.com/canonical/archive/2009/02/07/253744.htmlcanonicalcanonicalSat, 07 Feb 2009 14:22:00 GMThttp://www.aygfsteel.com/canonical/archive/2009/02/07/253744.htmlhttp://www.aygfsteel.com/canonical/comments/253744.htmlhttp://www.aygfsteel.com/canonical/archive/2009/02/07/253744.html#Feedback1http://www.aygfsteel.com/canonical/comments/commentRss/253744.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/253744.html

       负数没有直接的几何æ„ä¹‰ï¼Œå› æ­¤å®ƒè¢«è®¤äØ“æ˜¯å¯¹åº”äºŽä¸å­˜åœ¨çš„事物。而按照å¤å¸Œè…Šçš„逻辑åQŒä¸å­˜åœ¨çš„事物是ä¸å¯èƒ½å­˜åœ¨çš„åQŒå› è€Œä¹Ÿž®±æ˜¯æ— æ³•被ç†è§£çš„åQŒæ›´ä¸å¯èƒ½å‚与到 推熘q‡ç¨‹ä¸­ï¼Œå› æ­¤æ˜¯æ— æ„义的,无法被定义的åQ? 因此它是ä¸å­˜åœ¨çš„。中国äh注é‡çš„æ˜¯˜qç®—çš„åˆç†æ€§ï¼Œè€Œä¸æ˜¯æ•°çš„çœŸç†æ€§ï¼Œå¤§æ¦‚在公元å‰400òq´å·¦å›_°±åˆ›é€ äº†è´Ÿæ•°å’Œé›¶çš„æ¦‚å¿üc€‚而在西方直到公元7世纪åQˆå”代)çš? 一本å°åº¦äh的著作中æ‰å‡ºçŽ°è´Ÿæ•ŽÍ¼Œå®ƒè¢«ç”¨æ¥è¡¨ç¤ºè´Ÿå€ºã€‚西方äh没有能够创造负敎ͼŒä»–ä»¬å¯¹è´Ÿæ•°çš„æŽ¥å—æ›´è¿Ÿè‡?5世纪左å³ã€‚这件事实在一定程度上说明了存在柿Uæ·± åˆÈš„å›°éš¾é˜È¢æˆ‘们ç†è§£è´Ÿæ•°æ¦‚念ã€?br />        在引入负æ•îC¹‹å‰ï¼Œ3x^2 + 8 = 4x å’?nbsp; 3x^2 + 4x + 8 = 0 ˜q™ä¸¤ä¸ªæ–¹½E‹çš„¾l“构是完全ä¸åŒçš„åQŒå®ƒä»¬éœ€è¦ä¸åŒçš„æ±‚解技术,因此也就ä¸å¯èƒ½åˆ©ç”¨ç¬¦åähŠ½è±¡å‡º a x^2 + b x + c = 0。引入负数æ‰ä½¿å¾—æˆ‘ä»¬èƒ½å¤Ÿä»¥ç»Ÿä¸€çš„æ–¹å¼æå‡ºé—®é¢˜ï¼Œòq¶ç ”½I‰™€šç”¨çš„æ±‚解技术ã€?br />       ¾Ÿ¤è®º(Group Theory)是对¾l“æž„˜q›è¡ŒæŠ½è±¡ç ”究的数学分支。群的定义包括四æ¡è§„åˆ?br /> 1.    å…ƒç´ ä¹‹é—´çš„è¿½Ž—æ»¡­‘³ç»“åˆå¾‹ (a * b) * c = a * (b * c)
2.    å…ƒç´ ä¹‹é—´çš„è¿½Ž—å°é—­ï¼Œå?a * b ä»ç„¶å±žäºŽè¯¥ç¾¤
3.    存在å•ä½å…ƒï¼Œå›_¯¹æ‰€æœ‰a, a * e = e*a = a
4.    æ¯ä¸ªå…ƒç´ å­˜åœ¨å¯¹åº”的逆元åQŒa * a^-1= e
      é€†è¿½Ž—æ˜¯éžå¸¸é‡è¦çš„ç»“æž„è¦æ±‚,逆元是对负数的一¿U抽象推òqÑ€‚如果没有逆元åQŒåˆ™åªèƒ½æž„æˆåŠç¾¤(semi-group)åQŒå®ƒçš„æ€§è´¨è¦å°‘很多ã€?/p>


      ç›®å‰è½¯äšg设计中所有的原则都指å‘组装过½E‹ï¼Œä»Žæ— åˆ°æœ‰åQŒå±‚层篘q›ã€‚构件组装的éšå–»ä¸­æ‰€åŒ…å«çš„å›¾åƒæ˜¯æ“纵实际å¯è§çš„积木,是缺ž®‘逆元概念的ã€?/p>

      考察一个简å•的例å­åQŒå‡è®ùNœ€è¦çš„äº§å“æ˜¯ä¸‰è§’åŞ内部挖去一个五边åŞ的剩余部分。有三ç§ç”Ÿäñ”½{–ç•¥åQ?br /> 1.    å¯ÒŽ(gu¨©)œ€¾lˆéœ€è¦çš„产å“å½¢æ€è¿›è¡Œä¸‰è§’剖分,使用8个å°ä¸‰è§’形拼接出æ¥ã€‚è¿™¿Uæ–¹å¼æ¯”较ç¹ç,而且最åŽç²˜æŽ¥å·¥åºçš„å¯é æ€§å’Œ¾_„¡¡®æ€§å€¼å¾—怀疑ã€?br /> 2.    拿到一个真实的三角形,然åŽç”¨åˆ€åœ¨å†…部挖å‡ÞZ¸€ä¸ªäº”è¾¹åŞ的洞。这¿Uæ–¹å¼éœ€è¦æ¶ˆè€—一定的人工åQŒè€Œä¸”也很难ä¿è¯äº”è¾¹åŞ的精¼‹®æ€§ï¼Œå³ä‹É我们曄¡»¾_„¡¡®çš„ç”Ÿäº§è¿‡å…¶ä»–äº”è§’å½¢å’Œä¸‰è§’å½¢ã€‚å®žé™…ä¸Šä¸€èˆ¬æƒ…å†µä¸‹æˆ‘ä»¬æ˜¯é€æ­¥é”‰å‡ºä¸€ä¸ªäº”è¾¹åŞ的,òq¶æ²¡æœ‰å……分利用到五边形的对称性ã€?br /> 3.    在概å¿ëŠ©ºé—´ä¸­åšä¸€ä¸ªæŠ½è±¡è®¡½Ž?nbsp; (-五边å½? + (三角å½? = 所需产å“
如果我们能够生äñ”一¿U负的五边åŞ和一¿U正的三角åÅžåQŒåˆ™å¯ä»¥ç«‹åˆ»å¾—到最¾lˆçš„产å“ã€?br />



 
在èÊYä»¶å¼€å‘的实践中,我们目å‰å¤šæ•°é‡‡ç”¨çš„æ˜¯ä¸¤ç§æ–¹å¼åQ?br /> 1.    采用å¯è§†åŒ–设计工具通过拖拽æ“作开å‘出完整的界é¢å’ŒåŽå°
2.    拯‚´ä¸€äº›å·²æœ‰çš„代ç åQŒåˆ é™¤æŽ‰ä¸éœ€è¦çš„部分åQŒå¢žåŠ ä¸€äº›æ–°çš„å®žçŽŽÍ¼Œä¹Ÿå¯èƒ½å¯¹å·²æœ‰å®žçްåšä¸€äº›ä¸å…¼å®¹çš„修正ã€?br />
åœ¨ç¬¬äºŒç§æ–¹å¼ä¸?br />            新结构的构é€?= 已有¾l“æž„ + 软äšg之外的由人执行的一个剪è£è¿‡½E?br /> ˜q™ä¸ªå‰ªè£˜q‡ç¨‹è¡¨çްä¸ÞZ¸€ä¸ªæ—¶é—´åºåˆ—。如果我们对原有¾l“æž„˜q›è¡Œäº†è°ƒæ•ß_¼Œåˆ™éœ€è¦é‡æ–°å…³è”一个时间åºåˆ—,而此旉™—´åºåˆ—òq¶ä¸ä¼šè‡ªåЍ釿’­ã€‚äØ“äº†åŽ‹¾~©ä»¥æ—‰™—´ä¸ºåº¦é‡å•ä½çš„ 生äñ”æˆæœ¬åQŒæˆ‘们必™åÕd‡ž®‘对旉™—´åºåˆ—çš„ä¾èµ–。在旉™—´åºåˆ—中展开的一个构造过½E‹å¯ä»¥è¢«è½¬åŒ–ä¸ÞZ¸€ä¸ªé«˜¾l´è®¾è®¡ç©ºé—´ä¸­çš„一¿U更加丰富的构造原ç†ï¼Œæˆ‘们最¾lˆçš„观测å¯ä»¥ 看作是设计空间å‘物熽Iºé—´çš„一个投影(惌™±¡ä¸€æŸå…‰æ‰“下æ¥ï¼‰ã€‚è¿™¿Uæ–¹å¼æ›´å®ÒŽ(gu¨©)˜“ä¿è¯½E‹åºçš„æ­£¼‹®æ€§ã€?br />           æ—‰™—´åºåˆ— --[原ç†è½¬åŒ–]--> ½Iºé—´å…³ç³»


    ˜q™æ ·æˆ‘们ž®±å¯ä»¥ä‹É用第三ç§ç”Ÿäñ”½{–ç•¥åQšåˆ©ç”¨æž„造原ç†è¿›è¡ŒæŠ½è±¡è®¡½Ž—。如果我们åªç›¯ç€äº§å“的最¾lˆåÅžæ€çœ‹åQŒåªæ˜¯æƒ³ç€æ€Žä¹ˆæŠŠå®ƒåƒæ­¿U¯æœ¨ä¸€æ äh­å»ºå‡ºæ¥ï¼Œž®×ƒ¸å¯èƒ½è¯†åˆ«å‡? ¾pÈ»Ÿ¾l“构本èín所蕴å«çš„对¿U°æ€§ã€‚如果我们å‘çŽîCº†¾pÈ»Ÿå†…蕴的结构特å¾ï¼Œä½†æ˜¯å´åªèƒ½é€šè¿‡æž„造过½E‹ä¸­çš„行动åºåˆ—楘q½éšå®ƒï¼ŒåŒæ ·æ— æ³•实现有效的工作å¤ç”¨ã€‚åŒæ—¶å› ä¸ø™¿™ 个行动åºåˆ—一般处于系¾lŸè§„则约æŸä¹‹å¤–,完全ç”׃h的自觉æ¥ä¿éšœåQŒå› æ­¤å¾ˆéš¾ä¿è¯å®ƒçš„æ­£¼‹®æ€§ã€‚çŽ°å®žä¸–ç•Œçš„è§„èŒƒè¦æ±‚òq¶ä¸æ˜¯æ¨¡åž‹æœ¬íw«æ‰€å¿…须满èƒö的,åªè¦æˆ‘们能够创é€? æ–°çš„¾l“构原ç†åQŒåœ¨æ¦‚念½Iºé—´ä¸­æˆ‘们就å¯ä»¥æ‹¥æœ‰æ›´å¤šçš„自由。现在业内鼓å¹çš„软äšg构造原ç†å¤šåŠæ˜¯å‚照物ç†ä¸–界中生产具体物质äñ”å“的生äñ”å·¥åºåQŒå´æ²¡æœ‰çœŸæ­£æŠŠæ¡ä¿¡æ¯çš„æŠ½è±¡æœ¬è´¨ã€‚掌æ¡è§„则,制订规则åQŒæ‰æ˜¯ä¿¡æ¯ç©ºé—´ä¸­çš„æ¸¸æˆè§„则ã€?br />
    物ç†å­¦ä¸­æœ€é‡è¦çš„分æžå­¦æ€æƒ³ä¹‹ä¸€æ˜¯å¾®æ‰°è®º(Perturbation). é’ˆå¯¹ä¸€ä¸ªå¤æ‚的物ç†çŽ°è±¡åQŒé¦–å…ˆå¾ç«‹ä¸€ä¸ªå…¨å±€çš„规范的模型åQŒç„¶åŽè€ƒè™‘å„ç§å¾®æ‰°æ¡äšg对原有模型的影å“。在ž®æ‰°åŠ¨æƒ…å†µä¸‹åQŒæ¨¡åž‹çš„å˜åŒ–部分往往å¯ä»¥è¢«çº¿æ€§åŒ–åQŒè¢«å±€ 域化åQŒå› è€Œé—®é¢˜å¾—到简化。微扰分æžå¾—到的解ä¾èµ–于全局模型的解而存在,因而这是一¿U主从关¾pÈš„分解方å¼ã€‚但是如果主体模型是我们已ç»ç†ŸçŸ¥çš„物ç†çŽ°è±¡ï¼Œåˆ™æˆ‘ 们关注的é‡ç‚¹å¯ä»¥å…¨éƒ¨æ”‘Öœ¨æ‰°åŠ¨è§£ä¸ŠåQŒè®¤ä¸ºæ‰€æœ‰ç‰¹å®šçš„物ç†è§„律都体现在扰动解中。如果微扰分æžå¾—到的物ç†å…ƒç´ ­‘›_¤Ÿä¸°å¯ŒåQŒåˆ™å¾®æ‰°æ¨¡åž‹æœ¬èínå¯ä»¥æˆäؓ独立的研½I¶å¯¹ è±¡ï¼Œåœ¨å…¶ä¸­æˆ‘ä»¬åŒæ ·å¯ä»¥å‘现柿U普适的¾l“构规律ã€?br />     考察如下的构造过½E?br />        X = a + b + c
       Y = a + b + d = (a + b + c) - c + d = X - c + d
    对于数学而言åQŒä¸Š˜q°çš„æŽ¨å¯¼æ˜¯ç­‰ä»ïL(f¨¥ng)š„åQŒä½†æ˜¯å¯¹äºŽç‰©ç†å­¦è€Œè¨€åQŒY = a + b + d å’?nbsp; Y = X - c + dæ˜¯æœ‰ç€æœ¬è´¨ä¸åŒçš„。第一¿Uæ–¹å¼è¦æ±‚打破原先Xçš„æž„é€ ï¼Œè€Œé‡æ–°çš„¾l„è£…å…¶å®žæ˜¯æœ‰æˆæœ¬çš„,特别是在X本èínéžå¸¸å¤æ‚的情况下。典型的åQŒå¦‚æžœX是绘q‡æµ‹è¯•的功能åQ? 釿–°¾l„装åŽåŽŸå…ˆç”±‹¹‹è¯•ä¿éšœçš„æ¦‚念边界被打破ã€?br />          我们å¯ä»¥ä»ŽY = X + dX抽象出扰动模åž?nbsp; dX = - c + d
ä¸ÖM»Žåˆ†è§£æ¨¡å¼è‡ªç„¶çš„导出逆元概念ã€?br />
      如果没有逆元åQŒæˆ‘们必焉™œ€è¦åˆ†è§£ã€‚ä½†æ˜¯å¦‚æžœå‘æŽ˜äº†èƒŒæ™¯˜q™ä¸€æ¦‚念åQŒåœ¨é€†å…ƒ˜qç®—ä¸‹ï¼Œå¯¹èƒŒæ™¯ä¸æ˜¯åˆ†è§£è®©å…¶æˆä¸ºå¯è§çš„部分åQŒè€Œæ˜¯é‡‡ç”¨˜q½åŠ çš„ï¼Œå¢žåˆ çš„æ–¹æ³•å¯¹èƒŒæ™¯¾l“æž„ ˜q›è¡Œä¿®æ­£åQŒåˆ™æˆ‘们有å¯èƒ½åœ¨æ²¡æœ‰å®Œæ•´èƒŒæ™¯çŸ¥è¯†çš„æƒ…况下åQŒç‹¬ç«‹çš„ç†è§£å±€éƒ¨å˜åŒ–çš„¾l“构。å³èƒŒæ™¯æ˜¯é€æ˜Žçš„,知识æˆäؓ局部的。在Witrixòq›_°ä¸­ï¼ŒBizFlow + DaoWebAction + StdPage æ‰æž„æˆå®Œæ•´çš„½E‹åºæ¨¡åž‹åQŒBizFlow其实是对标准模型的差异æ˜qŽÍ¼Œä½†æ˜¯å®ƒå¯ä»¥è¢«å•独的ç†è§£ã€‚如果我们从接触½E‹åºå¼€å§‹å°±æŽ¥å—BizFlow, ž®±å¯èƒ½å®Œå…¨ä¸éœ€è¦äº†è§£æ•°æ®åº“讉K—®å’Œå‰å°ç•Œé¢æ¸²æŸ“çš„çŸ¥è¯†ã€‚æˆ‘ä»¬åÆˆä¸æ˜¯é€šè¿‡åœ¨DaoWebAction中设定儿Uå¯é¢„è§çš„调用åÅžå¼ï¼Œè€Œæ˜¯åœ¨BizFlow中é€? ˜q‡ç±»ä¼¼AOPçš„æ“作方å¼ç›´æŽ¥å¯¹æ ‡å‡†æ¨¡åž‹˜q›è¡Œä¿®æ­£ã€‚è¿™¿U修正中一个很é‡è¦çš„部分就是删除标准模型中¾~ºçœæä¾›çš„功能ã€?br />      WebMVC之å‰ä¸–今ç”?http://canonical.javaeye.com/blog/163196
     Witrixæž¶æž„åˆ†æž http://canonical.javaeye.com/blog/126467


      å˜åŒ–的部分构æˆç‹¬ç«‹äºŽåŽŸå§‹æ¨¡åž‹çš„æ–°çš„æ¨¡åž‹ï¼Œå®ƒçš„¾l“构关系是完备的åQŒå¯ä»¥ç‹¬ç«‹çš„ç†è§£ã€‚在原始模型崩溃的情况下åQŒå®ƒä»ç„¶å¯èƒ½ä¿æŒæœ‰æ•ˆæ€§ã€?br />       从物ç†å­¦çš„角度看åQŒæˆ‘们所观测到的一切物ç†çŽ°è±¡ï¼Œéƒ½æ˜¯æŸç§ç‰©ç†ä½œç”¨çš„结果,也就是物质结构相对于背景状况的一¿Uå¼›…R€‚我们åªå¯èƒ½è§‚测到å˜åŒ–的部分åQŒå› æ­¤æˆ‘ä»¬å¯¹ä¸–ç•Œçš„è®¤è¯†å…¶å®žåªæ˜¯ä¸–界的扰动模型而已åQŒä¸–界的本体ä¸å±žäºŽç§‘学研½I¶çš„范畴ã€?/p>

]]>
文本åŒ?/title><link>http://www.aygfsteel.com/canonical/archive/2009/01/04/249666.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sat, 03 Jan 2009 16:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2009/01/04/249666.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/249666.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2009/01/04/249666.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/249666.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/249666.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="blog_content"> <p>    软äšg技术的å‘å±•æ˜¯ä¸€ä¸ªç»“æž„åŒ–ä¸æ–­åŠ æ·±çš„è¿‡½E‹ï¼Œæˆ‘们逿¸æ‹¥æœ‰äº†è¶Šæ¥è¶Šä¸°å¯Œçš„结构识åˆ? è¡¨è¾¾å’Œå¤„ç†æ‰‹ŒDüc€‚在˜q™ä¸€æ–¹å‘ä¸? ¾l„äšg技术最¾lˆå–得了巨大的商业æˆåŠŸã€‚ä½†æ˜¯åŒºåˆ†åŒæ—¶ä¹Ÿž®±æ„味ç€éš”阂。é¢å‘对象技术最基础的概念在äº?O = C(O), 对象的å¤å?Composition)ä»ç„¶æ˜¯å¯¹è±?  然而在­‘Šæ¥­‘Šå¤æ‚的软äšg生æ€çŽ¯å¢ƒä¸­,˜q™ä¸€å›¾æ™¯å®žçŽ°çš„å¯èƒ½æ€§è¢«å¤§å¤§çš„压¾~? é¢å¯¹å±‚层ž®è£…造æˆçš„åÅžæ€å„异的表达方å¼, ä¸åŒæ¥æº, ä¸åŒç›®æ ‡, ä¸åŒ˜q行环境下的信æ¯çš„交互å˜å¾—è¶Šæ¥è¶Šå›°éš¾ã€‚æˆ‘ä»¬é€æ¸ä¸§å¤±äº†æ¦‚念上的简‹zæ€? 也ä“áå¤×ƒº†æ•°å­¦ä¸–界中的那秽I‰K€ä¸€åˆ‡çš„¾lŸä¸€çš„力é‡? 所谓SOAåQˆSerivce Oriented Architecture)技术试å›ùN€šè¿‡è¡¥å……更多的环境信æ¯ï¼Œæ”‘Ö¼ƒçжæ€å…³è”ï¼Œæš´éœ²å…ƒçŸ¥è¯†ç­‰æ–¹å¼æ¥çªç ´çŽ°æœ‰çš„å›°å¢ƒã€?<a >http://canonical.javaeye.com/blog/33803 </a> ˜q™å…¶ä¸­ä¸€™å¹å…³é”®çš„æŠ€æœ¯æŠ‰æ‹©æ˜¯åŸÞZºŽæ–‡æœ¬æ ¼å¼˜q›è¡Œä¿¡æ¯è¡¨è¾¾ã€?/p> <p>      在过åŽ?0òq´ä¸­Web技术å–得了½Iºå‰çš„æˆåŠŸï¼Œå®ƒé€ å°±äº†äº’è”网˜q™ä¸€ä¸–界上最大的分布å¼é›†æˆåº”用。SOA从柿U程度上说是对这一事实在技术层é¢ä¸Šçš„åæ€ã€‚åŸºäº? 文本传递的web技术所表现出æ¥çš„开放性,å¯ç†è§£æ€§å’Œå¯è§‚‹¹‹æ€§ï¼Œä¸Žå°é—­çš„åQŒéš¾ä»¥ç›´æŽ¥è§£è¯Èš„åQŒå¿…™åÀL‹¥æœ‰å¤§é‡ç›¸å…³çŸ¥è¯†æ‰èƒ½æ­£¼‹®æ“作的二进制结构相比,˜q™æœ¬íw«å°± 是é©å‘½æ€§çš„创新。ä¸éœ€è¦ç‰¹ŒDŠçš„工具ž®±å¯ä»¥éžå¸¸è½»æ˜“的察看到网™å늨‹åºçš„输入输出åQŒæ‰€æœ‰äº¤äº’过½E‹éƒ½å¤„åœ¨å®Œå…¨é€æ˜Žçš„æ£€æŸ¥ä¸‹åQŒå„¿U䏿›¾äº‹å…ˆè§„åˆ’çš„æ–‡æœ¬å¤„ç†æ‰‹æ®µéƒ½å¯ 以å‚与到web创å¾çš„过½E‹ä¸­ã€‚éšç€é€Ÿåº¦åQŒå­˜å‚¨ä¸å†æ˜¯æˆ‘们考虑的首è¦é—®é¢˜ï¼Œæ–‡æœ¬åŒ–作ä¸ÞZ¸€¿U技术趋劉K€æ¸å˜å¾—明确èµäh¥ã€‚但是ä“Q何一¿UæŠ€æœ¯æ€æƒ³çš„æˆåŠŸæˆ–å¤ÞpÓ|éƒ½ä¸ å¯èƒ½æ˜¯å› ä¸ºæŸ¿Uå•一的原因所造æˆçš„,因此有必è¦å¯¹æ–‡æœ¬åŒ–的技术ä­h(hu¨¢n)å€¼åšæ›´åŠ ¾l†è‡´çš„剖æžã€?br />    <br />    1. 文本化是一定程度上的去¾l“构化,但是通过˜q™ç§æ–¹å¼æˆ‘们获得了对½E‹åº¾l“构的更强的控制力。无论我们所兛_¿ƒçš„æ–‡æœ¬ç‰‡æ–­å±‚å±‚åµŒå¥—åœ¨å¤§æ®µæ–‡æœ¬çš„å“ªä¸ªéƒ¨åˆ†ï¼Œæˆ‘ä»¬éƒ½å¯ ä»¥é€šè¿‡text.indexOf(subStr)æ¥å®žçŽ°å®šä½ï¼Œé€šè¿‡text.replace(oldStr,newStr)å®žçŽ°å˜æ¢ã€‚而在¾l„äšg¾pÈ»Ÿä¸­ï¼Œæˆ? ä»¬åªæœ‰é€šè¿‡æŸç§é¢„定的é历方å¼é€æ­¥é€’å½’æ‰æœ‰å¯èƒ½è®‰K—®åˆ°ç»„件内部的¾l„æˆå¯¹è±¡ã€‚如果æŸä¸ªç»„件䏿Œ‰ç…§è§„范实现或者规范中¾~ºå°‘明确的设定,则这一信æ¯å…Œ™”链桞®†ä¼š 断裂。在一些组件系¾lŸä¸­åQŒç”šè‡Ïx²¡æœ‰è§„定一¿U统一的é历方å¼ï¼Œåˆ™æˆ‘们根本无法定义出通用的大范围的结构定ä½?å˜æ¢æ‰‹æ®µã€‚å³ä½¿æ˜¯åœ¨è®¾è®¡ç²¾è‰¯çš„¾l„äšg框架中,å—é™ åˆ¶äºŽ¾l„äšgçš„å°è£…æ€§è¦æ±‚,我们也ä¸å¯èƒ½è®‰K—®åˆ°å…¨éƒ¨çš„ä¿¡æ¯ã€‚å½“æˆ‘ä»¬ä»¥ç»„ä»¶è®¾è®¡è€…æ„æ–™ä¹‹å¤–的方å¼ä½¿ç”¨˜q™äº›¾l„äšg的时候,ž®×ƒ¼šé‡åˆ°é‡é‡éšœç¢ã€‚å³ä½¿æ‰€éœ€çš„åªæ˜¯å¾®ž®çš„å±€ 部调æ•ß_¼Œå› äؓ无法触åŠåˆ°éœ€è¦ä¿®æ”¹çš„部分åQŒæˆ‘们也å¯èƒ½è¢«è¿«æ”‘Ö¼ƒæ•´ä¸ª¾l„äšgã€?br />    <br />    2. 文本是普适的信é“。儿Uæ“作系¾lŸï¼Œå„ç§½E‹åºè¯­è¨€æ‰€å…ähœ‰çš„æœ€åŸºæœ¬çš„能力就是文本处ç†èƒ½åŠ›ï¼Œå¯¹äºŽæ–‡æœ¬æ ¼å¼çš„约定是最å®ÒŽ(gu¨©)˜“è¾¾æˆå…Þp¯†çš„。虽然对于机器而言åQŒç†è§£åŸº 于地å€å®šä½çš„二˜q›åˆ¶æ•°å­—å¯èƒ½æ›´åŠ ç›´æŽ¥åQŒä½†æ˜¯æ‰€æœ‰çš„应用½E‹åºéƒ½æ˜¯ç”׃hæ¥è´Ÿè´£ç¼–åˆÓž¼Œè°ƒè¯•åQŒéƒ¨¾|ÔŒ¼Œ¾l´æŠ¤çš„,如果人å¯ä»¥ä¸å€ŸåŠ©ç‰ÒŽ(gu¨©)®Šçš„工具就å¯ä»¥æ˜Žç¡®äº†è§£åˆ°ç³»¾lŸå†…å? 生的˜q‡ç¨‹åQŒåˆ™¾pÈ»Ÿçš„æž„建和¾l´æŠ¤æˆæœ¬ž®×ƒ¼šå¤§å¹…下é™ã€?br />    <br />    3. 文本表述形å¼ä¸Šçš„冗余性增å¼ÞZº†¾pÈ»Ÿçš„æ¦‚å¿ëЍ³å®šæ€§å’Œå±€éƒ¨å¯ç†è§£æ€§ã€‚在二进制格å¼ä¸­åQŒç»å¸¸å‡ºçŽ°çš„æ˜¯æ ¹æ®ç›¸å¯¹åœ°å€å®šä½åQŒè¿™è¦æ±‚我们完整ç†è§£æ•´ä¸ªäºŒè¿›åˆ¶ç»“构,æ‰èƒ½ å¤Ÿé€æ­¥å®šä½åˆ°å±€éƒ¨æ•°æ®å—ã€‚åŒæ—Óž¼ŒäºŒè¿›åˆ¶æ ¼å¼ä¸­ä¹Ÿç»å¸æ€‹É用一些外部的信æ¯åQŒä¾‹å¦‚æŸä¸ªä½¾|®å¤„的数æ®äؓ整型åQŒå ç”¨å››ä¸ªå­—节等。这æ ïL(f¨¥ng)š„ä¿¡æ¯å¯èƒ½åªèƒ½åœ¨æ–‡æ¡£è¯´æ˜Žé‡ŒæŸ? 刎ͼŒè€Œåœ¨æ•°æ®ä½“中没有ä»ÖM½•的体玎ͼŒ˜q™é™åˆ¶äº†ç‹¬ç«‹çš„ç†è§£å¯èƒ½æ€§ã€‚与此相å,文本格弾l常是自说明å¼çš„åQŒä¾‹å¦‚width:3.5px, ˜q™æé«˜äº†¾pÈ»Ÿçš„å¯ç†è§£æ€§ï¼Œç‰¹åˆ«æ˜¯å±€éƒ¨å¯ç†è§£æ€§ã€‚å³ä½¿æˆ‘们对¾pÈ»Ÿåªå…·æœ‰å¾ˆž®‘的知识åQŒä¸€èˆ¬ä¹Ÿèƒ½æ ¹æ®æ•°æ®å‘¨å›´çš„相关信毘q›è¡Œå±€éƒ¨æ“作。一般很å®ÒŽ(gu¨©)˜“ž®Þpƒ½å¤Ÿå®šä½åˆ°ç‰? ŒDŠçš„局部数æ®åŒºåQŒå®‰å…¨çš„è·Œ™¿‡ä¼—多未知的或者ä¸è¢«å…³å¿ƒçš„¾l“æž„. ä¸€ä¸ªç¨‹åºæ–°æ‰‹ä¹Ÿå¯ä»¥åœ¨å¾ˆçŸ­æ—¶é—´å†…é ç€˜qžè’™å¸¦çŒœ, 实现xmlæ ¼å¼çš„wordæ–‡äšg中的书签替æ¢åŠŸèƒ½,è€Œè¦æžæ¸…楚word的二˜q›åˆ¶æ ¼å¼,òq¶ç‹¬ç«‹ç¼–制出正确的替æ¢åŠŸèƒ?昄¡„¶ž®×ƒ¸æ˜¯ä¸€ä¸¤å‘¨çš„工作é‡å¯ä»¥è§£å†³çš„了. ˜q™å…¶ä¸? å¯ç†è§£æ€§çš„å·®å¼‚æ˜¯å­˜åœ¨ç€æ•°é‡¾U§ä¸Šçš„é¿`沟的.<br />    <br />    4. xml˜q™ç§åŠç»“构化的文本格å¼è§„范的兴è“v, 以通用的方å¼äؓ文本æè¿°å¼•入了基本的形弾U¦æŸ, 实现了结构表辄¡š„å‡ä¸€æ€? C语言中的å®?Macro)本质上就是一¿Uæ–‡æœ¬æ›¿æ¢æŠ€æœ?它的å¨åŠ›åœ¨äºŽæ²¡æœ‰é¢„å®šä¹‰çš„è¯­ä¹‰, å› æ­¤å¯ä»¥­‘…越其他语法æˆåˆ†, 破除现有语法无法跨越的é™åˆ? 但是它的å±é™©æ€§åœ¨äºŽç¼ºä¹ä¸Žå…¶èƒ½åŠ›ç›¸é€‚åº”çš„åÅžå¼çº¦æ? 难以控制. 而在xmlæ ¼å¼è§„范ä¸? ä¸åŒè¯­ä¹‰, ä¸åŒæŠ½è±¡å±‚é¢çš„节点å¯ä»¥å…±å­˜åœ¨åŒä¸€ä¸ªåÅžå¼ä½“¾pÖM¸­, å¯ä»¥ç”¨é€šç”¨çš„æ–¹å¼è¿›è¡Œå®šä½?校验, 转梽{? Witrixòq›_°åœ¨åЍæ€xmlæ–šw¢å‘展了一¾pÕdˆ—技æœ? 为文本处ç†å¼•入了更多应用相关的规åˆ? 增强了文本æ˜q°çš„æŠ½è±¡èƒ½åŠ›å’Œè¡¨è¾¾èƒ½åŠ?  <br />    <br />    5. æ–‡æœ¬ä½œäØ“æè¿°(description)è€Œä¸æ˜¯æ‰§è¡ŒæŒ‡ä»?execution). C语言的æºä»£ç ä¸Žæœºå™¨ç åŸºæœ¬ä¸Šæ˜¯ä¸€ä¸€å¯¹åº”çš? åÏxºä»£ç æœ¬èín所表达的就是指令的执行˜q‡ç¨‹. 而在Web应用领域, HTML语言仅仅是声明界é¢ä¸Šéœ€è¦å±•çŽîC»€ä¹? 但是如何åŽÕd®žçŽ°æ˜¯ç”±é€šç”¨çš„è§£æžå¼•擎负è´?å®ƒåÆˆä¸æ˜¯æˆ‘们å…Ïx³¨çš„é‡ç‚? æè¿°éœ€è¦ç»“åˆè¯ é‡?解释)æ‰èƒ½å¤Ÿäñ”生实际的˜q行效果, æ‰èƒ½å¯¹çŽ°å®žçš„ç‰©ç†ä¸–界产生影å“.˜q™åœ¨æŸç§½E‹åº¦ä¸Šå®žé™…上是åšg˜qŸäº†æ‰§è¡Œ˜q‡ç¨‹. 一¿Uæ˜q°å¯ä»¥å¯¹åº”多¿U诠é‡? ä¾‹å¦‚åŒæ ·çš„元数æ®åœ¨å‰å°å¯ä»¥ç”¨æ¥ç”Ÿæˆç•Œé?在åŽå°å¯ä»¥ç”¨äºŽç”Ÿæˆæ•°æ®åº“, ˜q›è¡Œæ•°æ®æœ‰æ•ˆæ€§æ ¡éªŒç­‰. 在特定的应用领域ä¸?执行引擎å¯ä»¥æ˜¯é€šç”¨çš? å¯ä»¥ç‹¬ç«‹äºŽæ˜q°æœ¬íw«ä¸æ–­æ¼”åŒ? 因此一¿U领域特定的æè¿°,它所承è²çš„å†…å®¹åÆˆä¸æ˜¯å›ºåŒ–çš? 而是å¯ä»¥éšç€æ‰§è¡Œå¼•擎的凾U§ä¸æ–­å¢žå¼ºçš„. 例如, 在Witrixòq›_°ä¸? FlowDSL本èín所åšå‡ºçš„æµ½E‹æ˜q°æ˜¯½E›_®šçš? 但是éšç€‹¹ç¨‹å¼•æ“Žä¸æ–­æ”¹è¿›,䏿–­å¼•入新的功能,所有ä‹É用DSLçš„å·²å®žçŽ°çš„åº”ç”¨éƒ½åŒæ­¥å¾—到å‡çñ”. <a >http://canonical.javaeye.com/blog/275015</a> <br />    <br />    6. Text = Process(Text) ˜q™ä¸ªä¸åŠ¨ç‚¹åœ¨Unix¾pÈ»Ÿä¸­å¾—åˆîCº†å……分的应ç”? 多个ž®ç¨‹åºé€šè¿‡½Ž¡é“(Pipe)¾l„åˆåœ¨ä¸€èµ? å¯ä»¥å®Œæˆç›¸å½“夿‚的功èƒ? ä¸€ä¸ªæ›´åŠ ä¸°å¯Œçš„å¤„ç†æ¨¡åž‹æ˜?XML = Process(XML). 文本æè¿°å¾ˆè‡ªç„¶çš„æ”¯æŒå¤šè¶Ÿå¤„ç†, 它ä‹É得我们å¯ä»¥å……分利用全局知识(åŽç®‹çš„处ç†è¿‡½E‹å¯ä»¥ä‹É用剋ơ处ç†è¿‡½E‹æ”¶é›†çš„全局信æ¯), å¯ä»¥åŒæ—¶æ”¯æŒå¤šä¸ªæŠ½è±¡å±‚é¢(例如DSLçš„ä¸æ–­åЍæ€å±•å¼€). Witrixòq›_°ä¸­çš„¾~–译期è¿è¡ŒæŠ€æœ¯å®žé™…上ž®±å¯¹åº”于如下½Ž€å•è§„åˆ? ¾~–译期è¿è¡Œäñ”生文本输å‡? 对输出文本冋ơ进行编è¯? 通过˜q™ä¸€é€’归模å¼, å¯ä»¥½Ž€å•的实现动æ€è§£æžä¸Žé™æ€æ˜qîC¹‹é—´çš„òqŒ™¡¡. 模æ¿(Template)技术是å…ähœ‰å…³é”®æ€§ä½œç”¨çš„æ–‡æœ¬ç”ŸæˆæŠ€æœ? out.write("<div>");out.write(value);out.write("</div>");˜q™ç§ APIæ‹¼æŽ¥æ–¹å¼æ˜„¡„¶ä¸å¦‚<div>${value}</div>˜q™ç§æ¨¡æ¿ç”Ÿæˆæ–¹å¼ç›´è§‚且易于ä‹Éç”? 在Witrixòq›_°çš„tpl模æ¿è¯­è¨€ä¸? xml的规范性ä‹É得在多趟¾~–译˜q‡ç¨‹ä¸­æˆ‘们一直å¯ä»¥ç»´æŒæŸ¿UåÅžå¼çº¦æ? <br />    <br />    7. 䏿˜¯æ‰€æœ‰çš„æƒ…况下都应该使用文本. 普元EOS中所鼓å¹çš„XMLæ€Èº¿ä¹‹ç±»çš„æŠ€æœ¯æ˜¯æˆ‘所æžåŠ›å对çš? <a >http://canonical.javaeye.com/blog/33794</a> </p> </div> <img src ="http://www.aygfsteel.com/canonical/aggbug/249666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2009-01-04 00:55 <a href="http://www.aygfsteel.com/canonical/archive/2009/01/04/249666.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>关于代ç ç”Ÿæˆå’ŒDSLhttp://www.aygfsteel.com/canonical/archive/2008/11/23/242084.htmlcanonicalcanonicalSun, 23 Nov 2008 03:57:00 GMThttp://www.aygfsteel.com/canonical/archive/2008/11/23/242084.htmlhttp://www.aygfsteel.com/canonical/comments/242084.htmlhttp://www.aygfsteel.com/canonical/archive/2008/11/23/242084.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/242084.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/242084.html
   在应用开å‘中åQŒæœ‰äº›é¢†åŸŸæ˜¯éžå¸¸é€‚åˆäºŽä‹É用代ç ç”ŸæˆæŠ€æœ¯çš„。例如根æ®é¢†åŸŸæ¨¡åž‹ç”ŸæˆORM(对象-关系映射)æè¿°åQŒæˆ–è€…æ ¹æ®æŽ¥å£æ˜q°ç”Ÿæˆè¿œ½E‹è°ƒç”¨ä»£ç?存根 (Proxy/Stub)½{‰ã€‚å› ä¸ºå®ƒä»¬å®žé™…ä¸Šåªæ˜¯å¯¹åŒä¸€ä¿¡æ¯çš„ä¸åŒæŠ€æœ¯åÅžå¼æˆ–者ä¸åŒæŠ€æœ¯å±‚é¢çš„åŒä¹‰åå¤è€Œå·²ã€‚è¿™¿Uç”Ÿæˆæœ€ç†æƒ³çš„æ–¹å¼æ˜¯åЍæ€è¿›è¡Œï¼Œå¯ä»¥éšæ—¶ä¿æŒæ¨¡åž‹çš„æœ‰æ•ˆæ€§ã€‚RoR(RubyOnRails)框架中ActiveRecord技术便是一个æˆåŠŸçš„èŒƒä¾‹åQŒå®ƒç”šè‡³æä¾›äº†åЍæ€ç”Ÿæˆçš„DAO函数åQŒå‡ž®‘了一¾pÕdˆ—的包装调用过½E‹ã€?br />
   代ç ç”Ÿæˆæ›´åŠ æ·±åˆ»çš„åº”ç”¨æ˜¯å®Œæˆé«˜å±‚模型å‘低层模型的转化åQŒè¿™ä¸€˜q‡ç¨‹å¾€å¾€æ˜¯éžòq›_‡¡(non-trivial)的。在Witrixòq›_°ä¸­é€šè¿‡ä»£ç ç”Ÿæˆæ¥æ”¯æŒé¢†åŸŸæŠ½è±¡ï¼Œå¯ä»¥ç”¨éžå¸æ€½Žçš„æˆæœ¬è·¨­‘Šç»“构障¼„,ž®†è‡ªå®šä¹‰çš„领域模型嵌入到现有的技术体¾pÖM¸­ã€‚这其中我们的主è¦å·¥ä½œæ˜¯è§£å†³äº†ç”Ÿæˆä»£ç ä¸Žæ‰‹å·¥ä¹¦å†™ä»£ç ä¹‹é—´çš„æœ‰æ•ˆé𔼛ÕdŠåЍæ€èžåˆé—®é¢˜ï¼Œ¼‹®ä¿ä»£ç ç”Ÿæˆå¯ä»¥åå¤çš„以增é‡çš„æ–¹å¼è¿›è¡Œï¼ŒåŒæ—¶æ”¯æŒæœ€¾l†ç²’度处对生æˆçš„代砘q›è¡Œå®šåˆ¶è°ƒæ•´ã€?br />
   举一个简å•的例å­åQŒå‡è®„¡Ž°åœ¨éœ€è¦å¼€å‘一个三步审批的‹¹ç¨‹åQŒæ¯ä¸€æ­¥çš„æ“ä½œäººå¯ä»¥å½•å…¥æ„è§ï¼Œå¯ä»¥é€‰æ‹©é€šè¿‡æˆ–者回退åQŒå¯ä»¥é€‰æ‹©ä¸‹ä¸€æ­¥æ“作的具体æ“作人,¾pÈ»Ÿè‡ªåŠ¨è®°å½•æ“作旉™—´åQŒæ¯ä¸ªæ“作ähå¯ä»¥æŸ¥çœ‹è‡ªå·±çš„æ“ä½œåŽ†å²ç­‰ã€‚虽然在现有技术体¾pÖM¸­å®žçް˜q™ä¸€åŠŸèƒ½éœ€è¦ä¸ž®‘代ç ï¼Œä½†æ˜¯åœ¨ä¸šåС层é¢ä¸Šæè¿°˜q™ä¸€åŠŸèƒ½òq¶ä¸éœ€è¦å¾ˆå¤šæ–‡å­—ï¼Œå®žé™…éœ€è¦æä¾›çš„ä¿¡æ¯é‡å¾ˆž®ã€‚显ç„Óž¼Œå»ºç«‹é¢†åŸŸæ¨¡åž‹æ˜¯æ¯”较适åˆçš„åšæ³•,å¯ä»¥å®šä¹‰ä¸€¿UDSL(Domain Specific Language)æ¥æ˜q°è¿™ä¸€æ¨¡åž‹ã€?br />
   <flow_cp:SeqFlow>
     
<step id="draft" userField="draferId" dateField="draftTime" waitStatus="drafted" />
     
<step id="check" userField="checkerId" dateField="checkTime" opinionField="checkOpinion"
                   waitStatus
="sent" />
     
<step id="approve" userField="approverId" dateField="approveTime"
                opinionField
="approveOpinion" waitStatus="checked" passStatus="approved" />  
   
</flow_cp:SeqFlow>

   以上功能涉åŠåˆ°å¤šä¸ªæ“作场景,实现的时候需è¦è¡¥å……大é‡å…·ä½“ä¿¡æ¯ï¼Œå…¶ä¸­å¾ˆå¤§ä¸€éƒ¨åˆ†ä¿¡æ¯æ¥è‡ªäºŽèƒŒæ™¯çŸ¥è¯†ï¼Œä¾‹å¦‚昄¡¤ºæ ·å¼åQŒç•Œé¢å¸ƒå±€åQŒå‰åŽå°é€šä¿¡æ–¹å¼½{‰ã€‚以上模型å¯ä»¥è¿›ä¸€æ­¥æŠ½è±¡äؓ如下标签
   <flow_cp:StepFlow3/>

  在ä¸åŒåº”用中å¤ç”¨ä»¥ä¸Š‹¹ç¨‹é€»è¾‘的时候å¯èƒ½éœ€è¦å±€éƒ¨ä¿®æ­£ï¼Œä¾‹å¦‚
   <flow_cp:StepFlow3>
      
<step id="check" userField="checker" />
   
</flow_cp:StepFlow3>

   æ›´åŠ å¤æ‚的情形是DSL本èínæä¾›çš„æŠ½è±¡æ— æ³•满­‘›_…¨éƒ¨éœ€æ±‚,而需è¦åœ¨å±€éƒ¨è¡¥å……更多模型之外的信æ¯åQŒä¾‹å¦‚ç‰©å“æŽ¥æ”¶å•审批通过åŽè‡ªåŠ¨å¯¼å…¥åº“å­˜ç­‰ã€?br />  
   在Witrix中,代ç ç”Ÿæˆä¸æ˜¯ç›´æŽ¥äº§ç”Ÿæœ€¾lˆçš„输出åQŒè€Œæ˜¯åœ¨ç¼–译期生æˆåŸºç¡€æ¨¡åž‹åQŒå®ƒä¸Žè¡¥å……æ˜q°é€šè¿‡extends½Ž—å­˜q›è¡Œèžåˆ˜q算之åŽäº§ç”Ÿæœ€¾lˆè¾“å‡? ˜q™ç§èžåˆå¯ä»¥å®žçŽ°åŸºç¡€åŠŸèƒ½çš„æ–°å¢žï¼Œæ›´æ”¹æˆ–è€…åˆ é™¤ã€‚å…¸åž‹çš„è°ƒç”¨å½¢å¼ä¸?br />

  
<biz-flow>
       
<extends>
         
<flow_cp:StepFlow3>
           
<step id="check" userField="checker" />
          
</flow_cp:StepFlow3>
       
</extends>
       
       
<action id="pass_approve">
         .
       
</action>
   
</biz-flow>

˜q™é‡Œçš„æ“ä½œè¿‡½E‹å¯ä»¥çœ‹ä½œæ˜¯BizFlow extends SeqFlow<FlowConfig extends StepFlow3Config>åQŒä¸Žæ³›åž‹æŠ€æœ¯éžå¸¸ç±»ä¼û|¼Œåªæ˜¯éœ€è¦æ›´å¼ºçš„局部结构控制能力ã€?br />     按照¾U§åˆ—ç†è®ºhttp://canonical.javaeye.com/blog/33824 åQŒæˆ‘们å¯ä»¥å®šä¹‰ä¸€ä¸ªDSLçš„çñ”列,整个抽象˜q‡ç¨‹ä¸?br />
     Context0 + DSL1 + EXT0 = DSL0
     Context1 + DSL2 + EXT1 = DSL1
       

    在目å‰ä¸€äº›é€šç”¨è¯­è¨€ä¸­ï¼Œä¹Ÿæœ‰ä¸€äº›æ‰€è°“内嵌DSL的方案,å¯ä»¥æä¾›æ¯”较½Ž€‹z的业务æè¿°ã€‚但是仅仅å¾ç«‹DSLæè¿°æ˜¯ä¸å……分的,从çñ”列ç†è®ºçš„观点看,我们必须æä¾›ä¸€¿UDSL的补充手ŒDµï¼Œèƒ½å¤Ÿåœ¨ç»†èŠ‚å¤„è¡¥å……DSL模型之外的信æ¯ï¼Œå®žçŽ°ä¸¤è€…çš„è‡ªç„¶èžåˆã€‚åŒæ—¶æˆ‘们应该å¯ä»¥åœ¨ä¸åŒçš„æŠ½è±¡å±‚é¢ä¸Šç‹¬ç«‹çš„进行æ“作,例如åœ?DSL1å’ŒDSL2的层é¢ä¸Šéƒ½å¯ä»¥é€šè¿‡¾cÖM¼¼¾l§æ‰¿çš„æ“ä½œå®žçŽ°å±€éƒ¨è°ƒæ•ß_¼Œ˜q™åŒæ—¶ä¹ŸåŒ…括在ä¸åŒçš„æŠ½è±¡å±‚é¢ä¸Šéƒ½èƒ½å¯¹æ¨¡åž‹˜q›è¡Œåˆæ³•性校验ã€?br />    


]]>
AOP on XML Taghttp://www.aygfsteel.com/canonical/archive/2008/07/07/212933.htmlcanonicalcanonicalSun, 06 Jul 2008 16:12:00 GMThttp://www.aygfsteel.com/canonical/archive/2008/07/07/212933.htmlhttp://www.aygfsteel.com/canonical/comments/212933.htmlhttp://www.aygfsteel.com/canonical/archive/2008/07/07/212933.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/212933.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/212933.htmlhttp://canonical.javaeye.com/blog/34941 AOP使我们å¯ä»¥é€šè¿‡éžäçR入性的方å¼åЍæ€ä¿®æ”?#8220;ä»ÀL„”å·²ç»æž„å¾å¥½çš„½E‹åºåQŒè€Œä¸éœ€è¦äº‹å‰æœ‰å¤§é‡çš„设计准备。原则上è¯?˜q™ç§æŠ€æœ¯æ€æƒ³æ˜¯å¯ä»¥åœ¨ä»ÖM½•½E‹åºè¯­è¨€åŸºç¡€ä¸Šè¿›è¡Œè¡¨è¾„¡š„åQŒåÆˆä¸æ˜¯åªæœ‰java, C#˜q™æ ·çš„é¢å‘对象语­a€æ‰å…许AOPæ“作. Witrixòq›_°ä¸­æ‰€åº”用的部分技术与AOP有些¾cÖM¼¼åQŒåªæ˜¯å¤§é‡çš„¾l“构调整表现为xml生æˆå’Œxmlå˜æ¢åQŒåœ¨å…·ä½“çš„ä‹É用方å¼ä¸Šä¹Ÿæœ‰ä¸€äº›å¾®å¦™çš„差异ã€?a >http://canonical.javaeye.com/blog/126467

  相对于通用½E‹åºè¯­è¨€åQŒxml语言其实是AOP技术的一个更加åˆé€‚的形å¼è½½ä½“ã€?br /> 1. xmlæ ¼å¼ç‰ÒŽ(gu¨©)®Šçš„规范性确ä¿äº†åœ¨æœ€¾l†çš„逻辑¾_’度上,½E‹åº¾l“构也是å¯è¯†åˆ«çš„åQŒå¯æ“纵的(在这一点上éžå¸¸¾cÖM¼¼äºŽå‡½æ•°å¼è¯­è¨€åQ‰ã€‚而所有的命ä×oå¼è¯­­a€(imperative language)中,函数内部的结构都是很éšùN‡‡ç”¨ç»Ÿä¸€æ–¹å¼˜q›è¡Œæè¿°å’Œå®šä½çš„ã€?
   <ns1:loop>
     
<rpt:Row/>
   
</ns1:loop>

2. xmlèŠ‚ç‚¹çš„åæ ‡å¯ä»¥é‡‡ç”¨xpath或者css选择½W¦ç­‰é€šç”¨æ–¹å¼˜q›è¡Œæè¿°åQŒè€Œä¸€èˆ¬ç¨‹åºç»“构无法达到xml格弘q™æ ·çš„å‡ä¸€æ€§ï¼Œå…¶ä¸­çš„åæ ‡å®šä½æ–¹å¼è¦å¤æ‚得多ã€?br /> 3. xml节点上å¯ä»¥å¢žåŠ ä“Qæ„属性,ä¸åŒçš„属性å¯ä»¥å±žäºŽä¸åŒçš„命å½Iºé—´(namespace)åQŒè¿™äº›å±žæ€§å¯ä»¥è¾…助AOPçš„å®šä½æœºåˆ¶ã€‚而一般程åºè¯­­a€ä¸­å¦‚果没有Annotation机制, 则定ä½åªèƒ½ä¾èµ–于函数åå’Œ¾cÕdåQˆå‡½æ•°å‚æ•°åªæœ‰ç±»åž‹æ²¡æœ‰å¿UŽÍ¼‰åQŒè€Œç±»å和函数åéšæ—¶å¯èƒ½å› ä¸ÞZ¸šåŠ¡å˜åŒ–而调æ•ß_¼ˆä¸æ˜¯ä¸“äØ“å®šä½è€Œå­˜åœ¨ï¼‰, 由此构å¾çš„切ç‚ÒŽ(gu¨©)˜q°ç¬¦æ˜¯ä¸½E›_®šçš„ã€?br />  
<ui:PageTable pager="${pager}" cache:timeout="1000" />
4. xmlèŠ‚ç‚¹çš„å¢žåˆ æ”¹æŸ¥æ˜¾ç„¶è¦æ¯”字节ç ç”ŸæˆæŠ€æœ¯è¦½Ž€å•和直观得多ã€?br />    

   AOP技术难以找到应用的一个é‡è¦åŽŸå› åœ¨äºŽå¾ˆå¤šäh机械å¼çš„ž®†å®ƒå®šä½ä¸ÞZ¸€¿Uæ¨ªåˆ‡æŠ€æœ¯ï¼Œè®¤äØ“å®ƒçš„ä»·å€¼å®Œå…¨åœ¨äºŽæŸä¸ªç¡®å®šçš„切é¢å¯ä»¥æ’入到多个ä¸åŒçš„切点åQŒå®žçŽ°ç³»¾lŸçš„æ¨ªå‘分解。而在实际应用中,业务层é¢ä¸Šå¾ˆž®‘å…·æœ‰å¯æŠ½è±¡çš„å›ºå®šçš„å…±åŒæ€§ï¼Œæˆ‘们所˜q«åˆ‡éœ€è¦çš„一般是对已有程åºç»“æž„è¿›è¡ŒåŠ¨æ€æ‰©å±•的一¿U能力。横切是AOP的一¿U特ŒDŠçš„应用åQŒä½†ä¸æ˜¯å®ƒçš„全部。相对于¾l§æ‰¿(inheritance)½{‰ä¾èµ–于概念诠释的结构扩展机åˆÓž¼ŒAOP所代表正是对程åºç»“构空间进行ä“Qæ„æ“¾U늚„一¿U能力。AOPå¯ä»¥ä¸ºåŸº¼‹€¾l“构增加功能åQŒæ”¹å˜åŽŸæœ‰åŠŸèƒ½å®žçŽŽÍ¼Œä¹Ÿå¯ä»¥å–消原有功能实玎ͼŒå®ƒä¸éœ€è¦æŠŠæ‰€æœ‰çš„æ‰©å±•逻辑按照æ ?w¨¨i)åÅž¾l“æž„˜q›è¡Œ¾l„织åQŒä¸è¦æ±‚在基¼‹€¾l“æž„ä¸­äØ“æ‰©å±•¾~–写ç‰ÒŽ(gu¨©)®Šçš„代ç ã€‚è¿™¿U自ç”Þqš„¾l“构扩展能力在Witrixòq›_°ä¸­è¢«å‘展ä¸?#8220;实现业务代ç ä¸Žåã^å°åŸº¼‹€æž¶æž„之间的动æ€èžå?#8221;ã€?br />
   在Witrixòq›_°çš„实际应用中åQŒAOP的切点匹é…èƒ½åŠ›åÆˆä¸æ˜¯å分é‡è¦ã€‚一般情况下我们主è¦é€šè¿‡æ•´ä½“¾l“构规划æ¥ç¡®ä¿æŽ§åˆ¶ç‚¹æ„义明确且相寚w›†ä¸­ï¼Œå› æ­¤ä¸éœ€è¦é¢å¤–通过切点匚w…˜q›è¡Œä¸šåŠ¡åŠŸèƒ½çš„å†¾l„织åQŒä¸éœ€è¦å†‹Æ¡ä»Žæ‚äØ•çš„ç¨‹åºé€»è¾‘䏭釿–°å‘现特ŒDŠçš„æŽ§åˆ¶ç‚V€‚例如在Witrixòq›_°çš„Jsplet框架中所有åŽåîCº‹ä»¶å“应都通过objectNameå’ŒobjectEvent傿•°è§¦å‘åQŒåœ¨è§¦å‘åŽå°äº‹äšgå“应函数之å‰éƒ½ä¼šè°ƒç”¨bizflowæ–‡äšg中的beforeActionŒDüc€?br />    在bizflowæ–‡äšg中,aopæ“作是明¼‹®æŒ‡å®šåˆ°å…·ä½“函数的,使用模糊匚w…在一般情况下åªä¼šä½‰K—®é¢˜å˜å¾—ä¸å¿…è¦çš„夿‚化。例如扩展actQuery函数
   <action id="aop-Query-default">
    
<source>
       é€šè¿‡è‡ªå®šä¹‰æ ‡½{¾æŠ½è±¡å‡ºå¤šä¸ªAction之间的共用代ç ?br />       
<app:DoWorkA/>
    
</source>
  
</action>

   
   在Witrixòq›_°ä¸­ç»“æž„ç»„è£…ä¸»è¦æ˜¯é€šè¿‡è‡ªå®šä¹‰æ ‡½{‘Öº“å’Œextends½Ž—å­æ¥å®žçŽŽÍ¼Œå®ƒä»¬éƒ½ä¾èµ–于xmlæ ¼å¼çš„规范性ã€?br /> 1. 通过在custom目录下实现åŒå的自定义标½{¾ï¼Œå›_¯è¦†ç›–Witrixòq›_°æ‰€æä¾›çš„ç¼ºçœæ ‡½{‘Ö®žçŽŽÍ¼Œ˜q™é‡Œæ‰€ä¾èµ–çš„åÆˆä¸æ˜¯å¤æ‚的匹é…过½E‹ï¼Œè€Œæ˜¯è‡ªç„¶ç›´è§‚的映ž®„过½E‹ã€?a >http://canonical.javaeye.com/blog/196826
2. 所有的xmlé…置文äšg支æŒextendsæ“作åQŒå®ƒå…许定制两个å…ähœ‰ä¸šåŠ¡å«ä¹‰çš„xml节点之间的结构èžåˆè§„则。例å¦?lt;biz-flow extends="docflow">ã€?br />
   实际使用ä¸? AOP技术的一个应用难点在于状æ€ç©ºé—´çš„½Ž¡ç†é—®é¢˜ã€‚一般interceptor中所能访问的å˜é‡å±€é™äØ“this指针所æºå¸¦çš„æˆå‘˜å˜é‡ï¼Œä»¥åŠå‡½æ•°è°ƒç”¨æ—¶ä¼ å…¥çš„è°ƒç”¨å‚æ•°ã€‚interceptor很难在状æ€ç©ºé—´ä¸­åˆ›å¾æ–°çš„å˜é‡åQŒä¹Ÿå¾ˆéš¾è¯Õd–在其他地æ–ÒŽ(gu¨©)‰€äº§ç”Ÿçš„状æ€å˜é‡ã€‚例如对于如下扩å±?A(arg1); B(arg2); C(arg3); =ã€?Ax(arg1); B(arg2); Cx(arg3); å› äØ“åŽŸæœ‰çš„è°ƒç”¨åºåˆ—中没有传递é¢å¤–çš„å‚æ•°åQŒå› æ­¤Aå’ŒC的扩展函æ•îC¹‹é—´å¾ˆéš‘Ö®žçŽ°å…±äº«å†…éƒ¨å˜é‡x。在TPL模æ¿è¯­è¨€ä¸­ï¼Œtpl本èín是无状æ€çš„åQŒçжæ€å˜é‡é€šè¿‡å¤–部çš?thisContext对象¾lŸä¸€½Ž¡ç†ã€‚通过˜q™ç§è¡Œäؓ与状æ€çš„分离åQŒç»“åˆçµ‹zÈš„å˜é‡ä½œç”¨åŸŸæŽ§åˆ¶æœºåˆÓž¼Œå¯ä»¥ä»¥æ¯”较简å•的方å¼å®žçŽ°æ‰©å±•å‡½æ•°ä¹‹é—´çš„ä¿¡æ¯å…±äº«ã€?br />


]]>
ä¸ÖM»Žåˆ†è§£è€Œä¸æ˜¯æ­£äº¤åˆ†è§?/title><link>http://www.aygfsteel.com/canonical/archive/2008/05/26/202801.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 25 May 2008 16:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2008/05/26/202801.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/202801.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2008/05/26/202801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/202801.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/202801.html</trackback:ping><description><![CDATA[    说到分解åQŒå¾ˆå¤šäh心中的æ„è±¡å¤§æ¦‚åªæœ‰æ­£äº¤åˆ†è§£ã€‚正交分解无疑是最é‡è¦çš„一¿Uåˆ†æžæ–¹æ³•,它也是所è°?#8220;分而治ä¹?#8221;æ€æƒ³æœ€å¸¸è§çš„实现策略。但是正交分解一般潜在的å‡å®šæ˜¯åˆ†è§£åŽçš„å­éƒ¨åˆ†æ˜¯å¤§è‡´å‡è¡¡çš„åQŒå®ƒä»¬æ˜¯ç›¸å¯¹å…ähœ‰ç‹¬ç«‹ä»·å€¼çš„åQŒå¯ä»¥å½¼æ­¤è„±¼›È‹¬ç«‹å‘展。这是分解åŽå®žçް¾pÈ»Ÿè§£è€¦çš„é‡è¦åŽŸå› ã€?a >http://canonical.javaeye.com/blog/33885</a> 但是物ç†å­¦ä¸­å¦ä¸€¿Ué‡è¦çš„分æžå­¦æ€æƒ³æ˜¯å¾®æ‰°è®º(Perturbation). é’ˆå¯¹ä¸€ä¸ªå¤æ‚的物ç†çŽ°è±¡åQŒé¦–å…ˆå¾ç«‹ä¸€ä¸ªå…¨å±€çš„规范的模型åQŒç„¶åŽè€ƒè™‘å„ç§å¾®æ‰°æ¡äšg对原有模型的影å“。在ž®æ‰°åŠ¨æƒ…å†µä¸‹åQŒæ¨¡åž‹çš„å˜åŒ–部分往往å¯ä»¥è¢«çº¿æ€§åŒ–åQŒè¢«å±€åŸŸåŒ–åQŒå› è€Œé—®é¢˜å¾—到简化。微扰分æžå¾—到的解ä¾èµ–于全局模型的解而存在,因而这是一¿U主从关¾pÈš„分解方å¼ã€‚但是如果主体模型是我们已ç»ç†ŸçŸ¥çš„物ç†çŽ°è±¡ï¼Œåˆ™æˆ‘ä»¬å…³æ³¨çš„é‡ç‚¹å¯ä»¥å…¨éƒ¨æ”‘Öœ¨æ‰°åŠ¨è§£ä¸ŠåQŒè®¤ä¸ºæ‰€æœ‰ç‰¹å®šçš„物ç†è§„律都体现在扰动解中。如果微扰分æžå¾—到的物ç†å…ƒç´ ­‘›_¤Ÿä¸°å¯ŒåQŒåˆ™å¾®æ‰°æ¨¡åž‹æœ¬èínå¯ä»¥æˆäؓ独立的研½I¶å¯¹è±¡ï¼Œåœ¨å…¶ä¸­æˆ‘ä»¬åŒæ ·å¯ä»¥å‘现柿U普适的¾l“构规律ã€?br />     Witrixòq›_°ä¸­ç³»¾lŸåŒ–的应用主从分解模å¼ï¼Œé€šè¿‡¾cÖM¼¼AOP的技术实çŽîCº†ä¸šåŠ¡æ¨¡åž‹ä¸Žåã^å°æŠ€æœ¯çš„è‡ªç„¶¾l“åˆã€?a >http://canonical.javaeye.com/blog/126467</a> 最˜q‘我们的一个äñ”å“的新版本峞®†åœ¨å…¨å›½èŒƒå›´å†…部¾|ÔŒ¼Œå¦‚何有效的控制众多相˜q‘的二次开å‘ç‰ˆæœ¬ï¼ŒåŒæ—¶¼‹®ä¿ä¸È‰ˆæœ¬çš„快速凾U§ï¼Œæ˜¯åœ¨æž¶æž„层é¢å¿…须解决的问题ã€?a >http://canonical.javaeye.com/blog/73265</a> 在Witrixòq›_°ä¸­ï¼Œå„部¾|²ç‰ˆæœ¬åÆˆä¸æ˜¯ç›´æŽ¥ä¿®æ”¹ä¸È‰ˆæœ¬æºä»£ç å¾—到åQŒè€Œæ˜¯ž®†å·®å¼‚åŒ–ä»£ç æ”‘Öœ¨å•独的目录中˜q›è¡Œ½Ž¡ç†åQŒç”±¾pÈ»Ÿ˜q行òq›_°è´Ÿè´£ž®†å·®å¼‚化定制代ç ä¸Žä¸»ç‰ˆæœ¬ä»£ç ˜q›è¡ŒåЍæ€èžåˆï¼Œå®žçŽ°éƒ¨çÖv版本的客户化。在˜q™ä¸€˜q‡ç¨‹ä¸­ï¼Œ¾pÈ»Ÿæ¨¡åž‹æœ¬èín支æŒé€†å…ƒ¾l“构臛_…³é‡è¦åQŒå¦åˆ™æŸäº›å¤šä½™çš„元素无法通过差异性æ˜q°åŽ»é™¤ï¼Œåˆ™å°†å‡ºçŽ°å±€éƒ¨æ¨¡åž‹å¤±æ•ˆçš„æƒ…å†µã€?br />     Witrixòq›_°å®šä¹‰äº†ç‰¹ŒDŠçš„_custom目录åQŒå®ƒçš„内部目录结构与defaultroot目录相åŒåQŒç³»¾lŸåã^åîC¼˜å…ˆä‹É用该目录下文件所æä¾›çš„åŠŸèƒ½å®žçŽ°ã€‚åŒæ—¶å®šä¹‰äº†¾pÈ»Ÿå‚æ•°global.app_idå’Œglobal.default_app_idåQŒå®ƒä»¬åˆ†åˆ«ç”¨æ¥åŒºåˆ†å½“å‰ç¨‹åºç‰ˆæœ¬ä»¥åŠç¨‹åºä¸»ç‰ˆæœ¬ä»£ç ã€‚例如当global.app_id=beijing,global.default_app_id=main的时候,¾pÈ»Ÿä¸­è£…è½½ui.xml˜q™ä¸ªæ ‡ç­¾åº“æ—¶¾l历如下˜q‡ç¨‹åQ?br /> 1.    è£…è²òq›_°å†…置的标½{‘Öº“åQŒæ–‡ä»¶èµ\径䨓 /_tpl/ui.xml.<br /> 2.    æ ÒŽ(gu¨©)®global.default_app_id讄¡½®åQŒè£…è½?_custom/main/_tpl/ui.xml, 其中定义的标½{‘Ö®žçŽ°å°†è¦†ç›–òq›_°¾~ºçœæä¾›çš„æ ‡½{‘Ö®žçŽ°ã€‚å¯¹äºŽé‚£äº›ä¸éœ€è¦ç‰¹ŒDŠå®šåˆ¶çš„æ ‡ç­¾åQŒç‘ô¾l­ä‹É用åã^å°æä¾›çš„¾~ºçœå®žçްã€?br /> 3.    æ ÒŽ(gu¨©)®global.app_id讄¡½®åQŒè£…è½?_custom/beijing/_tpl/ui.xml, 其中定义的标½{‘Ö®žçŽ°å°†è¦†ç›–äº§å“ä¸È‰ˆæœ¬çš„æ ‡ç­¾å®žçްã€?br /> <br /> 基础òq›_°ä¸­å¯¹äºŽä»£ç åЍæ€èžåˆå®šä¹‰äº†¾_„¡»†çš„èžåˆç­–略,ž®†é€šè¿‡¾~–译技术检查扩展标½{„¡š„接å£ä¸Žç¼ºçœå®žçŽ°çš„æŽ¥å£ç›¸å…¼å®¹ï¼Œç”±æ­¤¼‹®ä¿ä»£ç æ‰©å±•åŽä¸ä¼šç ´å主版本中的已有调用代ç ã€?br />     在基¼‹€òq›_°çš„实çŽîC¸­åQŒå¾ˆå¤šå®žçŽîC»£ç éƒ½æ˜¯ç±»ä¼?br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">          </span><span style="color: #0000ff;"><</span><span style="color: #800000;">df:WhenAllowFinishWf</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br />             </span><span style="color: #0000ff;"><</span><span style="color: #800000;">df:FinishWfButton </span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br />           </span><span style="color: #0000ff;"></</span><span style="color: #800000;">df:WhenAllowFinishWf</span><span style="color: #0000ff;">></span></div> <br /> ˜q™æ ·çš„类似废è¯çš„æ ‡ç­¾è°ƒç”¨ã€‚但是通过˜q™äº›æ ‡ç­¾çš„æ ‡è®ŽÍ¼Œæˆ‘们¼‹®ç«‹äº†ç³»¾lŸçš„逻辑¾l“æž„åQŒæ ‡å®šäº†¾pÈ»Ÿä¸­å¯ä»¥è¢«å®‰å…¨æ›¿æ¢çš„逻辑片断ã€? <img src ="http://www.aygfsteel.com/canonical/aggbug/202801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2008-05-26 00:41 <a href="http://www.aygfsteel.com/canonical/archive/2008/05/26/202801.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>ä¸å®Œå…¨çš„计算http://www.aygfsteel.com/canonical/archive/2008/03/16/186614.htmlcanonicalcanonicalSun, 16 Mar 2008 07:04:00 GMThttp://www.aygfsteel.com/canonical/archive/2008/03/16/186614.htmlhttp://www.aygfsteel.com/canonical/comments/186614.htmlhttp://www.aygfsteel.com/canonical/archive/2008/03/16/186614.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/186614.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/186614.html   o.someFunc()                  o.onEventA();
    sub1.someFunc();      ==>     sub1.onEventA();
    sub2.someFunc();              sub2.onEventB();
如果把对象看作是函数+状æ€çš„集åˆåQŒåˆ™å¯¹è±¡¾l„装的关¾pÕd®žé™…上是函数集åˆä¹‹é—´çš„一¿U组装关¾p…R€‚当具体的事件å‘生的时候,ž®†è§¦å‘对象上¼‹®å®šçš„å“应函敎ͼŒæ­¤æ—¶åœ¨å„个层é¢ä¸Šæ‰€å®žé™…å‘生的计½Ž—æ‰èƒ½è¢«¼‹®å®šä¸‹æ¥ã€?br />




]]>
WebMVC之å‰ä¸?今生http://www.aygfsteel.com/canonical/archive/2008/02/18/180551.htmlcanonicalcanonicalMon, 18 Feb 2008 14:02:00 GMThttp://www.aygfsteel.com/canonical/archive/2008/02/18/180551.htmlhttp://www.aygfsteel.com/canonical/comments/180551.htmlhttp://www.aygfsteel.com/canonical/archive/2008/02/18/180551.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/180551.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/180551.htmlhttp://canonical.javaeye.com/blog/33824

   1. 外部视角åQšåŽŸå§‹çš„servlet规范æä¾›äº†ä¸€ä¸ªç®€å•çš„é¢å‘IO的程åºå“应模型。一‹Æ¡å‰å°è®¿é—®ç”±ä¸€ä¸ªç‰¹å®šçš„servletè´Ÿè´£å“应åQŒå®ƒä»Žrequest中读å–输入æµåQŒåœ¨å…¨å±€sessionä¸­ä¿æŒäÍ(f¨´)时状æ€ï¼Œå‘response中写入输出æµã€‚在此基¼‹€ä¸Šï¼ŒJSPæä¾›çš„æ¨¡æ¿æ¦‚å¿ëŠ¿»è½¬äº†½E‹åºå’Œè¾“出文本之间的相对åœîC½åQŒç®€åŒ–了文本输出˜q‡ç¨‹ã€‚至此,˜q™ç§æ•´ä½“çš„ç¨‹åºæ¨¡åž‹åŸºæœ¬ä¸Šåªæ˜¯è§„范化了外部¾pÈ»Ÿè®‰K—®WebæœåŠ¡å™¨çš„å“应模型åQŒåƈ没有对åŽå°ç¨‹åºçš„å…·ä½“å®žçŽ°åˆ¶å®šæ˜Žç¡®çš„çº¦æŸæ¡ä»¶ã€‚因此在最¾_—野的åŽå°å®žçŽîC¸­åQŒè¯»å–傿•ŽÍ¼Œä¸šåС处ç†åQŒç”Ÿæˆé¡µé¢ç­‰å¤„ç†æ­¥éª¤æ˜¯çº ¾~ åœ¨ä¸€èµïL(f¨¥ng)š„åQŒå¾ˆéš„¡†è§£ï¼Œä¹Ÿå¾ˆéšùN‡ç”¨ã€‚æ¯ä¸€ä¸ªåŽå°é¡µé¢éƒ½æ˜¯ä¸€ä¸ªä¸å¯åˆ†æžçš„æ•´ä½“ã€?br />
<%
   String paramA 
= request.getParameter("paramA");
   ResultSet rsA 
= 
%>
   result 
= <%=rsA.getString(0%>
   String paramB 
= request.getParamter("paramB");
   ResultSet rsB 
= 
<%
   rsB.close();
   rsA.close();
   conn.close();
%>


2. 自å‘分离åQšåœ¨å¤æ‚的程åºå®žè·µä¸­åQŒæˆ‘们会自å‘的对业务处ç†ä»£ç å’Œç•Œé¢ä»£ç è¿›è¡Œä¸€å®šç¨‹åº¦çš„分离。因为我们å¯ä»¥ç›´è§‚的感å—到这两ç§ä»£ç çš„ç¨³å®šæ€§åÆˆä¸åŒ¹é…。例如ä¸åŒä¸šåС处ç†è¿‡½E‹äñ”生的¾l“果都å¯ä»¥ç”¨ä¸€ä¸ªhtml表格æ¥å±•玎ͼŒè€ŒåŒä¸€ä¸ªä¸šåС处ç†è¿‡½E‹äñ”生的¾l“æžœ™åµé¢å¯èƒ½¾l常å‘生å˜åŒ–。一般我们們֑于将业务代ç å†™åœ¨™åµé¢ä¸Šæ–¹åQŒè€Œç•Œé¢ä»£ç å†™åœ¨é¡µé¢ä¸‹æ–¹ï¼Œòq¶ä‹É用一些原始的分解机制åQŒä¾‹å¦‚include指ä×o。这¿U分¼›ÀL˜¯éšæ„的,¾~ÞZ¹å½¢å¼è¾¹ç•Œçš„。例如我们无法表达被包å«çš„页é¢éœ€è¦å“ªäº›å‚敎ͼŒä¹Ÿéš¾ä»¥é¿å…全局å˜é‡å冲½Hã€‚éœ€è¦æ³¨æ„的是,分层的一般æ„义在于å„个层é¢å¯ä»¥ç‹¬ç«‹å‘展,它的éšå«å‡å®šæ˜¯å„层é¢ä¹‹é—´çš„交互是规范化的åQŒåªä½¿ç”¨¼‹®å®šçš„æ•°æ®ç»“构,按照¼‹®å®šçš„æ–¹å¼è¿›è¡Œäº¤äº’。例如业务层和界é¢å±‚通过标准的List/Map½{‰æ•°æ®ç»“æž„äº¤äº’ï¼Œè€Œä¸æ˜¯ä‹É用具有无é™å¤š¿Uæ ·å¼çš„ç‰ÒŽ(gu¨©)®Šçš„æ•°æ®ç»“æž„ã€?在弱¾cÕdž‹è¯­è¨€çŽ¯å¢ƒä¸­ï¼Œå®žä½“å¯¹è±¡çš„ç»“æž„å’ŒMap是等ä»ïL(f¨¥ng)š„).
<%
   List header 
= 
   List dataList 
= 
%>
<%@ include file="/show_table.jsp" %>


   3. 规范分离åQšJSP所æä¾›çš„useBeanå’Œtag机制åQŒå³æ‰€è°“çš„Model1模型åQŒæ˜¯å¯¹ç¨‹åºç»“构分¼›Èš„一¿U规范化。业务代ç å°è£…在java¾cÖM¸­åQŒä¸€èˆ¬ä¸šåС函æ•îC¸Žweb环境无关åQŒå³ä¸ä‹É用requestå’Œresponse对象, å…许å•å…ƒ‹¹‹è¯•。tag机制å¯ä»¥çœ‹ä½œæ˜¯å¯¹include指ä×o的增强,是一¿U代ç é‡ç”¨æœºåˆ¶ã€‚tldæè¿°æ˜Žç¡®äº†è°ƒç”¨tagæ—¶çš„¾U¦æŸå…³ç³»ã€‚调用tagæ—‰™œ€è¦å°±åœ°æŒ‡å®šè°ƒç”¨å‚敎ͼŒè€Œinclude™åµé¢æ‰€ä¾èµ–çš„å‚æ•°å¯èƒ½æ˜¯åœ¨æ­¤å‰ä“Qæ„地æ–ÒŽ(gu¨©)Œ‡å®šçš„åQŒæ˜¯ä¸ŽåŠŸèƒ½å®žçŽ°åˆ†¼›Èš„。此外tagæ‰€ä½¿ç”¨çš„å‚æ•°å是局部对象上的属性ååQŒä»Žè€Œé¿å…了对全局å˜é‡çš„ä¾èµ–ã€‚å¾ˆé—æ†¾çš„æ˜¯åQŒjsp tag所ž®è£…çš„ä»ç„¶æ˜¯åŽŸå§‹çš„IO模型åQŒå¯¹½E‹åº¾l“æž„¾~ÞZ¹¾_„¡»†çš„定义,在概念层é¢ä¸Šåªæ˜¯å¯ÒŽ(gu¨©)–‡æœ¬ç‰‡ŒD늚„å†åŠ å·¥ï¼Œéš¾ä»¥æ”¯æ’‘å¤æ‚的控件结构。早期jsp tag无法利用jspæ¨¡æ¿æœ¬èínæ¥æž„造,无法构æˆä¸€ä¸ªå±‚层递进的概忉|Š½è±¡æœºåˆÓž¼Œæ›´æ˜¯è®©è¿™¿Uå­±å¼Þqš„é‡ç”¨æ¨¡åž‹é›ªä¸ŠåŠ éœœã€‚åœ¨å…¶ä½å´æ— èƒ½è°‹å…¶æ”¿åQŒè¿™ç›´æŽ¥é€ æˆäº†æ•´ä¸ªj2eeå‰å°ç•Œé¢æŠ½è±¡å±‚的概念¾~ºå¤±åQŒä»¥è‡´å¾ˆå¤šähè®¤äØ“ä¸€¿Uå‰å°æ¨¡æ‰K‡ç”¨æœºåˆ¶æ˜¯æ— ç”¨çš„。在Witrixòq›_°ä¸­æ‰€å®šä¹‰çš„tpl模æ¿è¯­è¨€åQŒå……分利用了xml的结构特点,¾l“刾~–è¯‘æœŸå˜æ¢æŠ€æœ¯ï¼ŒæˆäØ“Witrixòq›_°ä¸­è¿›è¡Œç»“构抽象的基本手段。实际上åQŒxml能够有效表达的语义比一般äh所惌™±¡çš„è¦å¤šå¾—多ã€?br />
 <jsp:useBean id="myBiz" class="" />
  
<% List dataList = myBiz.process(paramA) %>
  
<ui:Table data="<%= dataList %>" />

  
  4. 框架分离åQšåœ¨Model1模型中,™åµé¢ä¸­å­˜åœ¨ç€å¤§é‡çš„粘¾l“性代ç ï¼Œå®ƒä»¬è´Ÿè´£è§£æžå‰å°å‚æ•°åQŒè¿›è¡Œç±»åž‹è{æ¢å’Œæ•°æ®æ ¡éªŒåQŒå®šä½ç‰¹å®šçš„业务处熾c»ï¼Œè®„¡½®˜q”回¾l“æžœåQŒæŽ§åˆ‰™¡µé¢èŸ©è½¬ç­‰ã€‚一¿U自然的æƒÏx³•æ˜¯å®šä¹‰ä¸€ä¸ªå…¨å±€çš„ç¨‹åºæ¡†æžÓž¼Œå®ƒæ ¹æ®é›†ä¸­çš„é…置文äšgå®Œæˆæ‰€æœ‰çš„¾_˜ç»“性æ“作。这也就是所谓é¢å‘actionçš„WebMVC模型。这一模型实现了æœåŠ¡å™¨ç«¯ä¸šåŠ¡å±‚å’Œç•Œé¢å±‚在实çŽîC¸Šçš„分¼›»ï¼Œä½†æ˜¯å¯¹äºŽå¤–部讉K—®è€…而言åQŒå®ƒæ‰€æš´éœ²çš„ä»ç„¶æ˜¯åŽŸå§‹çš„è‡ªåŠ¨æœºæ¨¡åž‹åQšæ•´ä¸ªç½‘ç«™æ˜¯ä¸€ä¸ªåºžå¤§çš„è‡ªåŠ¨æœºï¼Œæ¯æ¬¡è®‰K—®éƒ½è§¦å‘一个actionåQŒåœ¨action中å¯èƒ½æ›´æ”¹è‡ªåŠ¨æœºçš„çŠ¶æ€ï¼ˆä½œäؓ全局状æ€å®¹å™¨çš„session对象或者数æ®åº“åQ‰ã€‚strutsä½œäØ“é¢å‘action框架的先驱,它也很自然的æˆäؓ了先烈。struts中所引入的FormBean, 链接½Ž¡ç†½{‰æ¦‚念已¾låœ¨å®žè·µä¸­è¢«è¯æ˜Žæ˜¯æ— ç›Šçš„。一些新兴的框架开始回归到通用的Map¾l“æž„åQŒç›´æŽ¥æŒ‡å®šèŸ©è½¬é¡µé¢ï¼Œæˆ–者利用CoC(Convention Over Configuration)¾~ºçœæ˜ å°„.
public class RegisterAction extends Action {
    
public ActionForward perform (ActionMapping mapping,
                                  ActionForm form,
                                  HttpServletRequest req,
                                  HttpServletResponse res)
{
    RegisterForm rf 
= (RegisterForm) form;
    
    
return mapping.findForward("success");
}

  
5. 横å‘延展åQšåˆ†å±‚之åŽå¿…然导å‘å„个层é¢çš„独立å‘展åQŒæˆ‘们的视野自然也会扩大到å•个页é¢ä¹‹å¤–,看到一个层é¢ä¸Šæ›´å¤šå…ƒç´ ä¹‹é—´çš„相互作用.在é¢å‘对象语­a€å¤§è¡Œå…‰™“的今天,¾l§æ‰¿(inheritance)无疑是多æ•îCh首先惛_ˆ°çš„程åºç»“构组¾l‡æ‰‹ŒDµï¼ŽåŽå°actionå¯ä»¥å¾ˆè‡ªç„¶çš„利用java语言自èínçš„ç‘ô承机åˆÓž¼Œé…置文äšg中也å¯ä»¥å®šä¹‰¾cÖM¼¼çš„extends或者parent属性.但是对于å‰å°™åµé¢ä¸€èˆ¬å´å¾ˆå°‘有适用的抽象手ŒDµï¼ŒäºŽæ˜¯ä¾¿æœ‰äºø™‡´åŠ›äºŽå‰å°™åµé¢çš„对象语­a€åŒ–:首先ž®†å‰å°é¡µé¢é‡‡ç”¨æŸ¿U对象语­a€è¡¨è¾¾åQŒç„¶åŽå†åˆ©ç”¨å¯¹è±¡è¯­è¨€å†…置的结构抽象机åˆÓž¼Žæ”‘Ö¼ƒç•Œé¢çš„å¯æè¿°æ€§ï¼Œž®†å…¶è½¬åŒ–为柿Uæ´»åŠ¨å¯¹è±¡ï¼Œåœ¨æˆ‘çœ‹æ¥æ˜¯ä¸€¿U错误的方å‘åQŽè€ŒJSF(JavaServerFace)规范å´ä¼¼ä¹Žæƒ³åœ¨è¿™ä¸ªæ–¹å‘上­‘Šèµ°­‘Šè¿œåQŽJSF早期设计中存在的一个严é‡é—®é¢˜æ˜¯å»¶ç®‹äº†é¢å‘对象语­a€ä¸­çš„状æ€ä¸Žè¡ŒäØ“¾l‘定的组¾l‡æ–¹å¼ï¼Ž˜q™é€ æˆæ¯æ¬¡è®‰K—®åŽå°™åµé¢éƒ½è¦é‡å¾æ•´ä¸ªComponent Tree, 无法实现™åµé¢¾l“构的有效缓存.而W(xu¨¦)itrixòq›_°ä¸­çš„tpl模æ¿è¯­è¨€¾~–译出的¾l“构是无状æ€çš„åQŒå¯ä»¥åœ¨å¤šä¸ªç”¨æˆ·ä¹‹é—´é‡ç”¨åQ?br />
  6. 相关èšåˆåQšå¯¹è±¡åŒ–首先æ„味ç€ç›¸å…³æ€§çš„局域化åQŒå®ƒòq¶ä¸½{‰ä­h(hu¨¢n)于对象语­a€åŒ? 当é¢å¯¹ä¸€ä¸ªå¤§çš„集åˆçš„æ—¶å€™ï¼Œæœ€è‡ªç„¶çš„ç®¡ç†æ‰‹ŒDµä¾¿æ˜¯åˆ†¾l„èšåˆï¼šç´§å¯†ç›¸å…³çš„元素被分é…到åŒä¸€åˆ†ç»„åQŒç›¸å…Ïx€§è¢«å±€åŸŸåŒ–到组内.例如åQŒé’ˆå¯ÒŽ(gu¨©)Ÿä¸ªä¸šåŠ¡å¯¹è±¡çš„å¢žåˆ æ”ÒŽ(gu¨©)Ÿ¥æ“作å¯ä»¥çœ‹ä½œå±žäºŽåŒä¸€åˆ†ç»„. struts中的一个最ä½?j¨©ng)_®žè·‰|˜¯ä½¿ç”¨DispatchAction, 它根æ®ä¸€ä¸ªé¢å¤–çš„å‚æ•°ž®†è°ƒç”¨è¯·æ±‚映ž®„到Action对象的å­å‡½æ•°ä¸Šï¼Žä¾‹å¦‚/book.do?dispatchMethod=add. 从外部看æ¥ï¼Œ˜q™ç§è®‰K—®æ–¹å¼å·²ç»­‘…越了原始的servletå“应模型åQŒçœ‹èµäh¥é¢‡æœ‰ä¸€äº›é¢å‘对象的样å­åQŒä½†ä¹Ÿä»…ä»…å±€é™äºŽæ ·å­è€Œå·²åQŽDispatchAction在strutsæ¡†æž¶ä¸­æ— ç–‘åªæ˜¯ä¸€¿Uæƒå®œä¹‹è®¡ï¼Œå®ƒä¸Žform, navigation½{‰éƒ½æ˜¯ä¸å调的,而且多个å­å‡½æ•îC¹‹é—´åƈä¸å…±äº«ä“Q何状æ€å˜é‡ï¼ˆå³ä¸å‘生内部的相互作用)åQŒåÆˆä¸æ˜¯çœŸæ­£å¯¹è±¡åŒ–çš„¾l„织方å¼åQŽæŒ‰ç…§ç»“构主义的观点åQŒæ•´ä½“大于部分之和.当一¾l„函数èšé›†åœ¨ä¸€èµïL(f¨¥ng)š„æ—¶å€™ï¼Œå®ƒä»¬æ‰€å‚¬ç”Ÿçš„一个概念便是整体的表å¾åQšthis指针åQŽWitrixòq›_°ä¸­çš„Jsplet框架是一个é¢å‘对象的Web框架åQŒå…¶ä¸­åŒå±žäºŽä¸€ä¸ªå¯¹è±¡çš„多个Actionå“应函数之间å¯ä»¥å…׃ín局部的状æ€å˜é‡ï¼ˆthisObjåQ‰ï¼Œè€Œä¸ä»…仅是通过全局的session对象æ¥å‘生无差别的全局兌™”åQ?a >http://canonical.javaeye.com/blog/33873 éœ€è¦æ³¨æ„的是,thisObjä¸ä»…ä»…èšé›†äº†åŽå°çš„业务æ“ä½œï¼Œå®ƒåŒæ—¶å®šä¹‰äº†å‰åŽåîC¹‹é—´çš„一个标准状æ€å…±äº«æœºåˆÓž¼Œå®žçŽ°äº†å‰åŽå°ä¹‹é—´çš„èšåˆï¼Žè€Œå‰å°çš„add.jsp, view.jsp½{‰é¡µé¢ä¹Ÿå› æ­¤é€šè¿‡thisObj产生了状æ€å…³è”,构戙åµé¢åˆ†ç»„åQŽäؓ了更加明¼‹®çš„æ”¯æŒå‰å°™åµé¢åˆ†ç»„的概念,W(xu¨¦)itrixòq›_°æä¾›äº†å…¶ä»–ä¸€äº›è¾…åŠ©å…³è”æ‰‹ŒDµï¼Žä¾‹å¦‚标准™åµé¢ä¸­çš„æŒ‰é’®æ“作都集中在std.js中的stdPage对象上,因此åªéœ€è¦ä¸€æ¡è¯­å¥stdPage.mixin(DocflowOps);å›_¯ä¸ºdocflow定制多个™åµé¢ä¸Šçš„众多相关按钮æ“作åQŽæ­¤å¤–Witrixòq›_°ä¸­å®šä¹‰äº†æ ‡å‡†çš„urlæž„å¾æ‰‹æ®µåQŒå®ƒ¼‹®ä¿åœ¨å¤šä¸ªé¡µé¢é—´è·Œ™{的时候,所有以$字符为剾~€çš„傿•°å°†è¢«è‡ªåЍæºå¸¦ï¼Žä»Žæ¦‚念上说这是一¿Uç±»ä¼égºŽcookieåQŒä½†å´æ›´åŠ çµ‹z»ï¼Œæ›´åŠ é¢å‘应用的状æ€ä¿æŒæœºåˆÓž¼Ž

  class DaoWebAction extends WebContext{
     IEntityDao entityDao;
     String metaName;

     
public Object actQuery(){
       
       thisObj.put(
"pager",pager);
       
return success();
     }

     
public Object actExport(){
       Pager pager 
= (Pager)thisObj.get("pager");
       
       
return success();
     }
    }


  7. æè¿°åˆ†ç¦»åQšå½“明确定义了Action所èšé›†è€Œæˆçš„对象结构之åŽï¼Œæˆ‘们冿¬¡å›žåˆ°é—®é¢˜çš„原点:如何½Ž€åŒ–程åºåŸºå…ƒï¼ˆå¯¹è±¡åQ‰çš„æž„å¾åQŸç‘ô承始¾lˆæ˜¯ä¸€¿Uå¯è¡Œçš„æ‰‹æ®µåQŒä½†æ˜¯å®ƒè¦æ±‚ä¿¡æ¯çš„组¾l‡ç»“构是递进å¼çš„åQŒè€Œå¾ˆå¤šæ—¶å€™æˆ‘们实际希望的¾l„织方å¼åªæ˜¯½Ž€å•的加和。通过明确定义的meta(元数æ?åQŒä»Žå¯¹è±¡ä¸­åˆ†¼›Õd‡ºéƒ¨åˆ†æè¿°ä¿¡æ¯åQŒåœ¨å®žè·µä¸­è¢«è¯æ˜Žæ˜¯ä¸€¿Uæœ‰æ•ˆçš„æ‰‹æ®µã€‚åŒæ ïL(f¨¥ng)š„åŽå°äº‹äšgå“应对象(ActionObject)åQŒåŒæ ïL(f¨¥ng)š„å‰å°ç•Œé¢æ˜„¡¤ºä»£ç (PageGroup)åQŒé…åˆä¸åŒçš„MetaåQŒå¯ä»¥äñ”生完全ä¸åŒçš„è¡ŒäØ“¾l“æžœ, 表达ä¸åŒçš„业务需求ã€?a >http://canonical.javaeye.com/blog/114066 从概念上è¯ß_¼Œ˜q™å¯ä»¥çœ‹ä½œæ˜¯ä¸€¿U模æ¿åŒ–˜q‡ç¨‹æˆ–者是一¿U夿‚çš„½{–ç•¥æ¨¡å¼ ProductWebObject = DaoWebObject<ProductMeta>。当焉™™äºŽæŠ€æœ¯å®žçŽ°çš„åŽŸå› åQŒåœ¨ä¸€èˆ¬æ¡†æž¶å®žçŽîC¸­åQŒmetaòq¶ä¸æ˜¯é€šè¿‡æ³›åž‹æŠ€æœ¯å¼•入到Web对象中的。目å‰å¸¸è§çš„å¼€å‘实践中åQŒç»å¸¸å¯ä»¥çœ‹è§ç±»ä¼¼BaseAction<T>, BaseManager<T>的基¾c»ï¼Œå®ƒä»¬å¤šåŠä»…ä»…æ˜¯äØ“äº†è‡ªåŠ¨å®žçŽ°ç±»åž‹æ£€æŸ¥ã€‚å¦‚æžœç»“åˆAnnotation技术,则å¯ä»¥è¶…­‘Šç±»åž‹å¡«å……,部分辑ֈ°Meta¾l„åˆçš„æ•ˆæžœã€‚ä‹É用metaçš„å¦å¤–一个副作用在于åQŒmetaæä¾›äº†å„个层é¢ä¹‹é—´æ–°çš„ä¿¡æ¯ä¼ é€’手ŒDµï¼Œå®ƒå¯ä»¥ç»´¾pÕd¤šä¸ªå±‚é¢ä¹‹é—´çš„å…±å˜(covariant)。例如在使用meta的情况下åQŒåŽåîC»£ç è°ƒç”¨requestVars(dsMeta.getUpdatableFields())得到æäº¤å‚æ•°åQŒå‰å°é¡µé¢è°ƒç”¨forEach dsMeta.getViewableFields()æ¥ç”Ÿæˆç•Œé? 则新增一个字ŒD늚„时候,åªéœ€è¦åœ¨meta中修改一处,å‰åŽå°å³å¯å®žçŽ°åŒæ­¥æ›´æ–ŽÍ¼Œè‡ªåЍ¾l´æŒå‰åŽå°æ¦‚å¿ëŠš„一致性。有­‘£çš„æ˜¯ï¼Œå‰åŽå°åœ¨åˆ†ç¦»ä¹‹åŽå®ƒä»¬ä¹‹é—´çš„å…³è”å˜å¾—更加丰富ã€?br />
8. 切é¢åˆ†ç¦»: Meta一般用于引入外部的æè¿°ä¿¡æ¯åQŒå¾ˆž®‘直接改å˜å¯¹è±¡çš„è¡ŒäØ“¾l“构。AOP(Aspect Oriented Programming)概念的出çŽîCØ“½E‹åº¾l“构的组¾l‡æä¾›äº†æ–°çš„æŠ€æœ¯æ‰‹ŒDüc€‚AOPå¯ä»¥çœ‹ä½œæ˜¯ç¨‹åºç»“æž„ç©ºé—´ä¸­å®šä½æŠ€æœ¯å’Œ¾l„装技术的¾l“åˆåQŒå®ƒæ¯”ç‘ôæ‰¿æœºåˆ¶å’Œæ¨¡æ¿æœºåˆ¶æ›´åŠ ç‰|´»åQŒä¹Ÿæ›´åŠ å¼ºå¤§ã€?a >http://canonical.javaeye.com/blog/34941 Witrixòq›_°ä¸­é€šè¿‡¾cÖM¼¼AOPçš„BizFlow技术实现对DaoWebActionå’Œå‰å°ç•Œé¢çš„è¡ŒäØ“æ‰©å±•åQŒå®ƒå¯ä»¥åœ¨ä¸æ‰©å±•DaoWebAction¾cÈš„情况下,增加/修正/å‡å°‘web事äšgå“应函数åQŒå¢žåŠ?修正/å‡å°‘å‰å°ç•Œé¢å±•现元素。当å‰å°å‘é€çš„$bizId傿•°ä¸åŒçš„æ—¶å€™ï¼Œåº”用到WebObjectä¸Šçš„è¡ŒäØ“åˆ‡ç‰‡ä¹Ÿä¸åŒï¼Œä»Žè€Œå¯ä»¥è‡ªç„¶çš„æ”¯æŒåŒä¸€ä¸šåŠ¡å¯¹è±¡å…ähœ‰å¤šä¸ªä¸åŒåº”用场景的情况(例如审核和拟åˆÓž¼‰ã€‚在BizFlow中定义了明确的实体化˜q‡ç¨‹åQŒå‰å°æäº¤çš„é›†åˆæ“作ž®†è¢«åˆ†è§£ä¸ºé’ˆå¯¹å•个实体的æ“作。例如å‰å°æäº¤objectEvent=Remove&id=1&id=2,ž®†ä¼šè°ƒç”¨ä¸¤æ¬¡<action id="Remove-default">æ“作。注æ„到AOPå®šä½æŠ€æœ¯é¦–å…ˆè¦æ±‚çš„ž®±æ˜¯è‰¯å¥½çš„åæ ‡å®šä¹? 实体化明¼‹®å®šä¹‰äº†å®žä½“æ“作边界åQŒäؓ实体相关切点的构造奠定了基础ã€?a >http://canonical.javaeye.com/blog/33784

9. 背景消除åQšåœ¨Witrixòq›_°ä¸? (DaoWebAction + StdPageGroup + Meta + BizFlow)æž„æˆå®Œæ•´çš„ç¨‹åºæ¨¡åž‹ï¼Œå› æ­¤ä¸€èˆ¬æƒ…况下òq¶ä¸éœ€è¦ç‘ô承DaoWebAction¾c»ï¼Œä¹Ÿä¸éœ€è¦å¢žåŠ æ–°çš„å‰å°é¡µé¢æ–‡ä»Óž¼Œè€Œåªéœ€è¦åœ¨BizFlowæ–‡äšg中对修正部分˜q›è¡Œæè¿°å›_¯ã€‚在æŸç§½E‹åº¦ä¸ŠDaoWebAction+StdPageGroup所æä¾›çš„CRUD(CreateReadUpdateDelete)模型æˆäØ“äº†é»˜è®¤çš„èƒŒæ™¯çŸ¥è¯†ã€‚å¦‚æžœèƒŒæ™¯ä¿¡æ¯æžž®‘泄æ¼ï¼Œåˆ™æˆ‘们å¯ä»¥åœ¨è¾ƒé«˜æŠ½è±¡å±‚次上进行工作,而ä¸å†ç†ä¼šåŽŸå§‹çš„æž„é€ æœºåˆ¶ã€‚ä¾‹å¦‚åœ¨æ·±åº¦é›†æˆhibernate的情况下åQŒå¾ˆž®‘会有必™åÖM‹É用SQL语å¥çš„需求。BizFlow是对实体相关的所有业务æ“作和所有页é¢å±•现的集中æè¿°åQŒåœ¨è€ƒè™‘到背景知识的情况下,它定义了一个完整的自给自èƒöçš„ç¨‹åºæ¨¡åž‹ã€‚å½“æˆ‘ä»¬çš„å¾æ¨¡è§†è§’è{¿UÕdˆ°BizFlow模型上时åQŒå¯ä»¥å‘展出新的½E‹åºæž„造手ŒDüc€‚例如BizFlow之间å¯ä»¥å®šä¹‰¾cÖM¼¼¾l§æ‰¿æœºåˆ¶çš„extends½Ž—å­åQŒå¯ä»¥å®šä¹‰å®žä½“状æ€é©±åŠ¨çš„æœ‰é™è‡ªåŠ¨æœºï¼Œå¯ä»¥å®šä¹‰ä¸åŒå®žä½“之间的钩½E½å…³¾p»ï¼ˆå®žä½“Aå‘生å˜åŒ–的时候自动更新实体B上的相关属性)åQŒä¹Ÿå¯ä»¥å®šä¹‰å¯¹Workflow的自然嵌入机制。从表é¢ä¸Šçœ‹åQŒBizFlowä¼ég¹Žå›žå½’åˆîCº†å‰åŽå°å¤§æ‚烩的最åˆåœºæ™¯ï¼ˆç”šè‡³æ›´åР䏥é‡åQŒå®ƒåŒæ—¶æè¿°äº†å¤šä¸ªç›¸å…³é¡µé¢å’Œå¤šä¸ªç›¸å…³æ“作åQ‰ï¼Œä½†æ˜¯åœ¨åˆ†åˆ†åˆåˆçš„æ¨¡åž‹å»ºç«‹˜q‡ç¨‹ä¸­ï¼Œå¤§é‡ä¿¡æ¯è¢«åˆ†è§£åˆ°èƒŒæ™¯æ¨¡åž‹ä¸­ï¼ŒåŒæ—¶å‘展了儿U高¾U§ç»“构抽象机åˆ? ¼‹®ä¿äº†æˆ‘们注æ„力的关注点始终是有é™çš„å˜åŒ–部分。而紧致的æè¿°æé«˜äº†ä¿¡æ¯å¯†åº¦ï¼Œ½Ž€åŒ–了½E‹åºæž„造过½E‹ã€?a >http://canonical.javaeye.com/blog/126467
  <bizflow extends="docflow"> <!-- å¼•å…¥docflow模型åQŒåŒ…括一¾pÕdˆ—界é¢ä¿®æ­£å’ŒåŽå°æ“作 -->
<biz id="my">
     
<tpls>
       
<tpl id="initTpl">
          
<script src="my_ops.js" ></script>
          
<script>
            stdPage.mixin(MyOps); // å¼•入多个™åµé¢ä¸Šç›¸å…ÏxŒ‰é’®å¯¹åº”çš„æ“作
          
</script>
       
</tpl>
     
</tpls>
    
</biz>
  
</bizflow>





]]>
关系模型与ORMhttp://www.aygfsteel.com/canonical/archive/2008/01/06/173154.htmlcanonicalcanonicalSun, 06 Jan 2008 11:04:00 GMThttp://www.aygfsteel.com/canonical/archive/2008/01/06/173154.htmlhttp://www.aygfsteel.com/canonical/comments/173154.htmlhttp://www.aygfsteel.com/canonical/archive/2008/01/06/173154.html#Feedback3http://www.aygfsteel.com/canonical/comments/commentRss/173154.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/173154.html    
    通过idåQˆä¼´éšä¸€ä¸ªåŒ¹é…计½Ž—过½E‹ï¼‰æ¥è¿›è¡Œé—´æŽ¥å…³è”对于ä¿è¯æ¨¡åž‹çš„一致性是éžå¸¸å…³é”®çš„。在ORM中æ¢å¤äº†å¯¹è±¡çš„强兌™”其实会造æˆå¾ˆå¤šæ½œåœ¨çš„夿‚æ€§ã€‚ä¾‹å¦‚äØ“äº†ç»´æŠ¤å¯¹è±¡å±‚é¢ç»“构的一致性,在更新父å­å…³¾pÈš„时候,我们需è¦åŒæ—¶è°ƒç”?child.setParent(parent); parent.getChildren().remove(child); 当关è”ç»“æž„æ›´åŠ å¤æ‚的时候,˜q™é‡Œæ‰€éœ€è¦çš„¾l´æŠ¤å·¥ä½œæ˜¯éšä¹‹å¢žåŠ çš„ã€‚ä¸˜q‡ï¼Œåœ¨ORM中,对象的åÅžæ€æ˜¯æš‚时性的。在ORM的一‹Æ¡sessionçš„æ“作过½E‹ä¸­åQŒå¯¹äºŽå¯¹è±¡çжæ€çš„修改å¯ä»¥æ˜¯ä¸ä¸€è‡´çš„。例如我们å¯ä»¥åªè°ƒç”¨child.setParent(parent); 而ä¸éœ€è¦åŒæ—?nbsp; parent.getChilren().remove(child); åªè¦æˆ‘们在此‹Æ¡sessionæ“作中,ä¸éœ€è¦åŒæ—¶ç”¨åˆ°parent.getChildren(). ˜q™ç§å…Œ™”的暂时性对于很多ORM应用æ¥è¯´æ˜¯å¿…ä¸å¯ž®‘çš„ã€?br />    
    对象模型中å¯ä»¥ç›´æŽ¥è¡¨è¾„¡š„¾l“构关系比关¾pÀL¨¡åž‹è¦ä¸°å¯Œä¸€äº›ï¼Œä¾‹å¦‚¾l§æ‰¿å…³ç³»åQŒmany-to-many, one-to-list½{‰ã€‚ä½†æ˜¯æ‰€æœ‰è¿™äº›éƒ½ä¸æ˜¯çœŸæ­£æœ¬è´¨æ€§çš„差异。抛弃概念诠释,基类与众多派生类之间的关¾pÕdŸºæœ¬ä¸Šå¯ä»¥½{‰ä­h(hu¨¢n)于一¾l„one-to-one关系。而当兌™”对象本èínçš„é‡è¦æ€§å‡¸çŽ°å‡ºæ¥çš„æ—¶å€™ï¼Œå½“æˆ‘ä»¬æ— æ³•æŠŠå®ƒçº¦åŒ–äØ“å¯¹è±¡ä¸Šçš„ä¸€äº›é™„å±žç‰¹æ€§çš„æ—¶å€™ï¼ˆä¾‹å¦‚æ•°ç»„çš„ä¸‹æ ‡ï¼‰åQŒæˆ‘们必然è¦å»ºç«‹ç›¸åº”的关è”对象,而这正对应于关系模型中的中间兌™”表。中间关è”表上增加é¢å¤–的字段是一个自然的扩展˜q‡ç¨‹åQŒè€Œå¯¹è±¡æ¨¡åž‹ä¸Šåšè¿™æ ïL(f¨¥ng)š„æ‰©å……往往表现为åÅžæ€ä¸Šçš„é‡å¤§çš„ä¸å…¼å®¹çš„å˜åŒ–åQŒä¾‹å¦‚从getManyToManyEntity() -> getToManyRelation(), ˜q™å®žé™…上æ„味瀘q™é‡Œçš„对象åÅžå¼æ˜¯å¶ç„¶çš„,½Ž€åŒ–çš„ã€?
   
    在原始的关系数æ®åº“模型中åQŒæ‰€æœ‰çš„表之间的åœîC½æ˜¯åã^½{‰çš„åQŒæ‰€æœ‰å­—ŒDµä¹‹é—´çš„åœîC½æ˜¯åã^½{‰çš„åQˆä¸»é”®å’Œå¤–键在å‚与数æ®å…³è”时和其他字ŒD늚„å¤„ç†æ–¹å¼ä¸€è‡ß_¼‰ã€‚è¿™¿U概念上的å‡ä¸€æ€§å’Œæ™®é性往往被认为是ç†è®ºçš„优¾ŸŽä¹‹å¤„ã€‚ä½†æ˜¯çŽ°å®žä¸–ç•Œæ˜¯å¤æ‚的,å‘展的方å‘å°±æ˜¯é€æ­¥è¯†åˆ«å‡ÞZ¸åŒä¹‹å¤„,òq¶æ‰¾å‡ø™‡ªç„¶çš„表达形弞®†è¿™äº›ä¸åŒè¡¨è¾‘Ö‡ºæ¥ã€‚å‡åŒ€çš„å…³¾pÀL¨¡åž‹æ˜¯å¯¹ç§°æ€§æœ€é«˜çš„åQŒæœ€½Ž€åŒ–的模型。在é¢å¯¹ç‰©ç†¾U¦æŸæ—Óž¼Œå®ƒéšå«çš„å‡è®¾æ˜¯é›†åˆä¹‹é—´å¾ˆž®‘å‘生相互作用,å•表åQˆè¡¨å•到数æ®è¡¨ä¹‹é—´çš„æ˜ å°„åQ‰å’Œä¸ÖM»Žè¡¨æ˜¯æœ€òq¿æ³›çš„æƒ…å†üc€‚è¯•ç€æƒŒ™±¡ä¸€ä¸‹å…³¾pÀL¨¡åž‹ï¼Œåœ¨æ€ç»´ä¸­ä¸€èˆ¬æˆ‘们åªèƒ½çœ‹åˆîC¸¤ä¸ªæ•°æ®è¡¨åQŒå½“è€ƒè™‘åˆ°å¤šä¸ªè¡¨çš„æ—¶å€™ï¼Œå› äØ“˜q™äº›è¡¨ä¹‹é—´æ²¡æœ‰æ˜Ž¼‹®çš„å¯åŒºåˆ†æ€§ï¼Œå› æ­¤å®ƒä»¬çš„æ„è±¡æ˜¯æ¨¡ç³Šçš„ã€‚åªæœ‰æ˜Ž¼‹®æ„识到主键åQŒå¤–键,主表åQŒä»Žè¡¨ï¼Œå­—典表,事实表,¾U¬åº¦è¡¨è¿™äº›ä¸åŒçš„æ¦‚念的时候,当对¿U°æ€§å‡ºçŽ°ç ´¾~ºçš„æ—¶å€™ï¼Œæˆ‘们æ€ç»´ä¸­çš„æ¨¡åž‹æ‰èƒ½å¤Ÿä¸°å¯ŒåŒ–èµäh¥ã€?br />    
    关系模型ç†è®ºåº”用到数æ®åº“具体应用中时åQŒåƈä¸éœ€è¦æ­»å®ˆå…³¾p»èŒƒå¼æ•™æ¡ï¼Œå®ƒä»¬åªæ˜¯æè¿°äº†æŸ¿Uæžç«¯åŒ–的对唯一性的˜q½æ±‚。é¢å¯¹å…·ä½“应用的时候,ç†è®ºæœ¬èínä¹Ÿåœ¨ä¸æ–­ä¸°å¯ŒåŒ–。我òq¶ä¸æŠŠçŽ°å®žåº”ç”¨ä¸­å¿…ç„¶éœ€è¦å¢žåР冗余字ŒD늜‹ä½œæ˜¯å…³ç³»ç†è®ºå¤±æ•ˆçš„结果。从关系完全分解åQŒåˆ°å…³ç³»å®Œå…¨ä¸åˆ†è§£ä¹‹é—ß_¼Œæˆ‘们å¯ä»¥å»ºç«‹å¤§é‡çš„æ¨¡åž‹ã€‚å¾ç«‹å†—余字ŒD늚„时候,我们存在ç€å¤§é‡å¯èƒ½çš„选择åQŒåˆ°åº•哪一¿U选择是最优的åQŒç†è®ºæ–¹é¢ä»ç„¶å¯ä»¥ç»™æˆ‘们以具体的指导。ç†è®ºåœ¨å„ç§ä¸åŒ¾U¯åŒ–½E‹åº¦çš„å…³¾pÀL¨¡åž‹ä¸­éƒ½å¯ä»¥ç»™æˆ‘ä»¬ä»¥ç›´è§‚çš„å»ø™®®ã€‚æ•°æ®ä»“库ç†è®ÞZ¸­å»ºç«‹çš„snowflake模å¼å’Œstar模å¼åQŒå¼ºè°ƒäº†é’ˆå¯¹ä¸»é¢˜åŸŸçš„å…许部分冗余的关¾pÕdˆ†è§£ã€‚这里实际上是强调了表之间的ä¸åŒæ€§ã€‚ä¸å†æ˜¯æ‰€æœ‰çš„表都处于åŒä¸€åœîC½ã€‚Fact Tableå’ŒDimension Table之间的区别被识别出æ¥åQŒåƈ被明¼‹®å¤„ç†ã€‚在我看æ¥ï¼Œ˜q™æ˜¯åŽŸå§‹å…³ç³»æ¨¡åž‹çš„ä¸€¿U自然å‘展,它也是关¾pÀL¨¡åž‹ç†è®ºçš„一部分。ç†è®ÞZ¸åº”该是å•一的,而是æä¾›ä¸€ä¸ªæ¨¡åž‹çñ”列,在ä¸åŒçš„夿‚性层‹Æ¡ä¸ŠåQŒæˆ‘们å¯ä»¥æ ¹æ®ç†è®ºçš„æŒ‡å¯¼é€‰æ‹©å…·ä½“的实现模型ã€?br />    
    关于ORM http://canonical.javaeye.com/blog/111500
    关系模型中的所谓关¾pÀL˜¯åœ¨ä‹É用时åˆÀL‰å®šä¹‰çš„,所有å¾ç«‹å…³¾pÈš„æ–¹å¼åœ¨æŸ¿U程度上都是½{‰ä­h(hu¨¢n)的,也是外在的。而在ORM中主键与外键之间的关è”被独立出æ¥åQŒæˆä¸ºæ¨¡åž‹å†…¾|®çš„éƒ¨åˆ†ã€‚è¿™åœ¨å¾ˆå¤šæ—¶å€™ç®€åŒ–äº†æ•°æ®æŸ¥è¯¢çš„结构构造过½E‹ã€?br />     在ORM中主键因为缓存的存在而显å‡ÞZ¸Žå…¶ä»–字段的区别。ORMçš„ä‹É用ä‹Éå¾—æ•°æ®å­˜å‚¨çš„分解½{–ç•¥å¾—åˆ°æ‰©å……ã€‚åÆˆä¸æ˜¯æ‰€æœ‰çš„表的更新频度都是一致的åQŒè€Œä¸”表中的数æ®é‡å¤§å°ä¹Ÿä¸åŒã€‚字典表一般较?y¨­u)®ï¼Œè€Œä¸”很少更新åQŒå¯ä»¥å®‰å…¨çš„å¤åˆ¶ã€‚在整个数æ®å­˜å‚¨æ¡†æž¶ä¸­ï¼ŒORMä½œäØ“ç‹¬ç«‹çš„æŠ€æœ¯å…ƒç´ å‚与数æ®å­˜å‚¨è¿‡½E‹ï¼Œé€šè¿‡ä¸»é”®æä¾›¾~“å­˜æœåŠ¡åQŒäñ”生了新的数æ®åˆ†å¸ƒæ¨¡åž‹åQŒæä¾›äº†æ–°çš„æ€§èƒ½ä¼˜åŒ–契机ã€?br />



]]>
代ç ä¹‹å¤–的结æž?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/15/167994.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sat, 15 Dec 2007 11:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/15/167994.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/167994.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/15/167994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/167994.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/167994.html</trackback:ping><description><![CDATA[    我在å„ç§åœºåˆä¸€ç›´éƒ½åœ¨å¼ºè°ƒç»“构问题是独立的,在程åºè¯­­a€ä¹‹å¤–存在ç€ç‹¬ç«‹çš„,å¯ç ”½I¶çš„åQŒå¯Œæœ‰æˆæ•ˆçš„¾l“构问题ã€?a >http://canonical.javaeye.com/blog/147424 </a>在这个方å‘上更进一步,我们注æ„到所有的代ç òq¶ä¸æ˜¯å¤©ç„¶å‡ºçŽ°çš„åQŒè€Œæ˜¯ç”׃h所¾~–制的,因此代ç ä¸–界内部òq¶ä¸æž„戞®é—­çš„,自èƒöçš„æŸä¸ªä¸–界。代ç ä¸­çš„ç»“æž„é—®é¢˜åÆˆä¸æ˜¯ç”׃»£ç æœ¬íw«å®Œå…¨è§£å†³çš„åQŒå³åœ¨ä»£ç ä¹‹å¤–ä»ç„¶å­˜åœ¨ç€æŠ€æœ¯ä¸Šå¯ç ”½I¶çš„¾l“构问题ã€?br />     我们在编制代ç çš„åŒæ—¶ä¹Ÿåœ¨¾~–制ç€å¤§é‡çš„说明文档。这些文档æ˜qîCº†ä»£ç ç‰‡æ–­ä¹‹é—´çš„相互关¾p»ï¼Œæè¿°äº†ä»£ç æœªæ¥çš„æ‰©å±•æ–¹å‘åQŒæ˜qîCº†ä»£ç ä¹‹é—´çš„å¯èƒ½çš„交互方å¼åQŒåŒæ—¶ä¹Ÿæè¿°äº†é’ˆå¯¹çŽ°æœ‰ä»£ç å®žçŽ°çš„å¾ˆå¤šå…·ä½“¾U¦æŸã€‚例如我们在文档中约定æŸä¸ªé‡è¦åœ¨10å’?0之间åQŒä½†åœ¨ä»£ç ä¸­å´ä¸ä¸€å®šæ˜¾å¼è¿›è¡Œäº†åˆ¤æ–­ã€‚针对代ç ç»“构的很多具体¾U¦æŸæ¡äšg和相å…Ïx€§æ˜q°å¯èƒ½åªåœ¨æ–‡æ¡£ä¸­ä½“现åQŒåªåœ¨ç¨‹åºå‘˜çš„头脑中存在åQŒè€Œåƈä¸ä¸€å®šå¿ å®žçš„在代ç ç»“构中得到表达ã€?br />     æˆ‘åœ¨è®¾è®¡é¢†åŸŸåŸºæœ¬æŒæœ‰ä¸€¿U物ç†å®žåœ¨è®ºåQŒå³æŸç§æŠ€æœ¯ç›¸å…³çš„¾U¦æŸåº”该在技术世界中通过技术手ŒDµå¾—åˆ°è¡¨è¾¾ã€‚åªæ˜¯è¿™é‡Œçš„æŠ€æœ¯æ‰‹ŒDµå´ä¸ä¸€å®šæŒ‡åœ¨åº”用中加上特定的代ç å®žçŽŽÍ¼Œè™½ç„¶æˆ‘们在代ç å®žçŽîC¸­æ›´ç›´æŽ¥çš„è¡¨è¾¾è®¾è®¡è¦æ±‚æ— ç–‘æ˜¯éœ€è¦æå€¡çš„ã€‚äØ“äº†åœ¨½E‹åºä¸­æœ‰æ•ˆçš„¾l´æŠ¤¾l“构相关性,我们òq¶ä¸ä¸€å®šéœ€è¦æŠ½è±¡å‡ºæ‰€æœ‰å¯èƒ½é‡ç”¨çš„代ç åQŒåƈä¸ä¸€å®šéœ€è¦ç¡®ä¿æŸä¸€æ¦‚念在程åºä¸­åªæœ‰¾_„¡¡®çš„唯一的表达。程åºä¸­éš¾ä»¥ç›´æŽ¥¾_„¡¡®è¡¨è¾¾çš„弱兌™”åQŒä»ç„¶å¯ä»¥é€šè¿‡å¼€å?设计工具½{‰æŠ€æœ¯æ‰‹ŒDµå¾—到有效的¾l´æŠ¤ã€‚我们需è¦ä¿è¯çš„æ˜¯ä»£ç ä¸–ç•Œä¸­çŸ¥è¯†çš„è‡ªæ°æ€§ï¼Œè€Œè‡ªæ°æ€§åƈä¸ç­‰äºŽå”¯ä¸€æ€§ã€?a >http://canonical.javaeye.com/blog/33788</a><br />     在Witrix中我们采用一¿Uç‰©ç†æ¨¡åž‹é©±åŠ¨çš„å¼€å‘æ–¹å¼ï¼Œ<a >http://canonical.javaeye.com/blog/29412</a> ç”±pdm模型出å‘åQŒè‡ªåŠ¨ç”Ÿæˆhibernateçš„hbmæ–‡äšgåQŒjava实体¾c»ï¼Œå…ƒæ•°æ®metaæ–‡äšgåQŒå‰å°Action注册文äšg½{‰ã€‚生æˆçš„é…置文äšg通过syncWithModelæ ‡è®°ä¸Žæ¨¡åž‹ä¿æŒç€½E›_®šçš„å…³è”。所有酾|®æ–‡ä»‰™ƒ½æ”¯æŒæ‰‹å·¥ä¿®æ”¹åQŒå¼€å‘工兯‚¯†åˆ«syncWithModel标记åQŒå½“pdm模型å‘生å˜åŒ–的时候,工具自动ž®†å˜åŒ–ä¿¡æ¯åŒæ­¥åˆ°å„个é…置文äšg中。注æ„到˜q™é‡Œòq¶ä¸æ˜¯é‡‡ç”¨ä¸€ä¸ªç»Ÿä¸€çš„å…ƒæ•°æ®æ¨¡åž‹çš„æ–¹å¼ï¼Œå„个é…置文äšg所表达的信æ¯åœ¨ä¸€å®šç¨‹åº¦ä¸Šæ˜¯é‡å¤çš„åQŒä¹Ÿå¯èƒ½æ˜¯ä¸ä¸€è‡´çš„。例如åŽå°æ•°æ®åº“å…许ä¿å­˜100个字节,但是å‰å°meta中我们å¯èƒ½é…¾|®åªå…许录入20个字节。根æ®ä¸åŒåº”用场景的需è¦ï¼Œæˆ‘们å¯ä»¥åœ¨å„个层é¢å¯¹æ¯ä¸ªé…置文äšg˜q›è¡Œç‹¬ç«‹çš„è°ƒèŠ? 当然,在一般情况下òq¶ä¸å­˜åœ¨˜q™ç§éœ€è¦ã€‚整个开å‘过½E‹ä¸­åQŒä¿¡æ¯è¡¨è¾„¡š„è‡ªæ°æ€§åÆˆä¸æ˜¯åœ¨åº”用程åºä»£ç ä¸­å¾—到定义çš?è€Œæ˜¯å› äØ“å¼€å‘å·¥å…ïL(f¨¥ng)š„存在而在技术上得到ä¿è¯çš„ã€‚æ”¾æ¾æ¨¡åž‹ä¹‹é—´çš„唯一匚w…è¦æ±‚åQŒæˆ‘们å¯ä»¥å¾—到更加丰富,更加ç‰|´»çš„èÊY件结构。实际上我认为RoR(RubyOnRails)采用直接映射的ActiveRecord的方å¼è™½ç„¶æœ‰æ•ˆä¿è¯äº†¾pÈ»Ÿå˜åŠ¨ä¸­çŸ¥è¯†çš„ä¸€è‡´æ€§ï¼Œä½†æ˜¯å¦‚æžœä¸å…许在å„个层é¢ä¸Šéƒ½èƒ½å¤Ÿè‡ªç„¶çš„定义柿Uå¼›»ï¼Œå®ƒåœ¨å¤æ‚åº”ç”¨ä¸­çš„ä»·å€¼å°±è¦æ‰“上大大的折扣ã€?br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/167994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-15 19:46 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/15/167994.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>¾l“构的独立æ€?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/10/166820.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Mon, 10 Dec 2007 15:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/10/166820.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/166820.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/10/166820.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/166820.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/166820.html</trackback:ping><description><![CDATA[   设计考虑的是最¾lˆéœ€è¦ä»€ä¹ˆï¼Œæœ€¾lˆæˆ‘ä»¬è¦æä¾›çš„è°ƒç”¨æŽ¥å£æ˜¯ä»€ä¹ˆï¼Œæˆ‘们所直接需è¦çš„æŸä¸ªæœ‰ä­h(hu¨¢n)值的åQŒç›´æŽ¥å­˜åœ¨çš„åQŒç›´æŽ¥å¯ä»¥æŽ¥è§¦çš„¾l“æž„æ˜¯ä»€ä¹ˆï¼Œè€Œä¸æ˜¯å®ƒæ‰€ä¾æ®çš„åŽŸç†æ˜¯ä»€ä¹ˆï¼Œä¸æ˜¯å®ƒçš„具体构造过½E‹æˆ–者构造方法是什么。比如说我们在程åºä¸­å®Œå…¨ä¸éœ€è¦å†…¾|®Map˜q™ä¸€¾l“æž„åQŒå› ä¸ºå®ƒå¯ä»¥é€šè¿‡åˆ—表½{‰ç»“æž„ç»„åˆæž„建出æ¥ï¼Œä½†æ˜¯å¾ˆæ˜¾ç„Óž¼ŒMap˜q™ä¸€æ¦‚念的直接存在对我们æ¥è¯´æ˜¯æ–¹ä¾¿çš„åQŒæ˜¯¾l济的,是有效的。我们在æ€è€ƒçš„æ—¶å€™åƈä¸éœ€è¦è€ƒè™‘它是采用List实现˜q˜æ˜¯é‡‡ç”¨Set实现åQŒæˆ–者ä“Q何它本èínçš„æž„é€ ç»“æž„ã€‚è¿™ä¸€æ¦‚å¿µåœ¨æˆ‘ä»¬çš„æ€æƒ³ä¸­æˆä¸ºæŸ¿U原å­åŒ–的东è¥Ñ€?br /> <br />     那么åQŒæˆ‘ä»¬åˆ°åº•éœ€è¦æž„建哪些概念,æ‰èƒ½å¤Ÿæœ€æ–¹ä¾¿çš„基于这些概念应对万åƒåº”用系¾lŸçš„å¼€å‘å‘¢ã€?˜q™æ˜¯æˆ‘们需è¦åœ¨¾l“æž„½Iºé—´ä½œå‡ºæŽ¢çƒ¦çš„ã€?˜q™é‡Œçš„æ€ç»´æ–¹å‘䏿˜¯æŠŠç³»¾lŸæŽ¨å‘柿U纯¾_¹åŒ–åQŒæŸ¿Uæžè‡´çš„½Ž€å•化åQŒè€Œæ˜¯è®©å®ƒæ›´åŠ ç‰©ç†åŒ–,æ­ç¤ºå‡ºæ›´å¤šçš„层次åQŒæ›´åŠ å…³åˆ‡åœ¨ç‰©ç†¾U¦æŸæƒ…况下如何实现絋zÀL€§çš„æœ€å¤§åŒ–。一¿U概念在物ç†ä¸Šå¦‚æžœè¢«è¯æ˜Žèƒ½å¤Ÿåœ¨å¾ˆå¤šåœºæ™¯ä¸‹æˆäØ“ä¸å˜çš„基元,则它便是有ä­h(hu¨¢n)值的åQŒæ˜¯å¯ä»¥˜q›è¡Œç‰©ç†è¯ é‡Šçš„ã€?br /> <br />    很多äºÞZ¹ æƒ¯äºŽæŽ¥å—语言存在的现实,接å—设计åŽçš„¾l“æžœåQŒä½†æ˜¯ä½œä¸ºç¨‹åºè¯­­a€è®¾è®¡è€…ï¼Œä»–ä»¬åˆæ˜¯å¦‚何工作的?他们是å¦çœŸçš„æ˜¯ä»Ž¾U¯çÑa的数学关¾pÀLŽ¨æ¼”å¾—åˆ°æ‰€æœ‰çš„è¯­æ³•ç‰¹å¾åQŒè¿˜æ˜¯ä»–们预先已¾l在心中讑֮šäº†åº”该出现的语法特å¾åQŒç„¶åŽåŽ»å¯ÀL‰¾å®ƒçš„æ•°å­¦è¡¨è¾¾åQŒåªæ˜¯å€Ÿæ­¤æ¸…除æ€ç»´ä¸­æ½œåœ¨å­˜åœ¨çš„矛盾性呢åQ?br /> <br />     è¯­è¨€ä¸­å­˜åœ¨çš„æ‰€æœ‰ç‰¹å¾æ˜¯¾l过全局考虑的,是清除了所有概å¿ëŠš„矛盾冲çªçš„。但是在现实中,我们å¶ç„¶æž„造的¾l“æž„å´å¯èƒ½æ˜¯å±€é™äºŽå½“ä¸‹çš„ä¿¡æ¯æž„造的åQŒå› æ­¤å®ƒä»¬ç›¸ä¼šçš„æ—¶å€™ï¼Œå¯èƒ½ä¼šå‡ºçŽîC¸åè°ƒåQŒå¯èƒ½ä¼šå‡ºçް¾l“构障ç¢ã€‚ä¾‹å¦‚åŒæ äh˜¯å…³é—­æ“作åQŒæœ‰äº›äh命å为close, å¦ä¸€äº›äh命å为destroy. å¯èƒ½ä¸€ä¸ªå…·æœ‰é¢å¤–傿•ŽÍ¼Œå¦å¤–一个没有。这里å¯èƒ½éœ€è¦ä¸€¿Uadaptor接å£çš„å°è£…,也å¯èƒ½ä‹É用rubyé‚£ç§method-missing的动æ€åˆ¤æ–­ã€‚对于更加错¾l¼å¤æ‚çš„¾l“构问题åQŒå…¶è§£å†³æ–ÒŽ(gu¨©)¡ˆž®×ƒ¸æ˜¯é‚£ä¹ˆæ˜¾ç„¶çš„了,但这òq¶ä¸æ„å‘³ç€æˆ‘ä»¬æ— åŠžæ³•å¯æƒŸë€‚究竟设计何¿U结构边界æ‰èƒ½æœ€ž®åŒ–¾l“æž„èžåˆæ—¶æ‰€è¦ä»˜å‡ºçš„代ä­h(hu¨¢n)呢?¾l“æž„è¢«è¯†åˆ«åÆˆè¡¨å¾å‡ºæ¥ä»¥åŽåQŒæ˜¯å¦å…许它在一定范围内有所å˜åÅžåQŸåœ¨å˜åŞ中我们需è¦ä¿æŒçš„æ‹“扑ä¸å˜é‡æ˜¯ä»€ä¹ˆï¼Ÿ¾l“构动æ€è°ƒæ•´çš„æ—¶å€™ï¼Œæˆ‘们是å¦éœ€è¦å®šä¹‰è°ƒæ•´çš„物ç†ä»£ä­h(hu¨¢n)åQŒæ˜¯å¦èƒ½å¤Ÿå®šä¹‰æŸ¿U动力学åQ?br /> <br />    我所é˜è¿°çš„åªæ˜¯åœ¨è®¡ç®—机ç†è®ÞZ¸­ä»Žæ•°å­¦è§†è§’å‘物ç†è§†è§’çš„è{æ¢ï¼Œå®ƒä¸æ˜¯å¿…然给你æä¾›æŸ¿Uè¶…­‘Šå½“下的能力åQŒè€Œæ˜¯æä¾›ä¸€¿Uä¸åŒçš„çœ¼å…‰çœ‹å¾…æ‰€æœ‰çš„ä¸€åˆ‡ã€‚è§†è§’å˜æ¢åŽåQŒæˆ‘们å‘çŽîCº†ä¸€äº›æ–°çš„命题,而在原先的视角下在我们的è¯è¯­ä½“系中原本是无法表达˜q™äº›å‘½é¢˜çš„。串行程åºå‡è®¾äº†åªæœ‰1颗CPU, 而函数å¼è¯­è¨€å‡è®¾äº†å¯ä»¥æœ‰æ— é™å¤šä¸ªCPU, ä½ ä¸è§‰å¾—1è‡Ïx— ½I·ä¹‹é—´ç¼ºç‚¹ä»€ä¹ˆå—。我们å¯ä»¥åˆ›é€ ä¸€äº›ä¸œè¥¿æŠŠ1è‡Ïx— ½I·ä¹‹é—´çš„½Iºç™½è¡¥é½åQŒæ¦‚å¿ëŠ©ºé—´æ˜¯˜qžç®‹çš„ã€?br />  <br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/166820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-10 23:57 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/10/166820.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>关于抽象性的一些说æ˜?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/09/166520.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 09 Dec 2007 14:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/09/166520.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/166520.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/09/166520.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/166520.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/166520.html</trackback:ping><description><![CDATA[<p>    没有人å¦è®¤æŠ½è±¡çš„æ„ä¹‰åQŒä½†æ˜¯æŠ½è±¡æ˜¯å¦å°±æ˜¯æŠ½è±¡åˆ°æ— ç©·å¤§ï¼Œ˜q™æ˜¯ä¸ªå¯ä»¥æ˜Ž¼‹®å®šä¹‰çš„问题åQŒä¹Ÿæ˜¯æ•°å­¦é¢†åŸŸæ­£åœ¨è§£å†³çš„问题。在我们的æ€è€ƒä¸­æ²¡æœ‰æ˜Žç¡®å®šä¹‰ä½•处是边界, 没有明确的é™åˆÓž¼Œ˜q™ä¾¿æ˜¯å¯¼å‘æ— ½IïL(f¨¥ng)š„一¿Uæ€ç»´æ–¹å¼åQŒå®ƒå’ŒçŽ°å®žä¸­æ˜¯å¦çœŸçš„å…许消耗无é™å¤šçš„资æºï¼Œåˆ›å¾æ— é™å¤šçš„å¯¹è±¡æ— å…³ã€‚å½“æˆ‘ä»¬è®¤äØ“è‡ªå·±æ˜Žç™½äº†ç»ˆæžçš„æ„ä¹‰åQŒæ˜Žç™? 了一¿UæŽ¨å‘æ— ½IïL(f¨¥ng)š„æŠ½è±¡åQŒè¿™òq¶ä¸æ˜¯ç†è§£äº†ä¸–界的全部,我们ä»ç„¶è¦æ˜Žç™½å¦‚何解决一些更加å°èŒƒå›´åQŒä½†æ˜¯å´åˆæ™®éå‘生的事情ã€? <br /> 例如现在我的¾pÈ»Ÿä¸­åªéœ€è¦?0个相互ä¾èµ–çš„¾U¿ç¨‹åQŒå¦‚果我们定æ­ÖMº†10˜q™ä¸ªæ•°å­—åQŒæ˜¾ç„¶æˆ‘们å¯ä»¥å‘展一¿U这个领域特有的高效的一些算法结构。而抽象到通用语言 中的时候,昄¡„¶æˆ‘们åªèƒ½å‡è®¾¾U¿ç¨‹æ•°æ˜¯ä»ÀL„大,或者是充分大的åQŒè€Œæ— æ³•充分利ç”?0˜q™ä¸€é¢†åŸŸä¿¡æ¯åQŒå› æ­¤åœ¨˜q™ä¸ªæ„ä¹‰ä¸Šæˆ‘è¯´é€šç”¨è¯­è¨€ä¸æ˜¯æœ‰æ•ˆçš„ã€? <br /> 说到10˜q™ä¸ª¼‹®å®šçš„æ•°å­—,ä¸è¿‡æ˜¯ä¸€¿Uæžç«¯åŒ–的比喅R€‚我常说概念是连¾l­çš„åQŒåÆˆä¸æ˜¯éžæ­¤å›_½¼çš„,因此òq¶ä¸æ˜¯ä»Žä¸€¿Uæ™®éæƒ…况到一¿U最ç‰ÒŽ(gu¨©)®Šçš„æƒ…况之间ä¸å†æœ‰å…¶ä»–æƒ? 况了。在˜q™ä¸­é—´çŽ¯èŠ‚ï¼Œå­˜åœ¨ç€éžå¸¸æ·±åˆ»çš„夿‚的物ç†äº‹å®žã€‚但是这些事实å´åˆæ˜¯æŸç§æœ‰é™æ€§å‘我们æ­ç¤ºå‡ºæ¥çš„。(请ä¸è¦æŠŠ˜q™é‡Œçš„æœ‰é™æ€§ç†è§£äØ“½Ž—术中的10以内åQ? <br /> <br /> 现在æ¥ä¸€ä¸ªç†è®ºæŽ¨æ¼”å§åQ? <br /> 1. ä»ÖM½•¾pÈ»Ÿéƒ½åœ¨ä¸€å®šçº¦æŸä¸‹˜q行åQŒå³å®ƒä»¬éœ€è¦ç¬¦åˆæŸäº›çº¦æŸæ¡ä»? <br /> 2. 通用语言æè¿°äº†æŸäº›ç»“构,但是˜q™äº›¾l“构是充分通用的,能够应用到尽å¯èƒ½òq¿æ³›çš„领域的 <br /> 3. ¾U¿ç¨‹æ•?10˜q™ä¸ª¾U¦æŸ˜q‡ä†¾ç‰ÒŽ(gu¨©)®ŠåQŒæ˜¾ç„‰™€šç”¨è¯­è¨€æ˜¯ä¸ä¼šè€ƒè™‘˜q™ä¸ª¾U¦æŸã€‚实际上目å‰åœ¨é€šç”¨è¯­è¨€è®¾è®¡ä¸­ï¼Œæ— é™èµ„æºå‡å®šåŸºæœ¬éƒ½æ˜¯é»˜è®¤çš„ã€? <br /> 4. 我们承认æŸäº›çŽ°å®žçš„çº¦æŸé€šç”¨è¯­è¨€æ˜¯ä¸ä¼šè€ƒè™‘çš? <br /> 5. 在最ç‰ÒŽ(gu¨©)®Šçš„,明显ä¸ä¼šè€ƒè™‘的约æŸä»¥åŠéžå¸”R€šç”¨åQŒä¸€èˆ¬é€šç”¨è¯­è¨€å¿…然考虑的约æŸä¹‹é—ß_¼Œæ˜¯å¦å­˜åœ¨ç€æ›´å¤šçš„,éžåã^凡的¾l“æž„å‘? <br /> 6. å‡å¦‚10òq´ä»¥å†…我们所有的¼‹¬äšg都åªèƒ½æ”¯æŒ?0个内核,在我的äñ”å“ç ”å‘中å‡å®š10个线½E‹æœ‰é—®é¢˜å—ã€‚éš¾é“æˆ‘在开å‘的时候就ä¸å†éœ€è¦æŠ½è±¡äº†å—。我在其他方é¢ä»ç„¶æ˜¯éœ€è¦å¾ç«‹æŠ½è±¡çš„ã€? <br /> 7. n个抽象约æ?1个具体约æŸï¼Œä»¥åŠ n个无é™çº¦æ?1个有é™çº¦æ?ä»ç„¶æ˜¯æœ‰æ•ˆçš„æŠ½è±¡å½¢å¼ã€‚原谅我在这里åˆä½¿ç”¨äº†æœ‰æ•ˆä¸€è¯ï¼Œå®ƒçœŸçš„很隄¡†è§£å—ã€? <br /> 8. 䏿˜¯åœ¨æˆ‘们的æ€ç»´ä¸­å­˜åœ¨ç€å…·ä½“的或者有é™çš„物ç†é‡?ž®±æ„味瀘q™ç§æ€ç»´æ˜¯ä¸æŠ½è±¡çš? <br /> <br /> 函数å¼è¯­­a€æˆ–者ä“Q何一¿U其他我们已知的与Turing机等ä»ïL(f¨¥ng)š„语言åQŒå®ƒä»¬åœ¨æŸç§æ•°å­¦çš„å«ä¹‰ä¸Šè¯´æ˜¯"没有差别çš?。但是在我们的实际ä‹É用过½E‹ä¸­åQŒæ˜¾ç„¶æˆ‘们是 能够感å—到它们之间的¾l“构差异的。å¦åˆ™é‚£äº›ä¸æ–­å‘明新的函数å¼è¯­è¨€çš„äh的大脑都˜q›æ°´äº†å—åQŸåœ¨å…·ä½“使用中,æ€ÀLœ‰äººå好这个语­a€,有ähå好那个语言, æ€ÀL˜¯æŸç§æƒ…况下应用æŸä¸ªè¯­­a€ä¼šæ–¹ä¾¿ä¸€äº?å¦ä¸€äº›éº»çƒ¦ä¸€äº›ã€‚éš¾é“在所有函数å¼è¯­è¨€ä¸­å¼€å‘类似ErLang解决的那些程åºç»“构都是一æ äh–¹ä¾¿çš„å—? <br /> <br /> æœ‰äº›äººçš„è®ø™°ƒæ˜¯æ— è®ºå•¥éƒ½é€ƒä¸å‡ºå‡½æ•°å¼è¯­è¨€çš„æ€æƒ³ã€‚ä½†æ˜¯å‡å¦‚现在é™å®šä½ å¿…须使用java语言æ¥å¼€å‘商业应用,éšùN“ä½ çÅžå·¥å—åQŸå¦‚果你ä¸ä‹É用函数å¼è¯­è¨€åQŒä½ æ‰€å? çš„å·¥ä½œå°±ä¸æ˜¯½E‹åºå·¥ä½œäº†ï¼Ÿä½ æ‰€è§£å†³çš„éš¾é“䏿˜¯ç¨‹åºç»“构问题了å—?现在ž®±æ˜¯æœ‰ä¸€ä¸ªç»“构问题è¦è§£å†³, 它是和语­a€æ— å…³çš? 语言æä¾›äº†å°±å¯ä»¥ç›´æŽ¥ç”? 语言没有æä¾›æˆ‘们å¯ä»¥å†™ä»£ç æž„é€? éšùN“除了语言直接体现的结构之å¤? ½E‹åºæœ¬èínž®±æ— æ³•构造ä“Q何具有通用价值的¾l“构了å—åQ?/p> <p> 我在说到函数å¼è¯­­a€çš„æ—¶å€™ï¼ŒåŸºæœ¬çš„æ€åº¦åªæ˜¯è¯´ä¸è¦å¤ªæ²‰è¿·äºŽä¸€¿U特ŒDŠçš„æŠ½è±¡æ–¹å¼åQŒåº”该多看看别的视角。在ä¸åŒçš„æƒ…况下存在ç€åšäº‹æƒ…çš„ä¸åŒçš„æœ€ä¼˜æ–¹å¼ã€‚æ€ç»´ä¸­ä¸è¦åªå…许永远åQŒè€Œå®¹ä¸ä¸‹çŽ°åœ¨ã€? <br /> <br /> éžæ­¤å›_½¼åQŒå¤©ä¸‹å”¯æˆ?是我们æ€ç»´ä¸­ç»å¸”R™·å…¥çš„一个误区。现在计½Ž—机领域所谓的ç†è®ºä¸»è¦æ˜¯åŸºäºŽæ•°å­¦è§†è§’çš„åQŒæ²¡æœ‰è€ƒè™‘物ç†ä¸–ç•Œå› äØ“æˆ‘ä»¬è§‚å¯Ÿçš„æœ‰é™æ€§ï¼Œå› äØ“èµ„æº çš„æœ‰é™æ€§æ‰€é€ æˆçš„ç§¿U约æŸï¼Œæ­¤å¤–数学中目å‰ä¹Ÿæ²¡æœ‰è€ƒè™‘到物ç†ä¸–界真实的å„ç§å¤æ‚性的存在。在我们惛_ˆ°ä¸€¿U计½Ž—机ç†è®ºçš„æ—¶å€™ï¼Œå›‘Öƒ˜q‡äºŽ½Ž€å•化åQŒè¿™¿U简å•化è¢? è®¤äØ“æ˜¯ä¼˜¾ŸŽçš„全部。其实我们应该æ€ç»´æ›´åŠ å¼€æ”¾ä¸€äº›ã€? </p> <img src ="http://www.aygfsteel.com/canonical/aggbug/166520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-09 22:25 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/09/166520.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>关于语言有效性的一些澄æ¸?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/09/166472.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 09 Dec 2007 09:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/09/166472.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/166472.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/09/166472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/166472.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/166472.html</trackback:ping><description><![CDATA[    数学上的有效性与物ç†ä¸­çš„æœ‰æ•ˆæ€§æ˜¯ä¸åŒçš„,例如对于密ç å­¦é—®é¢˜ï¼Œå¦‚果通过½I·ä‹Dæ³•ç ´è§£å¯†ç æˆåŠŸæ—¶åQŒç»˜q‡è¿™äº›å¯†ç åŠ å¯†çš„æ•°æ®å·²ç»˜q‡äº†æœ‰æ•ˆæœŸé™åQŒæ­¤æ—¶æˆ‘ä»¬åœ¨æ•°å­¦ä¸Šå®šä¹‰ç©·ä¸¾æ³•ä¸æ˜¯ä¸€¿U有效的破解æ–ÒŽ(gu¨©)³•。但是物ç†å±‚é¢ä¸Šæˆ‘们说åªè¦ä¸€¿U方法比å¦ä¸€¿U方法能够更快的解决问题åQŒæˆ‘们就说第一¿U方法比½W¬äºŒ¿U方法有效,而无论密ç è¢«ç ´è§£çš„æ—¶å€™è¯¥å¯†ç æ˜¯å¦å·²ç»˜q‡äº†æœ‰æ•ˆæœŸé™ã€?br /> <br />     æˆ‘æ‰€è¡¨è¿°çš„è®ºé¢˜åÆˆä¸æ˜¯è¯´ç‰¹å®šçš„领域¾l“构无法在æŸä¸ªç‰¹å®šçš„通用语言中有效实现。我惛_¾ˆå¤šähå¯ÒŽ(gu¨©)ˆ‘çš„è¯è¯­éƒ½æœ‰äº›è¯¯è§£ã€?br /> <strong>å¦‚æžœæˆ‘ä»¬è®¤äØ“ä¸€¿U通用语言是比较稳定的,则它一般选择åªå†…¾|®ä¸€äº›é€šç”¨çš„ä¸å¸¦æœ‰é¢†åŸŸç‰¹å®šå«ä¹‰çš„æ¦‚å¿? 而缺ä¹é¢†åŸŸçŸ¥è¯?æˆ–è€…è¯´å› äØ“é€šç”¨è¯­è¨€æ•…æ„的摒弃领域ä¾èµ? 它在处ç†é¢†åŸŸç›¸å…³çš„é—®é¢˜çš„æ—¶å€™åÆˆä¸æ˜¯æœ‰æ•ˆçš?˜q™ç§æœ‰æ•ˆæ€§ä¸æ˜¯æ•°å­¦å«ä¹‰ä¸Šçš?而是å¯ä»¥˜q›è¡Œç‰©ç†åº¦é‡çš?</strong> <br /> 现在ErLang寚w€šä¿¡é¢†åŸŸå…ähœ‰è‰¯å¥½çš„æ”¯æŒï¼Œä½ å¯ä»¥è¯´å®ƒå¯¹äºŽé€šä¿¡é¢†åŸŸçš„结构是有效的。但是显然在ErLang中编写界é¢å°±ä¸å¦‚é¢å‘对象语言得心应手。在ErLang中实现界é¢ç»“构的时候,它对于界é¢ç»“构的表述ž®×ƒ¸æ˜¯é‚£ä¹ˆç¬¦åˆæˆ‘们直观的åQŒå¯¹æˆ‘们的实现过½E‹æ¥è¯´å°±ä¸æ˜¯é‚£ä¹ˆ¾l济的。因此在界颾l“构的实çŽîC¸ŠåQŒç›®å‰æˆ‘们å¯ä»¥è¯´ErLang相对于é¢å‘对象语­a€è€Œè¨€ž®±æ˜¯ä¸é‚£ä¹ˆæœ‰æ•ˆçš„ã€‚ä¹Ÿè®æ€½ ä¼šè¯´ErLangåšXXå‘å±•ä¹‹åŽæ€Žè§å¾—就更差。但是如果å…许引入未æ¥è¿™ä¸€å…ähœ‰æ— é™å¯èƒ½æ€§çš„å› å­åQŒæˆ‘们基本上无法针对现实的情况作出判断。例如我们目å‰åÆˆæ— æ³•è¯æ˜Žòq¿ä¹‰ç›¸å¯¹è®ºç›¸å¯¹äºŽç‰›é¡¿åŠ›å­¦æ˜¯æ›´åŠ ç²¾¼‹®çš„åQŒå¦‚æžœå…许在太阳星系中增加越æ¥è¶Šå¤šçš„éšè”½çš„æ‘„动星体的è¯ã€‚按照库æ©çš„¿U‘å­¦é©å‘½è®ºï¼Œæ¯ä¸€ä¸ªç§‘学时代都å…ähœ‰ç€è‡ªå·±çš„科学范å¼ï¼Œå®ƒæ€ÀL˜¯å…ähœ‰ç€å……分的自我辩护能力。范å¼çš„æ›´æ–°æ„å‘³ç€æ ¼å¼å¡”的崩溃。回™å‘ÖŽ†åÔŒ¼Œå“¥ç™½ž®¼åˆšæå‡ºæ—¥å¿ƒè¯´çš„æ—¶å€™ï¼Œòq¶ä¸æ˜¯åœ¨è®¡ç®—¾_‘Öº¦åQŒè®¡½Ž—简‹z性上真的˜qœèƒœæ‰˜å‹’密的地心è¯ß_¼Œåªæ˜¯æ—¥å¿ƒè¯´çš„哲学éšå–»æ’¼åŠ¨äº†äh心ã€?br /> <br />     我说<strong>实际上现在的通用语言也是无法有效承è²Domain Specific Structureçš?/strong>åQŒè¿™òq¶ä¸æ˜¯æ„æŒ‡åœ¨é€šç”¨è¯­è¨€ä¸­æ— æ³•é’ˆå¯¹ç‰¹å®šåº”ç”¨ä½œå‡ºç‰¹å®šæ‰©å±•æ¥æ”¯æŒç‰¹å®šçš„结构,而是说Domain Specific Structure是ä“Qæ„å¤šçš„ï¼Œä½œäØ“é€šç”¨è¯­è¨€å®ƒä¸åº”该把越æ¥è¶Šå¤šçš„¾l“构内置在语­a€ä¸?˜q™ä¸æ˜¯å¾ˆå¤šäh对ruby的希冀å?åQŒè¿™ä¹ˆåšå¯¹å®ƒæ¥è¯´é¦–先是举læµŽçš„ã€‚åŒæ—¶æŸäº›ç‰¹ŒDŠçš„¾l“æž„åœ¨ä¸€å®šçš„åœºæ™¯ä¸‹æ˜¯æœ‰ç”¨çš„ï¼Œä½†æ˜¯æŠŠå®ƒæŠ½è±¡å‡ºæ¥æ‰©å±•到通用领域的时候,会出现有效性的丧失。例如现在我的系¾lŸä¸­åªéœ€è¦?0个相互ä¾èµ–çš„¾U¿ç¨‹åQŒå¦‚果我们定æ­ÖMº†10˜q™ä¸ªæ•°å­—åQŒæ˜¾ç„¶æˆ‘们å¯ä»¥å‘展一¿U这个领域特有的高效的一些算法结构。而抽象到通用语言中的时候,昄¡„¶æˆ‘们åªèƒ½å‡è®¾¾U¿ç¨‹æ•°æ˜¯ä»ÀL„大,或者是充分大的åQŒè€Œæ— æ³•充分利ç”?0˜q™ä¸€é¢†åŸŸä¿¡æ¯åQŒå› æ­¤åœ¨˜q™ä¸ªæ„ä¹‰ä¸Šæˆ‘è¯´é€šç”¨è¯­è¨€ä¸æ˜¯æœ‰æ•ˆçš„ã€?br /> <br />     传统上数学ä‹É用的一¿U逯D¿‘èŒƒå¼æ˜¯ï¼šå½“n­‘‹äºŽæ— ç©·å¤§çš„æ—¶å€™ï¼Œåå·®­‘‹äºŽæ— ç©·ž®ã€‚现在物ç†å­¦å¯ÒŽ(gu¨©)•°å­¦çš„一¿U常è§è¦æ±‚å´æ˜¯ï¼šå½“né™å®šåœ¨æœ‰é™æ•°é‡èŒƒå›´çš„æ—¶å€™ï¼ˆä¾‹å¦‚10以内åQ‰ï¼Œæˆ‘们如何æ‰èƒ½ž®½é‡å‡å°‘åå·®ã€‚è¿™è¦æ±‚坹尿 ähœ¬æ•°å­¦˜q›è¡Œæ·±å…¥çš„ç ”½IÓž¼Œå®ƒæ‰€å…ähœ‰çš„物ç†å†…涵也是ä¸åŒçš„ã€?br /> <br />     在物ç†çš„视角下,我们所兛_¿ƒçš„䏿˜¯ä¸–界在¾lˆæžçš„æ„ä¹‰ä¸Šèƒ½å¦åˆ†è§£ä¸ºå‡½æ•°çš„å¤åˆåQŒä¸æ˜¯è¦å¯¼å‘一¿Uå®—æ•™å¼çš„é¡¶½CÆD†œæ‹œï¼Œè€Œæ˜¯å¼ø™°ƒè¦å°Šé‡è‡ªå·±æ‰€ç›´æŽ¥æ„Ÿå—到的åQŒå……分利用我们因为在˜q™ä¸ªä¸–界上存在而获得的直观æ„象åQŒå‘掘自å·Þqš„直觉åQŒè¿™æ ähˆ‘们æ‰èƒ½åœ¨æ— é™å¤æ‚的世界上借助有é™çš„ä¿¡æ¯åšå‡ºé€‰æ‹©ã€?br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/166472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-09 17:19 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/09/166472.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>关于通用语言能力的一些澄æ¸?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/09/166375.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sat, 08 Dec 2007 16:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/09/166375.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/166375.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/09/166375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/166375.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/166375.html</trackback:ping><description><![CDATA[    我在å‰é¢çš„æ–‡ç« ä¸­åˆ—ä‹D了大é‡ç‰©ç†å­¦ç›¸å…³çš„例孿¥è¯•图说明采用物ç†è§†è§’çš„å¿…è¦æ€?但是å¯èƒ½å› äؓ物ç†äº‹å®žå¤§å®¶ä¸ç†Ÿæ‚(zh¨¨n)?¾l“果直接被无视了. 在本文中我想有必è¦ä‹D一个èÊY仉™¢†åŸŸçš„例å­ã€‚åªæ˜¯åœ¨å®žé™…æ€è€ƒçš„˜q‡ç¨‹ä¸?我主è¦è¿˜æ˜¯åŸºäºŽç‰©ç†æ¦‚念进行推ç?<br />     <br />     首先我所è°?#8220;<strong>现在的通用语言</strong>”åQŒå®ƒòq¶ä¸æ„指“<strong>现在è‡Ïxœªæ¥æ‰€æœ‰é€šç”¨è¯­è¨€ä¹‹åˆé›?/strong>”åQŒè€Œæ˜¯æŒ?#8220;<strong>ç›®å‰æ­£åœ¨è¢«ä‹É用的æŸä¸€¿U通用语言</strong>”åQŒè¿™¿Uå·®åˆ«ä¾¿ä½“çŽ°äº†æˆ‘æ‰€å¼ø™°ƒçš„ä¸åŒçš„价倯D§‚å’Œä¸åŒçš„è§†è§’ã€‚ä¸æ˜¯ä¸€¿U覆盖一切的全称判断åQŒè€Œæ˜¯åœ¨ç‰¹å®šç‰©ç†çº¦æŸä¸‹çš„物ç†å®žä½“ã€?br />     <br />     现在无论我们设计什么大型系¾lŸï¼Œä¸€èˆ¬æ€ÀL˜¯è¦ä¼˜å…ˆè€ƒè™‘微内核设计。但是很昄¡„¶åQŒå¦‚果我们的¾~–程控制能力æžå¼ºåQˆå¼ºå¤§åˆ°ä¸çŽ°å®žçš„åœ°æ­¥åQ‰ï¼Œæˆ‘们å¯ä»¥æŠŠæ‰€æœ‰çš„代ç å®žçްä¸ÞZ¸€ä¸ªå¤§çš„æ•´ä½“。一个整体的好处是勿用质疑的åQŒå¦åˆ™Linux Torvaldsž®×ƒ¸ä¼šæœ‰ä¿¡å¿ƒå’ŒTanenbaum PK。但å³ä‹É是Linux, éšç€¾pÈ»Ÿ­‘Šæ¥­‘Šåºžå¤§ï¼Œåœ¨å†…æ æ€¸­ä¹Ÿè¡¥å……äº†å¾ˆå¤šæ¨¡å—½Ž¡ç†½{–略。我òq¶ä¸æŠŠè¿™¿U情å†ëŠœ‹ä½œæ˜¯ä¸€¿U现在技术能力ä¸åˆîC½æ‰€é€ æˆçš„结果,而是把它看作是在现实的物ç†çº¦æŸä¸‹æ‰€ä¿ƒæˆçš„一¿U必然的选择ã€?br />     <br />     按照¾cÖM¼¼çš„逻辑åQŒæˆ‘è®¤äØ“åœ¨é€šç”¨è¯­è¨€å±‚é¢ä¸åº”该导入越æ¥è¶Šå¤šçš„特å¾åQŒå®žé™…上也ä¸å¯èƒ½æŠŠæ‰€æœ‰å¯èƒ½çš„¾l“构方å¼éƒ½å†…¾|®åœ¨è¯­è¨€ä¸­ï¼ˆ˜q™ç§ä¸å¯èƒ½ä¸æ˜¯æ•°å­¦æ„义上的ä¸å¯èƒ½åQ‰ã€‚这会破å一¿U语­a€çš„纯‹z性,使得它æžéš„¡»´æŠ¤å’Œå‘å±•ã€‚äØ“äº†æ‰©å¤§é€šç”¨è¯­è¨€çš„æœ‰æ•ˆåº”ç”¨èŒƒå›ß_¼Œä¸€¿Uæ˜¾ç„¶çš„æ–¹å¼æ˜¯åœ¨è¯­è¨€ä¸­å®šä¹‰ä¸€äº›æ”¯æŒç»“构冋ơ抽象的机制åQŒé€šè¿‡å¯æ’拔的方å¼å®žçŽ°ä¸Ždomain相关的知识的èžåˆã€‚ruby˜q™æ ·çš„语­a€æä¾›äº†å¤§é‡çš„元编½E‹æœºåˆ? Witrixòq›_°ä¸­tpl模æ¿è¯­è¨€ä¹Ÿå‘展了一¾pÕdˆ—¾~–译期结构构造技æœ? 但是昄¡„¶å®ƒä»¬éƒ½ä¸èƒ½è¯´æ˜¯ç»“构抽象技术的¾lˆæžå½¢æ€? ç›®å‰æˆ‘对所有通用语言所æä¾›çš„结构抽象和¾l“æž„¾l„è£…èƒ½åŠ›éƒ½æ˜¯ä¸æ»¡æ„çš„,因此在Witrix中å‘展了一些领域特定的¾l“æž„èžåˆæ‰‹æ®µ.例如æ ÒŽ(gu¨©)®"¾l§æ‰¿"关系的结构诠é‡?¾l§æ‰¿å¯ä»¥çœ‹ä½œæ˜¯ä¸¤ä¸ªä¸€¾l´é›†åˆä¹‹é—´çš„覆盖关系), 我们扩展了extends的结构æ“作方å¼? 定义了广义的extends½Ž—å­. ˜q™äº›ç‰¹å®šçš„结构关¾pÈ›®å‰åœ¨é¢†åŸŸç‰¹å®šçš„BizFlow语言中体çŽ? 它们在通用语言中是难以惌™±¡çš? 而把它们攄¡½®åœ¨é€šç”¨çš„语­a€ä¸­ä¹Ÿæ˜¯ä¸åˆé€‚çš„(˜q™ç§å¤æ‚的结构èžåˆæ“作如果ä¸èƒ½ç»“åˆé¢†åŸŸçŸ¥è¯†è¿›è¡Œç›´è§‚çš„ç†è§£, 必将导å‘一¿Uæ€ç»´çš„æØœä¹?. ˜q™å°±æ˜¯æˆ‘所è°?现在的通用语言无法有效承è²Domain Specific Structure"çš„å«ä¹? ˜q™ç§è¯´æ³•其实¾cÖM¼¼äº?集åˆè®ºæ˜¯æ— æ³•包容所有数学结构的". 我们在集åˆè®ºä¸­åªç ”究最普é的关¾p?而特定的¾l“构在特定的学科中研½I? <br />     <br />     关于ErLang的例å­? æˆ‘çš„åŽŸæ„æ˜¯ç”¨æ¥è¯´æ˜Žç»“构问题是独立çš?它是<strong>和具体语­a€æ— å…³</strong>çš?å›_ŸºäºŽæ¶ˆæ¯ä¼ é€’å‘生数æ®å…³è”çš„­‘…è½»é‡çñ”˜q›ç¨‹æ¨¡åž‹˜q™ä¸€¾l“æž„ä¸æ˜¯å’ŒErLang语言¾l‘定çš? 为此我特æ„加了一ŒDµè¯´æ˜?"˜q™é‡Œä¸æ˜¯è¦è¯æ˜ŽæŸ¿U语­a€ä¸­æ— æ³•æ˜q°è¿™äº›ç»“æž„ï¼Œè€Œæ˜¯è¯´ç»“æž„æ˜¯å®¢è§‚å­˜åœ¨çš„ï¼Œå®ƒåÆˆä¸æ˜¯è¦åœ¨åŸºç¡€è¯­è¨€å±‚é¢å¾—到充分解决çš?.<strong> å³ä‹É在语­a€å±‚颿ˆ‘们òq¶ä¸è§£å†³˜q™ä¸ª¾l“构问题, 它ä»ç„¶å®¢è§‚存在ç€,我们ä»ç„¶å¯ä»¥ç”¨å…¶ä»–的技术手ŒDµåŽ»å®šä¹‰,去解å†? 解决了这个结构问题就必然会带¾l™æˆ‘们ä­h(hu¨¢n)å€?而无论我们ä‹É用何¿U实现语­a€</strong>.<br /> <br />     "ä»€ä¹ˆåŽŸå› ï¼Œä»€ä¹ˆæ ·çš„çº¦æŸæ¡ä»?坯D‡´äº†çŽ°åœ¨çš„é€šç”¨è¯­è¨€æ˜¯æ— æ³•æœ‰æ•ˆæ‰¿è½½æ¶ˆæ¯ä¼ é€’å‘生数æ®å…³è”çš„­‘…è½»é‡çñ”˜q›ç¨‹æ¨¡åž‹". ˜q™ä¸€å‘½é¢˜òq¶ä¸æ˜¯æˆ‘原文中论点的åˆç†æŽ¨è®º.æˆ‘åÆˆä¸æ˜¯è¦è¯´æŸä¸€¿U特定的领域¾l“构无法在一¿U特定的通用语言中得到支æŒ?而是说如果我们认ä¸ÞZ¸€¿U通用语言是比较稳定的,则它一般选择åªå†…¾|®ä¸€äº›é€šç”¨çš„ä¸å¸¦æœ‰é¢†åŸŸç‰¹å®šå«ä¹‰çš„æ¦‚å¿? 而缺ä¹é¢†åŸŸçŸ¥è¯?æˆ–è€…è¯´å› äØ“é€šç”¨è¯­è¨€æ•…æ„的摒弃领域ä¾èµ? 它在处ç†é¢†åŸŸç›¸å…³çš„é—®é¢˜çš„æ—¶å€™åÆˆä¸æ˜¯æœ‰æ•ˆçš?˜q™ç§æœ‰æ•ˆæ€§ä¸æ˜¯æ•°å­¦å«ä¹‰ä¸Šçš?而是å¯ä»¥˜q›è¡Œç‰©ç†åº¦é‡çš? çŽ°åœ¨ä¹Ÿæœ‰å¾ˆå¤šäºø™®¤ä¸ºErLangòq¶ä¸æ˜¯çœŸæ­£çš„通用语言,它是针对通信领域˜q›è¡Œäº†ç‰¹å®šç»“构调整的, 是内¾|®äº†é¢†åŸŸç‰¹å®š¾l“æž„çš? 而目å‰åœ¨ErLang上å¾ç«‹GUI的努力也òq¶ä¸½Ž—是æˆåŠŸ. <br />     <br />     åœ¨å‰æ–‡ä¸­æˆ‘ä‹D了一个例å­è¯•图说æ˜?"在é™å®šçš„物熾U¦æŸä¸‹ï¼Œæˆ‘们的选择范围会大大羃?y¨­u)?. "比如说我现在有无½I·å¤š¿Uæ–¹å¼ä»ŽåŒ—京跑到上æ“våQŒä½†æ˜¯å¦‚æžœé™å®šåªå…许ç”?凿±½æ²¹ï¼Œé‚£ä¹ˆæˆ‘们的选择ž®Þp¿‘乎于0". ˜q™é‡Œòq¶ä¸æ˜¯è¦è¯´æ˜ŽåŠ ä¸Šç‰©ç†¾U¦æŸä¹‹åŽ,我们便没有ä“Q何选择äº?而是说物ç†çº¦æŸå¯¹æ— ç©·å¤šçš„å¯èƒ½æ–¹å¼èµ·äº†<strong>é™å®šé€‰æ‹©</strong>的作ç”? 它最¾lˆé€ æˆæˆ‘们在具体的物ç†åœºæ™¯ä¸‹å¯èƒ½åªæœ‰éžå¸¸æœ‰é™çš„选择. 例如现在å…许ç”?00凿±½æ²? 有多ž®‘秘q输方å¼å¯ä»¥æ»¡èƒöæˆ‘ä»¬çš„è¦æ±? 如果å…许1000å‡å‘¢? 但是如果ä¸è€ƒè™‘所有物ç†çº¦æ? 我们是å¦èƒ½å¤Ÿè¯æ˜Žè¯? 飞机和拖拉机的è¿è¾“能力是完全一致的, å› äØ“å®ƒä»¬éƒ½èƒ½ä»ŽåŒ—äº¬å¼€åˆîC¸Š‹¹? <br /> <br />     我的观点是结构问题是独立存在çš?它具有自íw«çš„ä»·å€? 研究它也需è¦å¾ç«‹ç‰¹å®šçš„价倯D§‚. 一个结构å¯ä»¥ä½“çŽîCؓ语言上的æŸç§è¯­æ³•特å¾, 也å¯ä»¥é€šè¿‡æ¡†æž¶½{‰å®žçŽ? 或者表çŽîCØ“æŸç§è®¾è®¡æ¨¡å¼,æŸç§¾~–程技å·? 我们在æ€è€ƒç»“æž„é—®é¢˜çš„æ—¶å€™åÆˆä¸æ˜¯ä»Žç‰¹å®šè¯­­a€çš„æœºåˆ¶å‡ºå‘çš„, 当语­a€ä¸ç›´æŽ¥æ”¯æŒçš„æ—¶å€™æˆ‘们å¯ä»¥å‘展特定的实现技术支æŒå®ƒ. 在未æ¥çš„æ—¥å­é‡ŒæŸä¸ªç»“æž„å¯èƒ½è¢«è¯æ˜Žå…ähœ‰æ™®é€‚的价å€?å®ƒä¼šè¢«å¸æ”¶åˆ°æŸä¸ªé€šç”¨è¯­è¨€ä¸­æˆä¸ºæ‰€æœ‰ç¨‹åºçš„æ”¯æ’‘¾l“æž„, 但是更多的结构永˜qœéƒ½ä¸ä¼š˜q›å…¥é€šç”¨è¯­è¨€, 而是居留在æŸä¸ªç‰¹å®šçš„领域. 通用语言的å‘å±•åÆˆä¸æ˜¯å®Œå…¨åŸÞZºŽæŠ½è±¡çš„æ•°å­¦åˆ†æžè€Œè¿›è¡Œçš„, 它å¯ä»¥ä»Žæ›´åŠ ä¸°å¯Œçš„ç‰©ç†ä¸–界中å¸å–è¥å…». 当一¿U结构进入通用语言的时å€? 它所带æ¥çš„ç»å¯¹ä¸åªæ˜¯ä¸€¾l„æ•°é‡å…³¾p?è€Œæ˜¯åŒæ—¶å¸¦æ¥ä¸€¾pÕdˆ—¾l过实践‹‚€éªŒçš„物ç†è¯ é‡Š. <br /> <br />     我所谓的领域òq¶ä¸æ˜¯æŒ‡ä¸šåŠ¡é¢†åŸŸ, 而是¾l“构领域, 一个å¯ä»¥å®šä¹‰ç‰¹å®šç»“构的物ç†åœºæ™¯. 一个特定的¾l“æž„ä»ç„¶å¯ä»¥æ”¯æ’‘ç€ä»ÀL„多的具体应用. 例如CRUDæ“作å¯ä»¥ä½œäØ“æ•°æ®½Ž¡ç†æ¨¡åž‹. BizFlowä½œäØ“ç•Œé¢å’Œå•实体的交互模åž?<br /> <br />     函数å¼è¯­­a€ä¸ºæˆ‘们æä¾›äº†ä¸€¿U具体的技术工å…? 但是在现实的开å‘中, ä¸ÞZº†æœ‰æ•ˆçš„处ç†ç»“构问é¢? 昄¡„¶æˆ‘们需è¦å¤š¿U视角的¾l„åˆ, è€Œä¸æ˜¯æŠŠæ‰€æœ‰å¯æƒŒ™§çš„图景都¾U¯åŒ–为函æ•? 我们对世界的体验是多样化çš? ˜q™å°±æ˜¯æˆ‘所è°?世界比函数的集åˆè¦å¤æ?çš„å«ä¹? <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/166375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-09 00:16 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/09/166375.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>对语­a€ä¸Žç»“构的说明http://www.aygfsteel.com/canonical/archive/2007/12/08/166187.htmlcanonicalcanonicalFri, 07 Dec 2007 18:51:00 GMThttp://www.aygfsteel.com/canonical/archive/2007/12/08/166187.htmlhttp://www.aygfsteel.com/canonical/comments/166187.htmlhttp://www.aygfsteel.com/canonical/archive/2007/12/08/166187.html#Feedback7http://www.aygfsteel.com/canonical/comments/commentRss/166187.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/166187.html    首先请ä¸è¦è½»æ˜“怀疑我的知识水òqŸë€‚当然如果æ€ÀL— æ³•èšé›†è“v­‘›_¤Ÿçš„æ³¨æ„力æ¥ç†è§£åˆ«äºø™¯è¯­ä¸­çš„细节,我也无è¯å¯è¯´ã€?br />    容纳他äh的观点就æ„味ç€ä¸è¦æ€Õdœ¨è‡ªå·±çš„è¯è¯­ä½“¾pÖM¸­è¯•图扑ֈ°å例. 一个ähæ€ÀL˜¯å—é™äºŽä»–的知识范å›ß_¼Œå› æ­¤ä»–也¾l常在自å·Þqš„知识范围内篡æ”ÒŽ(gu¨©)›²è§£åˆ«äººçš„æ„è§ã€‚我从未说过 "一个具体的问题是现有的通用语言无法æè¿°çš?. 我说的是"现实开å‘中所需è¦å¤„ç†çš„¾l“构问题òq¶ä¸æ˜¯åœ¨è¯­è¨€å±‚é¢å¾—到充分解决çš?, "现在的通用语言也是无法有效承è²Domain Specific Structureçš?. è¯äh³¨æ„我对定语和动è¯çš„选择。其实我已ç»ä¸¾äº†å¤§é‡çš„例孿¥˜q›è¡Œè¯´æ˜ŽåQŒä½†å¯èƒ½å› äؓ大多æ•îCh䏿˜¯ç‰©ç†èƒŒæ™¯,对相关的内容ä¸ç†Ÿæ‚(zh¨¨n)‰ï¼Œæ‰€ä»¥ç›´æŽ¥æ— è§†äº†ã€‚这也很对,½W¦åˆç‰©ç†å­¦çš„¾_„¡¥žã€?br />
   å¯èƒ½å¤§å¤šæ•îCh都知é“函数å¼è¯­è¨€å’Œå‘½ä»¤å¼è¯­è¨€éƒ½æ˜¯å’Œå›¾ç‰|œº½{‰ä­h(hu¨¢n)的,因此它具有柿U终æžèƒ½åŠ›ï¼Œæ€€ç–‘å®ƒæ— å¼‚äºŽæ€€ç–‘æˆ‘ä»¬ä¸–ç•Œå­˜åœ¨çš„åŸºç¡€ã€‚ä½†æ˜¯è¯·æ³¨æ„åQŒè¿™¿Uç­‰ä»äh€§æ˜¯æ•°å­¦æ€§çš„ã€‚å®ƒæ½œåœ¨çš„è¦æ±‚是无é™çš„能é‡å’Œæ—‰™—´æ¶ˆè€—。如果在é™å®šçš„物ç†çº¦æŸä¸‹åQŒæˆ‘们会å‘现我们的选择范围会大大羃?y¨­u)®ã€‚所以我è¯?函数å¼è¯­­a€å’Œå‘½ä»¤å¼è¯­è¨€çš„计½Ž—能力相åŒï¼Œä½†æ˜¯åœ¨å…·ä½“的情åŞ下它们的æè¿°èƒ½åŠ›æ˜¯ä¸åŒçš„". 比如说我现在有无½I·å¤š¿Uæ–¹å¼ä»ŽåŒ—京跑到上æ“våQŒä½†æ˜¯å¦‚æžœé™å®šåªå…许ç”?凿±½æ²¹ï¼Œé‚£ä¹ˆæˆ‘们的选择ž®Þp¿‘乎于0。飞机和汽èžRçš„è¿è¾“能力是相åŒçš„å—。物ç†å­¦çš„一个基本精¼œžåœ¨äºŽä¸€¿Uç‰©ç†æ€§çš„¾U¦æŸæ˜¯å§‹¾lˆå­˜åœ¨çš„。而事实上åQŒæˆ‘们在实际工作中也æ€ÀL˜¯åœ¨å„¿U有é™çš„ç‰©ç†æ¡äšg下工作ã€?br />
   ä¹Ÿè®¸æœ‰äº›äºø™®¤ä¸ø™¿™¿U区分是无关紧è¦çš„,我们åªå…³å¿ƒæŸ¿U终æžçš„东西。但是物ç†å­¦ä¸­æœ‰ç€å¤ªå¤šçš„例è¯ï¼Œè¯´æ˜Žåœ¨æœ‰é™çº¦æŸä¸‹åQŒæ•´ä¸ªç³»¾lŸå‘ˆçŽ°å‡ºå®Œå…¨ä¸åŒçš„æ€§è´¨ã€‚在通信领域我们都知é“Shannon定ç†åQŒå®ƒçš„物ç†è¯ é‡Šæ˜¯åœ¨æœ‰å™ªå£°çš„ä¿¡é“上å¯ä»¥æœ‰æ•ˆçš„è¿›è¡?strong>准确的信æ¯ä¼ é€’。但是这一诠释åªèƒ½åœ¨æœ‰é™çš„æ•°å­¦¾_‘Öº¦åQˆè¿œå¤§äºŽæˆ‘们实际需求的¾_‘Öº¦åQ‰ä¸Šæˆç«‹, 在ç»å¯¹å‡†¼‹®çš„æ•°å­¦æ„义上,˜q™æ˜¯ä¸å¯èƒ½çš„事情ã€?br />
   你觉得现在的通用语言åšè“v领域相关的东西æ¥å¾ˆæ–¹ä¾¿å—åQŒè¿™ž®±æ˜¯æˆ‘所谓无法有效承载的å«ä¹‰ã€‚在˜q™é‡Œæˆ‘也没有å¦è®¤"未æ¥çš„牛语言å¯ä»¥è½ÀL¾æžå®šç›®å‰éšùN¢˜"çš„å¯èƒ½æ€§ã€?br />
   å› äØ“æ‰€æœ‰çš„è½¯äšg设计最¾lˆéƒ½è¦è½å®žåˆ°æŸç§ä»£ç å®žçŽ°ä¸Šï¼Œæ‰€ä»¥æ€Žä¹ˆä¼šæœ‰ä»€ä¹ˆç¥ž¿U˜çš„软äšg¾l“构是现有的语言无法æè¿°çš„呢。但是ErLang中é‚£¿U高òq¶å‘åQŒæ”¯æŒé”™è¯¯æ¢å¤çš„½E‹åº¾l“构是在其他语言中能够轻æ‘Ö®žçŽ°çš„å—。很多äh䏿˜¯åœ¨æ½œæ„识中认为ErLangçš„æˆåŠŸæ˜¯å‡½æ•°å¼è¯­­a€æŽ’他性的æˆåŠŸå—ï¼Œä¸æ˜¯è®¤äؓ命ä×oå¼è¯­­a€æ— è®ºå¦‚何实现ä¸äº†ErLang的程åºç»“构的å—。很昄¡„¶åQŒåœ¨å‘½ä×oå¼è¯­­a€ä¸­æ˜¯æ— æ³•直接实现ErLang中的½E‹åº¾l“构的,å¦åˆ™å®ƒå°±å˜æˆäº†å‡½æ•°å¼è¯­è¨€åQŒä½†æ˜¯æ‰€æœ‰å‘生在ErLang世界中的事实都一样å¯ä»¥å‘生在命ä×oå¼è¯­­a€çš„世界中。ErLang语言的编译器å¯ä»¥æ˜¯ä‹É用命令å¼è¯­è¨€å®žçŽ°çš„ï¼Œåœ¨ç»ˆæžçš„æ„ä¹‰ä¸Šï¼Œè¯­è¨€ä¹‹é—´èƒ½æœ‰ä»€ä¹ˆåŒºåˆ«å‘¢åQ?br />
   我说"实际上现在的通用语言也是无法有效承è²Domain Specific Structureçš?, ˜q™è¿˜æœ‰å¦ä¸€å±‚å«ä¹‰ã€‚通用语言设计æ€ÀL˜¯è¦è€ƒè™‘到内¾|®ç»“构的æŸç§é€šç”¨æ€§ï¼Œè®¾è®¡æ—¶èƒ½å¤Ÿå‡­ä¾çš„ä¿¡æ¯è¾ƒå°‘åQŒå› æ­¤ä¸å¯èƒ½ç›´æŽ¥åˆ‰™€ æŸ¿U夿‚的领域相关的结构。而目å‰å·²çŸ¥çš„通用语言中æä¾›çš„¾l“构抽象的手ŒDµä¹Ÿä¸å¤Ÿå¼ºå¤§åQˆå®žé™…上我认ä¸ÞZ“Q何语­a€éƒ½ä¸ä¼šå¼ºå¤§åˆ°å†…置所有结构,也无法æä¾›æ‰€æœ‰çš„¾l“构抽象手段åQ‰ï¼Œ 相当于是把领域结构问题推¾l™ç¨‹åºå‘˜è§£å†³ã€‚è¿™ž®±å¦‚åŒCè¯­è¨€æŠŠå†…å­˜ç®¡ç†æŽ¨¾l™ç¨‹åºå‘˜è§£å†³ä¸€æ —÷€‚现在ruby比较‹¹è¡Œä¸å°±æ˜¯å› ä¸ºå®ƒèƒ½å¤ŸåЍæ€å¤„ç†å¾ˆå¤šç»“构问题å—åQŒä½†æ˜¯å®ƒçŽ°åœ¨æ‰€ä½œçš„ä¸€åˆ‡å°±æ˜¯èƒö够的了å—。难é“二å年之åŽå†æ¥çœ‹è¿™ä¸ªè¯­­a€åQŒä¸èƒ½å¤Ÿå‘现它存在ç€å·¨å¤§çš„æ”¹˜q›ç©ºé—´å—。我们目å‰åœ¨Witrix中通过tpl模æ¿è¯­è¨€åQŒbizflow extends½{‰æœºåˆÓž¼Œ¾l“åˆæ•´ä½“框架设计实现了一些与rubyä¸åŒçš„结构构造方法。这些手ŒDµéƒ½æžå¤§çš„增å¼ÞZº†æˆ‘们é¢å¯¹é¢†åŸŸé—®é¢˜æ—¶çš„信心åQŒä¹Ÿ¼‹®ä¿äº†æˆ‘们的领域知识是技术层é¢ä¸Šå¯ç§¯ç´¯çš„。但是å³ä½¿è¿™æ øP¼Œæˆ‘对½E‹åºå‘展的现状就是满æ„çš„å—?éšùN“ä¸å­˜åœ¨æ›´åŠ ä¸°å¯Œçš„¾l“构知识½{‰å¾…我们åŽÕd‘现å—åQŸä¸€èˆ¬ähæ€ÀL˜¯ä¹ æƒ¯æŽ¥å—å·²ç»å­˜åœ¨çš„现实,在有é™çš„èŒä¸šç”Ÿæ„Ó中把它们当作ä¸å˜çš„真ç†ï¼Œå´æ²¡æœ‰è€å¿ƒçš„去æ€è€ƒå¦‚何去改å˜ã€?br />
  æˆ‘è®¤ä¸ºå¾ˆå¤šç»“æž„é—®é¢˜ä¸æ˜¯éœ€è¦åœ¨è¯­è¨€å±‚é¢å¾—到解决的,而是应该在独立的¾l“构层(òq›_°åQŒæ¡†æžÓž¼‰˜q›è¡Œè§£å†³ã€‚è¿™æ„å‘³ç€æ²¡æœ‰å¿…è¦åœ¨è¯­­a€å±‚é¢ç›´æŽ¥å†…ç½®æŸç§ç‰¹å®šçš„结构,内置æŸç§ç‰¹å®šçš„结构抽象手ŒDüc€‚这基本¾cÖM¼¼äºŽè¯´ä¸è¦æŠŠé›†åˆè®ºæ‰©å¤§åˆ°åŒ…嫿‰€æœ‰çš„æ•°å­¦å…³ç³»åQŒè¯·åœ¨åˆ«çš„å­¦¿U‘分支中˜q›è¡Œç ”ç©¶ã€‚éœ€è¦æ³¨æ„çš„æ˜¯ï¼Œæˆ‘æ‰€è°“çš„é¢†åŸŸçŸ¥è¯†ä¸æ˜¯ç‰¹å®šçš„业务知识,而是从业务知识中å¯ä»¥åˆ†æžå¾—到的柿U更加通用的普适的¾l“构知识åQŒç”šè‡Ïx˜¯å¯ä»¥ä½¿ç”¨æ•°å­¦˜q›è¡Œ¾_„¡¡®æè¿°çš„ã€?br />
  çŽîC»£è½¯äšgå‘展的时间还很短åQŒä¸Žæ•°å­¦å’Œç‰©ç†å­¦˜q™æ ·æ·±åˆ»çš„å­¦¿U‘相比,它无疑是相对òq¼ç¨šçš„,是待æˆé•¿çš„,是更加的ä¸å®Œ¾ŸŽçš„。在½E‹åºæž„å¾çš„基本问题上òq¶æ²¡æœ‰æŠ½è±¡å‡ºä»€ä¹ˆå¯ä»¥å®žé™…æ“作的¾_„¡¡®è§„律。这是所谓Pattern在èÊY件业‹¹è¡Œçš„部分原因:我们希望用这¿UåŠå½¢å¼åŒ–çš„æ–¹å¼æ•获æŸç§æ€è€ƒçš„¾l“果。但是èÊY件真的除了基于抽象数学的全局的全¿U°æ€§çš„è¯æ˜Žä¹‹å¤–åQŒä¸èƒ½å¤Ÿåœ¨å±€éƒ¨è¿›è¡ŒæŸ¿Uæ›´åŠ å¤æ‚,更加严è°}的分æžå—ã€?br />
   我们说结构问题是独立的,˜q™ä¹Ÿæ„味ç€å®ƒå’Œå…·ä½“的实现语­a€å…ähœ‰æŸç§æ„义上的分离性。通过一¿U语­a€ä¹¦å†™çš„结构å¯ä»¥åœ¨å¦ä¸€¿U语­a€ä¸­å¾—到表达。我们å¯ä»¥å¾ç«‹è¯­­a€ä¸­ç«‹çš„æŠ€æœ¯ç»“构。一¿U所谓的¾l“构在概念上å…ähœ‰æŸç§¼‹®å®šçš„åÅžæ€ï¼Œæˆ‘们å¯ä»¥è„Þq¦»å…·ä½“的语­a€æ¥ç†è§£å®ƒã€‚例如我è¯?é¢å‘对象的ç‘ô承关¾pÖM»Ž¾l“构观点上看是两个一¾l´é›†åˆä¹‹é—´çš„覆盖关系". 在java中我们å¯ä»¥ç›´æŽ¥ä‹É用语­a€æä¾›çš„ç‘ô承机åˆÓž¼Œè€Œåœ¨C语言中我们就需è¦å¾ç«‹æŸ¿U结构体åQŒæ‰‹åŠ¨ç»´æŒæ‰€æœ‰çš„æŒ‡é’ˆå…Œ™”。而在Witrixòq›_°ä¸­ï¼Œæˆ‘们从ç‘ô承的¾l“构诠释出å‘åQŒå®šä¹‰äº†æ›´åР夿‚çš„extends½Ž—å­åQŒè¿™ž®±éœ€è¦åˆ©ç”¨java语言¾~–制特定的parseræ¥å®žçŽîCº†ã€‚但是显ç„Óž¼Œåœ¨æ€è€ƒçš„æ—¶å€™æˆ‘们所有的æ€ç»´æŒ‡å‘是结构本íw«ï¼Œè€Œä¸æ˜¯ä“Q何通用语言的语法ã€?br />
   在物ç†å­¦ä¸­ï¼Œé€šè¿‡æ‘„åŠ¨åˆ†æžæˆ‘们å¯ä»¥æ¸…楚地æ„识到åQšåŒæ ·ä¸€ä¸ªç‰©ç†çŽ°è±¡å¯¹åº”çš„æ•°å­¦æ¨¡åž‹å¯ä»¥æ˜¯ä¼—多的åQŒä½†æ˜¯åœ¨ç‰¹å®šçš„傿•°åŒºæˆ‘们会选择æŸç§ç‰¹å®šçš„æ•°å­¦è¡¨˜qŽÍ¼Œòq¶ç¡®å®šå…¶ä¸­çš„å¾…å®šå‚æ•°ã€?br />
   delta函数是物ç†å­¦å®¶ç‹„拉克引入的,在Schwatz引入分布概念建立òq¿ä¹‰å‡½æ•°è®ÞZ¹‹å‰ï¼Œç‰©ç†å­¦å®¶ä»¬å·²¾lä‹Éç”¨è¿™ä¸€å‡½æ•°å·¥ä½œäº†å¾ˆå¤šå¹´ã€‚åŽæ¥Abraham Robinsen利用数ç†é€»è¾‘æ–ÒŽ(gu¨©)³•åQŒå¾ç«‹äº†éžæ ‡å‡†åˆ†æžï¼Œé€šè¿‡æ¨¡åž‹è®ºçš„æ–ÒŽ(gu¨©)³•¾_„¡¡®å®šä¹‰äº†æ— ½I·å°çš„æ¦‚å¿µï¼Œä»Žæ›´åŠ ç›´æŽ¥çš„è§’åº¦è®ø™¯äº†deltaçš„åˆç†æ€§ã€‚但是在物ç†å­¦å®¶çœ‹æ¥åQŒè¿™äº›æ•°å­¦åˆæœ‰ä»€ä¹ˆåŒºåˆ«å‘¢åQŸç‰©ç†å­¦åªæ˜¯æŒ‰ç…§ç‰©ç†çš„è¯ é‡Šè¿›è¡Œå·¥ä½œï¼Œå…·ä½“çš„æ•°å­¦åªæ˜¯å®ƒå¯é€‰çš„工具而已ã€?br />
   物ç†çš„真ç†åÆˆä¸æ˜¯è•´å«åœ¨æ•°å­¦ä¸­çš„ï¼Œå®ƒéœ€è¦æˆ‘们独立的探烦åQŒä»Žä¸Žæ•°å­¦ä¸åŒçš„观点˜q›è¡Œæ€è€ƒï¼Œ‹‚€éªŒï¼Œæœ€¾lˆæˆ‘们æ‰èƒ½åšå‡ºçœŸæ­£çš„å‘现。广义相对论å¯ä»¥é‡‡ç”¨Riemman几何˜q›è¡Œæè¿°åQŒä½†æ˜¯å®ƒçš„物ç†è¯ é‡Šå´æ˜¯Einsteinæå‡ºçš? æ²¡æœ‰äºø™¯´Riemann或者Hilbertå‘现了广义相对论。å¦å¤–一斚w¢åQŒå› ä¸ºEinstein的工作触å‘了对于微分几何的更加深入的研究åQŒé ç€ç‰©ç†ç›´è§‰çš„导引,我们ž®†è¿™ä¸€æ•°å­¦åˆ†æ”¯æŽ¨è¿›åˆîCº†éš¾ä»¥æƒŒ™±¡çš„æ·±åº¦ã€?数学是无法涵盖物ç†å­¦çš?. ˜q™ä¸æ˜¯è¯´æœ€¾lˆç‰©ç†å­¦æ— æ³•采用数学语言˜q›è¡Œæè¿°åQŒè€Œæ˜¯è¯´åœ¨˜q™ä¸€å‘展˜q‡ç¨‹ä¸­ï¼Œæ‰€æœ‰æ€æƒ³çš„æŽ¨åŠ¨æ¥æºäºŽç‰©ç†å­¦çš„¾l验åQŒæ¥æºäºŽæˆ‘们在这个物质世界上所˜q›è¡Œçš„åå¤éªŒè¯ã€‚䏿˜¯åœ¨ä¸€ä¸ªå°é—­çš„ž®å±‹ä¸­ï¼Œæ•´å¤©æ‘†å¼„å„ç§æ•°å­¦½W¦å·åQŒæˆ‘ä»¬å°±èƒ½å¤Ÿå‘æ˜Žæ‰€æœ‰çš„物ç†å…¬å¼æ‰€å¯¹åº”的数学。实际上åQŒçŽ°åœ¨å­¦æœ¯ç•Œæ™®éæ‰¿è®¤åQŒæ²¡æœ‰ç‰©ç†å­¦çš„æŽ¨˜q›ï¼Œå¾ˆå¤šæ•°å­¦çš„进展是ä¸å¯èƒ½å‘生的ã€?br />
   物熾pÀL¯å¤©éƒ½åœ¨æ¼”½Ž—ç€Feynman路径¿U¯åˆ†, 但是所有äh都知é“è¿™æ˜¯æ²¡æœ‰ä»€ä¹ˆä¸¥æ ¼çš„æ•°å­¦ä¾æ®çš?ç›®å‰òq¶æ— æ³•定义èµ\径积分的收敛æ€?但是所有ähå¯ÒŽ(gu¨©)­¤é¿è€Œä¸è°? åªè¦å½¢å¼æ¼”ç®—åˆæ³•,物ç†é¢„测½W¦åˆå®žéªŒ, åˆç†æ€§çš„è¯æ˜Žåªæ˜¯æ•°å­¦å®¶ä»¬çš„事æƒ? 在é‡å­åœºè®ÞZ¸­æ‰€é‡‡ç”¨çš„釿•´åŒ–(Renormalization)æ–ÒŽ(gu¨©)³•ä¸è¿‡æ˜¯å›žé¿æ— ½I·å¤§é—®é¢˜çš„一¿UåÅžå¼æ‰‹ŒD?我们ä»ç„¶æ— æ³•在数学层é¢å¯¹æ‰€æœ‰çš„æ¼”算都给予åˆç†åŒ–解释. 在更多的物ç†åˆ†æ”¯ä¸­å·¥ä½œï¼Œä½ å°±ä¼šå‘现物ç†å­¦å®¶çš„胆å­ä¸æ˜¯ä¸€èˆ¬çš„å¤§ã€‚ä¹Ÿè®¸åœ¨æœªæ¥æˆ‘们能够å‘现˜q™äº›ç‰©ç†˜q‡ç¨‹èƒŒåŽæ•°å­¦æœºåˆ¶çš„ç²¾¼‹®å®šä¹? 但也许最¾lˆæˆ‘们也无法扑ֈ°åˆé€‚的定义方å¼. 但这对物ç†å­¦å®¶æ¥è¯? òq¶ä¸æ˜¯å¾ˆå¤§çš„æ‰“击.å› äØ“æŒ‡å¼•æˆ‘ä»¬çš„æ˜¯ç‰©ç†ç›´è§‰åQŒæ˜¯ç‹¬ç«‹äºŽæ•°å­¦çš„物质世界的æ„象ã€?br />
   我所惌™®¨è®ºçš„䏿˜¯æŸç§¾lˆæžæ„义上的å¯èƒ½æ€§ï¼Œä¸æ˜¯¾l对概念之间的冲½H,而是在物ç†çŽ°å®žçš„¾U¦æŸä¸‹ï¼Œæˆ‘们如何æ‰èƒ½æœ‰æ•ˆå·¥ä½œçš„问题。我已ç»åå¤è¡¨è¿°äº†è‡ªå·Þqš„观点: "¾l“æž„æ˜¯å¯æŠ½è±¡çš„ï¼Œæ˜¯å…·æœ‰ç‹¬ç«‹æ„义的。这ž®±æ˜¯Witrix所æå‡ºçš„é¢å‘ç»“æž„çš„è®¾è®¡è§†è§’ã€‚ä¸æ˜¯å¼ºè°ƒå¯¹è±¡çš„æ‰€è°“业务å«ä¹‰ï¼Œä¸æ˜¯å¼ø™°ƒæŸç§é€šç”¨è¯­è¨€åQˆä¾‹å¦‚rubyåQ‰çš„ç‰|´»çš„语法结构。在˜q™ä¹‹é—´å­˜åœ¨ç€åŽšé‡çš„å…·æœ‰ç‰©ç†æ„义的å¯ä»¥˜q›è¡Œ¾l“构分æžçš„æŠ€æœ¯å±‚". 也许有äh觉得我说的这是废è¯? 但是当系¾lŸåŒ–的执行一¿Uæ€æƒ³çš„æ—¶å€?ž®×ƒ¼šæ­ç¤ºå‡ºæœªé¢„料到的å¯èƒ½æ€? 整个Witrixòq›_°½Ž€å•的说è“væ¥å°±æ˜?é¢å‘¾l“构的çñ”列分æž?/strong>", 但是如何扑ֈ°åˆé€‚的技术åÅžå¼æ¥ä½“现˜q™ä¸€æ€æƒ³,å´ç»å¯¹ä¸æ˜¯ä¸€ä»¶åã^凡的事情. "在Witrix中我们实现的代ç é‡ç”¨½E‹åº¦å’Œç¨‹åºæ•´ä½“结构控制能力是­‘…è¶Šäº†ç›®å‰æ‰€æœ‰å·²çŸ¥çš„å…¬å¼€æŠ€æœ¯çš„ã€‚è¿™ä¸æ˜¯ä»€ä¹ˆå“²å­¦ï¼Œè€Œæ˜¯æˆ‘们在残é…ïL(f¨¥ng)š„商业竞争中得以生存的资本".http://canonical.javaeye.com/blog/126467

   在我看æ¥åQŒè®¡½Ž—机领域充斥瀾U¯æ•°å­¦çš„æ·±æ²‰é想和从工程实践而æ¥çš„è½»ä½Õd¸¸è¯†ï¼Œ˜q˜æ²¡æœ‰æ³¨æ„到物ç†å­¦æ‰€èƒ½å¸¦æ¥çš„ä¸åŒçš„åŒæ äh·±åˆÈš„视角。我常说åQŒå¥½å¥½å­¦ä¹ ç‰©ç†æ˜¯å¿…è¦çš„ï¼Œå› äØ“˜q™ä¸ªä¸–界˜qœæ¯”你想象的è¦å¤æ‚的多ã€?br />



]]>
关于函数å¼è¯­­a€çš„一些说æ˜?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/06/165900.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Thu, 06 Dec 2007 14:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/06/165900.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/165900.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/06/165900.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/165900.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/165900.html</trackback:ping><description><![CDATA[    我的观点òq¶ä¸æ˜¯ä»€ä¹ˆå…·ä½“çš„½E‹åº¾l“构问题ä¸èƒ½ç”¨å‡½æ•°å¼è¯­è¨€å¤„ç†.我所è¦è¡¨˜q°çš„æ˜¯è¿™å’Œå‡½æ•°å¼è¯­è¨€ä¸­èƒ½å¦åŠ å…¥ç»“æž„è§£å†³ä“Qæ„夿‚é—®é¢˜æ— å…Ÿë€‚äØ“ä»€ä¹ˆæ‰€æœ‰çš„é—®é¢˜ä¸èƒ½åœ¨é›†åˆè®ºä¸­è§£å†»I¼Œä¸ÞZ»€ä¹ˆè¦æœ‰ç‹¬ç«‹çš„æ•°å­¦å­¦ç§‘。物ç†å­¦æ‰€æœ‰çš„定律都ä‹É用数学表˜qŽÍ¼Œæ˜¯å¦æ„味ç€ç‰©ç†å­¦çš„真ç†è•´å«åœ¨æ•°å­¦ä¹‹ä¸­ã€?br />     我说<strong>å®?/strong><strong>际上现在的通用语言也是无法有效承è²Domain Specific Structureçš?/strong><em><strong>ã€?/strong></em>其实与以下说法是¾cÖM¼¼çš?br /> <strong>数学是无法涵盖物ç†å­¦çš„,现在的已知的数学工具是无法有效承载尚未得到充分探索的领域的物ç†çš„</strong><br />     我说<strong>我所兛_¿ƒçš„䏿˜¯è¯­­a€å±‚é¢çš„é—®é¢?/strong><em><strong>ã€?/strong></em>˜q™ç±»ä¼égºŽè¯?strong>ä¸è¦æŠŠæ‰€æœ‰ç‰©ç†é—®é¢˜éƒ½æŽ¨åˆ°æ•°å­¦å±‚é¢åŽ»è§£å†?/strong>ã€?br />     我们应该研究独立的结构,应该建立å•独的ä­h(hu¨¢n)倯D§‚和方法论。ä¸è¦è°ˆåŠä¸€ä¸ªæŠ€æœ¯è¿›å±•çš„æ—¶å€™å°±è¯´æŸæŸè¯­­a€å¥½ï¼Œä¸æ˜¯ä¸€è¯´åˆ°DSL的优点就è¦åŽ»æŠ±ruby的大è…Ñ€‚æ­¤å¤–ï¼Œæˆ‘çš„è§‚ç‚¹ä¹Ÿä¸æ˜¯åŽ»åšä¸šåŠ¡åˆ†æžï¼Œä¸æ˜¯åŽÕd¦‚何更好的实现业务到基¼‹€æŠ€æœ¯ç»“构的映射ã€?br />     <strong>䏿˜¯å¼ø™°ƒå¯¹è±¡çš„æ‰€è°“业务å«ä¹‰ï¼Œä¸æ˜¯å¼ø™°ƒæŸç§é€šç”¨è¯­è¨€åQˆä¾‹å¦‚rubyåQ‰çš„ç‰|´»çš„语法结构。在˜q™ä¹‹é—´å­˜åœ¨ç€åŽšé‡çš„å…·æœ‰ç‰©ç†æ„义的å¯ä»¥˜q›è¡Œ¾l“构分æžçš„æŠ€æœ¯å±‚ã€?/strong><br />     我想说这个结构层é¢çŽ°åœ¨åÆˆæœªå¾—åˆ°å……åˆ†çš„å…Ïx³¨åQŒæˆ‘们对于结构的问题òq¶ä¸æ˜¯éžå¸¸æ¸…楚,对程åºç»“构的½E›_®šæ€§æ›´æ˜¯å°‘有ç»éªŒã€‚我们在Witrix中åšäº†å¤§é‡çš„工作åQŒè¯•囑֚到如下的图景åQ?br />    <strong>永远åªå†™ä»£ç ç‰‡æ–­åQŒè€Œæ‰€æœ‰çš„代ç ç‰‡æ–­¾l„åˆåœ¨ä¸€èµ·åˆæž„æˆä¸€ä¸ªå¯ç†è§£çš„æ•´ä½?/strong><br />    <strong>å¯¹èƒŒæ™¯ä¸æ˜¯åˆ†è§£è®©å…¶æˆä¸ºå¯è§çš„部分åQŒè€Œæ˜¯é‡‡ç”¨˜q½åŠ çš„ï¼Œå¢žåˆ çš„æ–¹æ³•å¯¹èƒŒæ™¯¾l“æž„˜q›è¡Œä¿®æ­£åQŒåˆ™æˆ‘们有å¯èƒ½åœ¨æ²¡æœ‰å®Œæ•´èƒŒæ™¯çŸ¥è¯†çš„æƒ…况下åQŒç‹¬ç«‹çš„ç†è§£å±€éƒ¨å˜åŒ–çš„¾l“构。å³èƒŒæ™¯æ˜¯é€æ˜Žçš„,知识æˆäؓ局部的ã€?/strong><br /> <a >http://canonical.javaeye.com/blog/126467</a><br />     在Witrix中我们实现的代ç é‡ç”¨½E‹åº¦å’Œç¨‹åºæ•´ä½“结构控制能力是­‘…è¶Šäº†ç›®å‰æ‰€æœ‰å·²çŸ¥çš„å…¬å¼€æŠ€æœ¯çš„ã€‚è¿™ä¸æ˜¯ä»€ä¹ˆå“²å­¦ï¼Œè€Œæ˜¯æˆ‘们在残é…ïL(f¨¥ng)š„商业竞争中得以生存的资本ã€?br /> <br /> å·å¤–åQ?br />   ä¸è¦æŠŠå…·ä½“的技术和一¿UæŠ€æœ¯æ€æƒ³æ··äؓ一谈。一¿U实现æ€ÀL˜¯åŒ…å®¹äº†å¤ªå¤šçš„æ€æƒ³ã€‚æ€æƒ³é”™äº†åQŒå®žçŽ°å¯¹äº†ã€‚å®žçŽ°æ­»äº†ï¼Œæ€æƒ³‹zÈ€ã€?br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/165900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-06 22:12 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/06/165900.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>关于函数å¼è¯­­a€çš„媭a€ç‰‡è¯­http://www.aygfsteel.com/canonical/archive/2007/12/05/165664.htmlcanonicalcanonicalWed, 05 Dec 2007 14:09:00 GMThttp://www.aygfsteel.com/canonical/archive/2007/12/05/165664.htmlhttp://www.aygfsteel.com/canonical/comments/165664.htmlhttp://www.aygfsteel.com/canonical/archive/2007/12/05/165664.html#Feedback8http://www.aygfsteel.com/canonical/comments/commentRss/165664.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/165664.html

2. 最˜q‘这些年æ¥ä¸€¿Uç§°ä¸?范畴"(Category)的东西在计算机ç†è®ºç ”½I¶ä¸­é¢‘频出现。范畴论是从åŒè°ƒä»£æ•°å‘展而æ¥çš„一¿U较新的代数语言åQŒä½†å®ƒæ˜¾ç„¶ä¹Ÿä¸æ˜¯å¯ä»¥è§£å†³ä»ÖM½•问题的çµä¸¹å¦™è¯ã€‚多一¿U表达方å¼å½“然在æŸç§½E‹åº¦ä¸Šå¯ä»¥å¢ž˜q›æˆ‘们的ç†è§£ã€‚但是范畴本íw«åªæ˜¯ç ”½I¶ä¸€¿U基¼‹€¾l“æž„åQŒå®ƒæœ¬èínòq¶æ²¡æœ‰æ‰¿è½½æ‰€æœ‰çš„物ç†äº‹å®žåQŒåŸºäºŽå®ƒä¸å¯èƒ½å¯¹æ‰€æœ‰çš„规律一¾|‘打ž®½ã€‚䏿˜¯æ˜Žç™½äº†èŒƒç•´åQŒå°±æ‡‚了½E‹åºã€‚范畴论是一¿U基¼‹€æ€§çš„语言åQŒæœ‰äº›ähè‡´åŠ›äºŽåŸºäºŽèŒƒç•´è®ºæ¥æž„建数学的其他分支åQŒå–代集åˆè®ºçš„地ä½ã€‚å°†è®¡ç®—çš„æœ¬è´¨é‡æ–°å½’¾l“于范畴论是无æ„义的åQŒå®ƒä¸è¿‡æ˜¯å¯¹äº‹å®žçš„å¦ä¸€¿U陈˜q°æ–¹å¼ã€‚说“函数å¼è¯­­a€æ˜¯åŸºäºŽèŒƒç•?#8221;是无æ„ä¹‰çš„ï¼Œå› äØ“˜q™å’Œè¯?#8220;所有现代数学都åŸÞZºŽé›†åˆè®?#8221;一栗÷€‚无法å‘现新的相互作用关¾p»ï¼Œæ‰€æœ‰çš„æ¦‚å¿µéƒ½åªæ˜¯åŒä¹‰åå¤ã€‚䏿˜¯ä¸€æ‹¿è“væ•°å­¦åQŒå°±æ‰‘Öˆ°äº†ç»„¾l‡ã€?br />
3. 我对函数å¼è¯­­a€òq¶æ²¡æœ‰ä»€ä¹ˆåå¯ÒŽ(gu¨©)„è§ã€‚它是éžå¸”R‡è¦ä¹Ÿéžå¸¸ä¼˜ç¾Žçš„一¿UæŠ€æœ¯æ€æƒ³ã€‚但是现在一些函数å¼è¯­è¨€çš„狂热支æŒè€…似乎对函数世界充满了乌托邦å¼çš„òqÀLƒ³åQŒä¸€¿U大一¾lŸçš„ä¸–ç•Œè§‚è®©äºø™¿·é†‰ï¼Œä½†æ˜¯å®ƒå´è§£å†³ä¸äº†çŽ°å®žçš„é—®é¢˜ã€‚æ‰€ä»¥æˆ‘è¯´æ— æ³•è®¤åŒå‡½æ•°å¼¾~–程的世界观。作ä¸ÞZ¸€¿Uå…·ä½“çš„æŠ€æœ¯å·¥å…øP¼Œé—®é¢˜ä¸åœ¨äºŽå‡½æ•°å¼è¯­è¨€æ˜¯å¦ä½“现了计½Ž—的本质åQŒè€Œåœ¨äºŽå®ƒæ˜¯å¦å‘我们æä¾›äº†¿U°æ‰‹çš„兵器。现在我è¦è®¡½Ž—两个å°çƒç›¸äº’碰撞的问题åQŒæˆ‘å¯ä»¥æ“è“vòq¿ä¹‰ç›¸å¯¹è®ºï¼Œé‡å­åŠ›å­¦å•¥çš„å¼€å§‹å¤§òq²ä¸€åœºï¼Œä¹Ÿå¯ä»¥ç”¨ä¸ªç‰›™å¿åЛ学å°è¯•牛刀åQŒç”šè‡›_¯ä»¥åªç”¨åž®„å…³¾pÀL‘†ä¸ªç­‰å¼ã€‚但是在¾l大多数情况下我们都会说˜q™é‡Œé¢çš„ç‰©ç†æ˜¯å¼¹æ€§åž®„è€Œä¸æ˜¯ç›¸å¯¹è®ºã€‚在ç†è®ºåˆ†æžä¸­æˆ‘们ç»å¸æ€‹É用åã^颿‡Lå‡è®¾åQŒä½†åªè¦å®žé™…å…›_¿ƒçš„对象ä¸åœ¨æ‡L包的边缘åQŒæ²¡æœ‰äh会认为åã^颿‡L䏿˜¯çœŸå®žçš„ç‰©ç†æœºåˆ¶ã€‚ç†è®ºç‰©ç†ä¸æ˜¯ç†æƒ³ç‰©ç†ã€‚åœ¨å…·ä½“çš„å‚æ•°è®¾å®šä¸‹åQŒæˆ‘们åªä¼šä‹É用特定的物ç†å­¦ã€?br />    对世界的认识òq¶ä¸æ˜¯éžæ­¤å³å½¼çš„ã€‚åÆˆä¸æ˜¯è¯´å‡½æ•°å¼è¯­è¨€å¥½å®ƒ?y¨­u)®±æ°¸˜qœéƒ½å¥½ï¼Œè¦æŠŠæ‰€æœ‰å¯¹ç«‹é¢éƒ½ç­æŽ‰ã€‚ä¹Ÿä¸æ˜¯è¯´å‡½æ•°å¼ä¸å¥½åQŒå‘½ä»¤å¼ž®±å¿…然的好,ž®±å¿…然的能够解决问题。函数å¼è¯­è¨€çš„世界观˜q‡åˆ†å•纯而排他,˜q™æ˜¯æˆ‘å对的åQŒæˆ‘åŒæ ·æ— æ³•认åŒé¢å‘å¯¹è±¡çš„æœ¬ä½“è®ºè®ø™°ƒã€‚å°±åƒCISCå’ŒRISCæž¶æž„ä¹‹äº‰ä¸€æ øP¼Œæœ€¾lˆæˆ‘们在现实的物ç†çº¦æŸä¸‹åQŒè¿è¡Œçš„æœ€å¥½çš„èŠ¯ç‰‡æ˜¯ä¸¤è€…æ€æƒ³çš„结åˆã€‚这是我们é¢å¯¹ç‰©ç†ä¸–界的基本æ€åº¦ã€?br />   
4. 函数å¼è¯­­a€ä¸­æ—¶é—´æ˜¯ä¸ªæœ‰­‘£çš„æ¦‚念。命令å¼è¯­è¨€ä¸­å› ä¸ø™µ‹å€ÆD¯­å¥çš„存在åQŒä‹É得我们å¯ä»¥è§‚‹¹‹åˆ°çжæ€çš„å˜åŒ–åQŒå› æ­¤å¿…ç„¶è¦å®šä¹‰æ—‰™—´ã€‚而函数å¼è¯­è¨€æ˜¯æ— çжæ€çš„åQŒå¯ä»¥æ˜¯æ— æ—¶é—´æ¦‚念(对Lazy Caculationçš„ä¾èµ–是å¦ä½“çŽîCº†æ·±å±‚‹Æ¡ä¸Šå¯ÒŽ(gu¨©)—¶é—´æ¦‚å¿ëŠš„需求?åQ‰ã€‚有些ähè®¤äØ“å‡½æ•°å¯ä»¥çœ‹ä½œæ˜¯ç›¸½Iºé—´ä¸­çš„˜q移函数åQŒæ˜¯ä¸Žç›¸å¯¹è®ºåè°ƒçš„ï¼Œå› è€Œåæ˜ äº†æ—‰™—´çš„æœ¬è´¨ç­‰½{‰ã€‚ç›¸å¯¹è®ºä¸»è¦æ˜¯è§£å†³äº†ç‰©ç†è§„律的åå˜æ€§çš„问题åQŒåœ¨æ­¤è¿‡½E‹ä¸­å®ƒä‹ÉäºÞZ»¬è®¤è¯†åˆîCº†æ—¶ç©ºä¹‹é—´å¥‡å¼‚的对¿U°æ€§ã€‚但是广义相对论的表˜qîC¸­æ—‰™—´ä¹Ÿæ˜¯å¯é€†çš„。真正定义了旉™—´ä¹‹ç®­çš„æ˜¯çƒ­åŠ›å­¦ç¬¬äºŒå®šå¾‹ã€‚æ ¹æ®Landauer's principle: 擦除(erase)1比特信æ¯åQŒè€—散到环境中的能é‡è‡³ž®‘是k*T*ln2, 或者说熵增臛_°‘是k*ln2. ˜q™æ„味ç€åªè¦æˆ‘们对眼å‰çš„黑æ¿ä¸åœçš„写了擦åQŒæ“¦äº†å†™åQŒå°±å¿…然无法回到˜q‡åŽ»ã€‚ç‰©ç†ä¸–ç•Œæ˜¯å¤æ‚çš„ã€?br />
5. 如果ž®†çжæ€çœ‹ä½œæ˜¯å¯ä»¥é™„ç€åœ¨æŸä¸ªå¯¹è±¡ä¸Šçš„æ ‡è®ŽÍ¼Œæ˜„¡„¶çжæ€çš„存在性便于我们识认概å¿ëŠš„å”¯ä¸€æ€§ã€‚å¯¹è±¡è¿˜æ˜¯é‚£ä¸ªå¯¹è±¡ï¼Œåªæ˜¯çŠ¶æ€æ ‡è®°å‘生了å˜åŒ–。而如果系¾lŸä¸­æ²¡æœ‰çжæ€ï¼Œåˆ™å¿…ç„¶äñ”生了一个新的概å¿üc€‚这在很多情况下是ä¸å¿…è¦çš„负担。状æ€çš„存在使得¾pÈ»Ÿåœ¨å±€éƒ¨ç»“构上å…许出现éžå¸¸å¤æ‚çš„å˜åŒ–,函数å¼ç¼–½E‹çš„æ‹¥è¶¸ä»¬å¯¹æ­¤å¤šæœ‰è¯Ÿç—…。但是从å¦ä¸€ä¸ªæ–¹é¢ä¸Šè¯ß_¼Œçжæ€ä‹É得我们å¯ä»¥åŸºäºŽå±€éƒ¨ä¿¡æ¯å¤„ç†å¾ˆå¤šé—®é¢˜è€Œä¸éœ€è¦æŠŠå®ƒæ‰©å¤§åŒ–ä¸ÞZ¸€ä¸ªå…¨å±€åŒšw…问题ã€?br />
6. 函数构æˆå‡½æ•°ä¼ég¹Žæ˜¯å¾ˆå®Œå¤‡¾lŸä¸€çš„世界ã€?但是在物ç†ä¸–界中å‘生的一切å´å¤æ‚的多。虽然世界å¯ä»¥è¿˜åŽŸäØ“åŽŸå­åQŒä½†æ˜¯åŽŸå­æž„æˆåˆ†å­ï¼Œåˆ†å­æž„æˆå®è§‚物质æ—Óž¼Œ¾pÈ»Ÿçš„基本性状å‘生了本质性的å˜åŒ–åQŒåƈä¸å†æ˜¯ç»Ÿä¸€çš„åÅžå¼ã€‚æ¯ä¸€ä¸ªå±‚é¢ä¸Šéƒ½ä¼šäº§ç”Ÿç‹¬ç«‹çš„结构规律ã€?br />
7. 函数å¼è¯­­a€å’Œå‘½ä»¤å¼è¯­è¨€çš„计½Ž—能力相åŒï¼ˆå¯ä»¥ç›¸å·®ä¸€ä¸ªä“Qæ„é•¿åº¦çš„å¤šé¡¹å¼æ—¶é—ß_¼‰åQŒä½†æ˜¯åœ¨å…·ä½“的情形下它们的æ˜q°èƒ½åŠ›æ˜¯ä¸åŒçš„。我所兛_¿ƒçš„䏿˜¯è¯­­a€å±‚é¢çš„é—®é¢˜ï¼Œå› äØ“è¯­è¨€æœ¬èínçš„èƒ½åŠ›åÆˆä¸èƒö以解决现实开å‘中的所有问题。å³çŽ°å®žå¼€å‘中所需è¦å¤„ç†çš„¾l“构问题òq¶ä¸æ˜¯åœ¨è¯­è¨€å±‚é¢å¾—到充分解决的,˜q™æ˜¯æˆ‘们需è¦åšå·¥ä½œçš„地æ–V€?br />    关于现实中的¾l“构问题åQŒæˆ‘æ— æ„åŽÕd®šä¹‰ä»€ä¹ˆä¸‡èƒ½çš„æè¿°èƒ½åŠ›ã€‚ä½ å¯ä»¥ç”¨å¾®åˆ†å‡ ä½•,¿U¯åˆ†å‡ ä½•åQŒå¹¿ä¹‰å˜åˆ†ç­‰½{‰æ‰‹ŒDµåŽ»è¯æ˜Žåœ†ç›˜æ˜¯æŸ¿Uæ„义下的周长最短的东西åQŒä½†æ˜¯è¿™ä¸€åˆ‡å¯¹ä½ å‘明轮å­åƈ无本质上的助益。丘q‡å¯ä»¥è¯´è¯´çŽ°å®žä¸­çš„ç»“æž„ã€‚è¿™é‡Œä¸æ˜¯è¦è¯æ˜ŽæŸç§è¯­è¨€ä¸­æ— æ³•æ˜q°è¿™äº›ç»“æž„ï¼Œè€Œæ˜¯è¯´ç»“æž„æ˜¯å®¢è§‚å­˜åœ¨çš„ï¼Œå®ƒåÆˆä¸æ˜¯è¦åœ¨åŸºç¡€è¯­è¨€å±‚é¢å¾—到充分解决的。实际上现在的通用语言也是无法有效承è²Domain Specific Structureçš„ã€?br /> A. ErLang大概是目å‰ä¸–界上应用最为深入的函数å¼è¯­­a€äº†ã€‚它¼‹®å®žå‘挥了函数å¼è¯­è¨€æ— æ˜¾å¼çжæ€å˜é‡çš„ä¼˜åŠ¿ã€‚ä½†æ˜¯å®ƒå¯¹ç¨‹åºæž„å»ºæœ¬è´¨ä¸Šçš„å¸®åŠ©æ›´å¤šçš„æ¥æºäºŽæ— å…׃ín的超轻釾U§è¿›½E‹æ¨¡åž‹ï¼Œç›¸å½“于定制了一般æ“作系¾lŸæ‰€æä¾›çš„基本æœåŠ¡ã€‚å¾®è½¯çš„ä¸€ä¸ªå®žéªŒæ€§æ“作系¾lŸé¡¹ç›®Singularity, 其中也定义了åªé€šè¿‡æ¶ˆæ¯ä¼ é€’å‘生数æ®å…³è”çš„­‘…è½»é‡çñ”˜q›ç¨‹æ¨¡åž‹åQŒå®ƒä½¿ç”¨C#的一个扩展语­a€åQŒé¢å¤–增加的功能是消æ¯ç®¡é“ä¸Šå®šä¹‰çš„è§„æ ¼çŠ¶æ€æœºåQŒå¯¹æ¶ˆæ¯äº¤äº’的时½Iºæ¨¡å¼è¿›è¡Œé¢å¤–的规约。这里对我们真正有ä­h(hu¨¢n)值的是隔¼›Èš„å•å…ƒ¾l“æž„ã€?br /> B. AOP是程åºç»“构空间中的定ä½å’Œ¾l„装技术。在Witrix中我们规范化了切点处的状æ€ç©ºé—ß_¼Œòq¶å¯¹AOP˜q›è¡Œäº†å¾|®å¤„ç?˜q™ç§¾l“构调整大大æé«˜äº†AOPçš„å¯ç”¨æ€§ï¼Œä½¿å¾—它æˆä¸ºWitrix中的核心技术手ŒDµä¹‹ä¸€ã€?br /> C. é¢å‘对象的ç‘ô承关¾pÖM»Ž¾l“构观点上看是两个一¾l´é›†åˆä¹‹é—´çš„覆盖关系。在Witrix中扩展了extends所对应的结构æ“作,创造了新的¾l“æž„èžåˆæ‰‹æ®µã€?br />

]]>
关于[é¢å‘集åˆçš„æ¡†æž¶è®¾è®¡]的一些说æ˜?/title><link>http://www.aygfsteel.com/canonical/archive/2007/12/03/165039.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Mon, 03 Dec 2007 15:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/12/03/165039.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/165039.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/12/03/165039.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/165039.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/165039.html</trackback:ping><description><![CDATA[    我习惯于概念层的推演åQŒè€Œä¸”所é˜è¿°çš„东西多数是我们创造过½E‹ä¸­çš„副产å“åQŒä¸Žä¸šå†…常è§çš„观念实际上是有ç€å¾ˆå¤§å·®å¼‚的。有些äh感觉我的文章è¯ÖM¸æ˜Žç™½æ˜¯å› ä¸ºæ²¡æœ‰é‡‡ç”¨ç±»ä¼¼çš„视角åQŒæˆ–者还没有独立æ€è€ƒè¿‡å¾ˆå¤šé—®é¢˜ã€‚å¦‚æžœåªæ˜¯ä»Žä¸šå†…å·²ç»ç†ŸçŸ¥çš„æ¦‚念出å‘试囄¡†è§£æˆ‘所写的内容åQŒæ˜¾ç„¶æ˜¯ä¸å¯èƒ½çš„事情。所以我常说know something already known. <br /> <br /> 如果在编制一个新的应用,存在大é‡ä»£ç å¯èƒ½æ˜?br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">myFunc(){<br />   </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> each x in set<br />     doSomethingValuable(x);<br />   </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> packedResult;<br /> }<br /> <br /> myOtherFunc(packedResult){<br />   </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> each y in pakedResult<br />     doSomethingOther(y)<br /> }</span></div> <br /> 其实我们真正兛_¿ƒçš„æ˜¯å¾ªçŽ¯å†…éƒ¨çš„æŸä¸ªè¿‡½E‹ï¼Œä½†æ˜¯æˆ‘们¾l常å¯ä»¥è§‚察到它们被æŸäº›é€šç”¨çš„æˆ–者特定的循环åQˆé›†åˆé历)æ“作所包围ç€ã€‚Witrixçš„è®¾è®¡æ–¹å¼æ˜¯å¼ø™°ƒä¸šåŠ¡å…Ïx³¨ç‚¹ï¼Œè€ŒæŠŠæ‰€æœ‰çš„æ±‡æ€ÀL“ä½œå°½é‡æŠ½è±¡å®Œæˆã€‚比如现在界é¢ä¸Šæ˜„¡¤ºä¸€äº›å­—ŒDüc€‚从抽象的æ“作上è¯?br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">  </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> each field in dsMeta.viewableFields<br />     show field.viewer</span></div> <br /> ˜q™ä¸€˜q‡ç¨‹åœ¨åã^åîC»£ç ä¸­å®žçްåQŒå®ƒæ˜¯ä¸€ä¸ªé€šç”¨çš„é›†åˆæ“作过½E‹ã€‚ä¸åŒçš„å…·ä½“åº”ç”¨åªæ˜¯å…›_¿ƒå…·ä½“字段的展现åÅžå¼ï¼Œè™½ç„¶æˆ‘们必然需è¦å­—ŒDµé›†åˆï¼Œä½†æ˜¯å®ƒä¸æ˜¯æˆ‘们注æ„力的é‡å¿ƒã€?br />   如果考虑到字ŒDµåœ¨ç•Œé¢ä¸Šå±•½Cºæœ‰ä¸€ä¸ªå¸ƒå±€é—®é¢˜åQŒæˆ‘们所è¦ä¿®æ”¹çš„æ˜¯é›†åˆå†…部的¾l“构方å¼åQ?br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">  æŸç§¾l“构循环方å¼åQˆdsMeta.字段¾l„æˆçš„布局集åˆåQ?br />     show field.viewer</span></div> <br /> 抽离出集åˆï¼Œå®žé™…上是在最大é™åº¦ä¸Šåˆ†ç¦»¾l“构问题和内定w—®é¢˜ã€?nbsp;    <br />    ¾l“æž„æ˜¯å¯æŠ½è±¡çš„ï¼Œæ˜¯å…·æœ‰ç‹¬ç«‹æ„义的。这ž®±æ˜¯Witrix所æå‡ºçš„é¢å‘ç»“æž„çš„è®¾è®¡è§†è§’ã€‚ä¸æ˜¯å¼ºè°ƒå¯¹è±¡çš„æ‰€è°“业务å«ä¹‰ï¼Œä¸æ˜¯å¼ø™°ƒæŸç§é€šç”¨è¯­è¨€åQˆä¾‹å¦‚rubyåQ‰çš„ç‰|´»çš„语法结构。在˜q™ä¹‹é—´å­˜åœ¨ç€åŽšé‡çš„å…·æœ‰ç‰©ç†æ„义的å¯ä»¥˜q›è¡Œ¾l“构分æžçš„æŠ€æœ¯å±‚ã€?a >http://canonical.javaeye.com/blog/60758 </a> <a >http://canonical.javaeye.com/blog/126467</a><br /> <br /> <img src ="http://www.aygfsteel.com/canonical/aggbug/165039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-12-03 23:54 <a href="http://www.aygfsteel.com/canonical/archive/2007/12/03/165039.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>从指针到引用http://www.aygfsteel.com/canonical/archive/2007/12/02/164717.htmlcanonicalcanonicalSun, 02 Dec 2007 14:14:00 GMThttp://www.aygfsteel.com/canonical/archive/2007/12/02/164717.htmlhttp://www.aygfsteel.com/canonical/comments/164717.htmlhttp://www.aygfsteel.com/canonical/archive/2007/12/02/164717.html#Feedback2http://www.aygfsteel.com/canonical/comments/commentRss/164717.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/164717.html     指针是对地å€çš„符å·åŒ–。它所带æ¥çš„第一大好处是使得我们摆脱了对¾l对地倽Iºé—´çš„ä¾èµ–。如åŒNewton½W¬ä¸€å®šå¾‹æ‰€é˜è¿°çš„:物ç†è§„律与所å‘ç”Ÿçš„æƒ¯æ€§åæ ‡ç³»æ— å…³ã€‚åŒæ øP¼Œæ•°å­—½Iºé—´ä¸­å‘生的的事件与所处的¾l对地å€ä¹Ÿæ˜¯æ— å…³çš„。在½W¦å·åŒ–的方å‘上更˜q›ä¸€æ­¥ï¼Œå¦‚果我们专注于指针的兌™”语义åQŒè€Œæ”¾å¼ƒæŒ‡é’ˆçš„æŒ‡é’ˆ˜q™æ ·çš„æØœæ‚概念,ž®×ƒ¼šå¾—到å…ähœ‰ç‹¬ç«‹ä»·å€¼çš„引用(Reference)概念.
    从表é¢ä¸Šçœ‹è“væ¥ï¼Œæ•°å­—½Iºé—´åªæ˜¯ä¸€ä¸ªæ— é™åšg展的一¾l´åœ°å€½Iºé—´åQŒæ¯ä¸€åœ°å€å¤„åªèƒ½å­˜æ”¾ä¸€ä¸ªæœ‰é™å¤§ž®çš„¼›ÀL•£æ•°å€û|¼Œä¼ég¹Žå®ƒçš„几何学是贫瘠的。但是因为在软äšg设计中,一般是ä¸è€ƒè™‘å¯Õd€æ—‰™—´çš„。这æ„味ç€åœ¨æ‹¥æœ‰æŒ‡é’ˆçš„æƒ…况下,我们å¯ä»¥“立刻”讉K—®åˆ°æ•°å­—空间的ä»ÀL„é¥è¿œçš„地æ–V€‚è¿™¿U超时空的信æ¯ä¼ é€’过½E‹ä‹É得我们å¯ä»¥åˆ©ç”?#8220;引用”概念è½ÀL¾çš„æž„å»ÞZ¸€ä¸ªå¤š¾l´çš„表示½Iºé—´ã€‚在é¢å‘对象的技术背景下åQŒx.y.z˜q™æ ·çš„åÅžå¼è¡¨½Cºæš—½Cºç€x,y,zæ˜¯åŒæ—¶å­˜åœ¨çš„。当zå‘生å˜åŒ–的时候,通过y.zå’Œx.y的信æ¯ä¼ å¯û|¼Œx对象本èín也å‘生了æŸç§å˜åŒ–ã€?br />     éšç€web技术的‹¹è¡ŒåQŒç‹¬ç«‹çš„状æ€?地倽Iºé—´çš„å­˜åœ¨æ€§é€æ¸æˆäØ“¾pÈ»Ÿä¸å¯å›žé¿çš„å‡è®? "åŒæ—¶æ€?的物ç†çº¦æŸè¶Šæ¥è¶Šéš¾ä»¥¾l´æŒ. ç›¸å¯¹è®ø™§„定了物ç†çŽ°è±¡çš„å®šåŸŸæ€? 在数字空间我们一直忽视了å®?但有­‘£çš„æ˜? ¾|‘络上的传输时åšgå´è¿«ä½¿æˆ‘们釿–°å‘çŽîCº†"引用"å½¢å¼ä¸‹å¿…然存在ç€çš„物ç†è¿‡½E? 引用本èínåªæ˜¯æ ‡è®°äº†æŸ¿Uä¿¡æ¯å…³è? òq¶ä¸ä¸€å®šæ„味ç€åŒæ—¶æ€§çº¦æ? òq¶å‘¾~–程领域的所谓的Future对象是对传统引用概念的一¿U有­‘£æ‰©å±?
   result = obj.callMethod(args) ==>  future = obj.callMethod(args)
future对象å¯ä»¥è¢«è‡ªç”׃¼ é€? åªæœ‰å½“实际访问到它的属性的时å€? æ‰ä¼šè§¦å‘时庾U¦æŸ. 


]]>
é¢å‘集åˆçš„æ¡†æž¶è®¾è®?/title><link>http://www.aygfsteel.com/canonical/archive/2007/11/25/163048.html</link><dc:creator>canonical</dc:creator><author>canonical</author><pubDate>Sun, 25 Nov 2007 15:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/canonical/archive/2007/11/25/163048.html</guid><wfw:comment>http://www.aygfsteel.com/canonical/comments/163048.html</wfw:comment><comments>http://www.aygfsteel.com/canonical/archive/2007/11/25/163048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/canonical/comments/commentRss/163048.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/canonical/services/trackbacks/163048.html</trackback:ping><description><![CDATA[    判断和åó@环是½E‹åºä¸­æœ€åŸºæœ¬çš„语å¥ç»“构。而在vonNeumann体系架构下,循环是对集刘q›è¡Œæ“作所需的基本步骤。一个有­‘£çš„事实是,函数å¼è¯­­a€æ‰€å®£ç§°çš? 生äñ”åŠ›çš„æ¥æºå¾ˆå¤§½E‹åº¦ä¸Šåœ¨äºŽé›†åˆæ“ä½œçš„ä¾¿æ·æ€§ã€‚在数学中我们通过张é‡åˆ†æžåQŒæ³›å‡½åˆ†æžç­‰å¯ä»¥æ¸…楚地æ„识到集åˆä¹‹é—´çš„ç›¸äº’ä½œç”¨æ˜¯å¯æŠ½è±¡çš„åQŒæ˜¯å¯ä»¥ç‹¬ç«‹ç†è§£çš„, åÏxˆ‘们å¯ä»¥åœ¨ä¸æ¶‰åŠå…·ä½“基元结构的层é¢ä¸Šç‹¬ç«‹çš„定义òq¶æ‰§è¡Œé›†åˆè¿½Ž—。如何将˜q™ç§æ¦‚念独立性在框架层é¢å±•开是一个éžå¸¸æ·±åˆÈš„命题ã€?br />     在基元结构上应用基础æ“作p(d)˜q™ä¸€å¾®è§‚场景一般情况下是容易ç†è§£åƈ实现çš? 但通常½E‹åºä¸­æ‰€å®šä¹‰çš„大é‡è¾¹ç•Œæ˜¯åŸÞZºŽé›†åˆå˜é‡çš? 因此很多代ç éƒ½æ˜¯ž®åŒ…和解包æ“ä½? 在层层嵌套的循环¾l“构深处我们æ‰èƒ½å‘现真正å…ähœ‰ä¸šåŠ¡ä»·å€¼çš„åŸºå…ƒ¾l“æž„. ž®†é›†åˆæ“作æå‡åˆ°¾pÈ»Ÿå±‚,å‡å°‘æˆ–ç®€åŒ–åœ¨åº”ç”¨å±‚éœ€è¦æ˜¾å¼ç¼–制的循环¾l“构是框架设计层é¢éœ€è¦è€ƒè™‘的问é¢? <br />     一个最基本的方法是ž®½é‡å®šä¹‰é€šç”¨çš„åŒæž„æ“ä½? é¿å…构造中间集å? 例如å‰åŽåîC¹‹é—´é€šè¿‡json½{‰é€šç”¨å议交æ¢å¤æ‚¾l“构的对è±? é¿å…定义ç‰ÒŽ(gu¨©)®Šçš„中间处ç†è¿‡½E? 一个与之相é…åˆçš„é‡è¦æŠ€æœ¯æ‰‹ŒD‰|˜¯é€šè¿‡¾cÀLŸ¥è¯¢è¯­å?æè¿°æ–¹å¼)直接构造特定的集åˆ. 例如prototype.js中æä¾›çš„$$('div div.myclass').each(op)˜q™æ ·çš„å¤„ç†æ–¹å¼æ˜¾ç„¶è¦æ¯”在循环˜q‡ç¨‹ä¸­åŸºäºŽç‰¹å®šæ¡ä»¶è¿‡æ»¤è¦æ–¹ä¾¿çš„多. 而在AOPæ“作中切点的集åˆå®šä¹‰æ–¹å¼ä¹Ÿæ˜¯å…¶æä¾›çš„æ ¸å¿ƒä»·å€ég¹‹ä¸€. ä¸Žé›†åˆæ“作相适应的一¿U代ç é£Žæ ¼æ˜¯‹¹å¼è®¾è®¡(stream), ˜q™æ­£æ˜¯jQuery试图鼓å¹çš„主è¦ä­h(hu¨¢n)å€?è™½ç„¶æˆ‘ä¸ªäºø™®¤ä¸ºå®ƒæœ‰äº›èµ°æžç«?. ‹¹å¼è®¾è®¡çš„æ ¸å¿ƒç»“构实际上æ˜?x += dx, 它ä¸éœ€è¦é›†åˆæ˜¯ä¸€‹Æ¡æ€§æž„造的, 便于支æŒä¸€¿U逿­¥éƒ¨åˆ†ä¿®æ­£çš„æ¦‚忉|¨¡åž? <br />     ä¸ÞZº†æ”¯æŒé›†åˆçš„éšå¼æž„é€? 我们需è¦ä»¥é€šç”¨çš„æ–¹å¼å®šä¹‰å…ƒç´ åˆ°é›†åˆçš„组装规åˆ? 在Witrixòq›_°çš„å‰å°js框架中我们定义了ç”Þq‹¬ç«‹çš„html¾l„äšg到å¤åˆæŸ¥è¯¢æ¡ä»¶çš„æ‹¼æŽ¥è§„则, 定义了由æ¯ä¸ªhtml¾l„äšgçš„æ•°æ®æ ¡éªŒå‡½æ•°åˆ°æ•´ä¸ªformçš„æ•°æ®æ ¡éªŒå‡½æ•îC¹‹é—´çš„¾l„装规则, 定义了由å•个html¾l„äšgæäº¤å‚数到整个formæäº¤å‚数之间的组装规åˆ? 在Witrixòq›_°çš„æ ‡å‡†ç•Œé¢ä¸Š, 框架本èín的编制基于js.query.buildCondition(frmQuery), js.validate.validateForm(frmUpdate), ajax.addForm(frmUpdate)½{‰å°‘é‡é›†åˆæ“作进è¡? 在ä¸åŒçš„应用场景ä¸? 我们åªéœ€è¦å…³å¿ƒæ¯ä¸€ä¸ªå­—ŒDµå¦‚何显½C? æäº¤å“ªäº›å±žæ€? 而由¾pÈ»Ÿè´Ÿè´£ž®†å®ƒä»¬è‡ªåŠ¨ç»„è£…åÆˆåœ¨åŽå°è¿›è¡Œåˆ†‹z? é¢å‘ä¸åŒçš„应ç”? 框架代ç ä¸éœ€è¦åšå‡ÞZ“Q何修æ”? ¼‹®ä¿äº†ç³»¾lŸç»“构的å¯é‡ç”¨æ€? <br />    Witrixòq›_°çš„åŽå°å¤„ç†æ¨¡åž‹ä¸­å®šä¹‰äº†å®žä½“化˜q‡ç¨‹, DaoWebActionåŸÞZºŽCRUD½{‰åŽŸå­æ“作定义了扚w‡æäº¤, æ•°æ®å¯¼å…¥å¯¼å‡º½{‰å¤åˆçš„ç”šè‡³æ˜¯åµŒå¥—çš„é›†åˆæ“作. 在ä¸åŒçš„应用ä¸? 我们通过修改bizflowæ–‡äšgä¸?lt;action id="ViewDetail-default">, <action id="Update-default">½{‰é’ˆå¯¹å•实体的业务规则å³å¯é€‚应ä¸åŒçš„业务场æ™? 而ä¸éœ€è¦äؓ特定的应用é‡å¤ç¼–刉™›†åˆå¤„ç†è¿‡½E? <br />     é¢å‘集åˆ+通用¾l„装规则是Witrixòq›_°è®¾è®¡ä¸­é‡‡ç”¨çš„基本设计手法之一, 它ä‹É得我们在一般应用中åªéœ€è¦è€ƒè™‘å•实ä½?å•å­—ŒD늭‰åŸºå…ƒ¾l“构上å‘生的特定业务, 大大½Ž€åŒ–了¾pÈ»Ÿæž„造过½E? 但是也需è¦è®¤è¯†åˆ°ä»Žä¸ªä½“到集åˆçš„æ‰©å¼?p(d) -> P(D) )是éžòq›_‡¡çš? é›†åˆæ¯”个体的½Ž€å•åŠ å’Œè¦æ›´å¤š, 为此架构中需è¦ä¿ç•™å¯¹é›†åˆè¾¹ç•Œçš„识别能åŠ? 例如需è¦å…许在数æ®å¯¼å…¥å®Œæˆä¹‹åŽæ‰§è¡Œç‰¹å®šçš„ä¸šåŠ¡è§„åˆ™è€Œä¸æ˜¯ä»…ä»…é’ˆå¯ÒŽ(gu¨©)¯ä¸€æ•°æ®è¡Œæ‰§è¡Œä¸šåŠ¡è§„åˆ? <img src ="http://www.aygfsteel.com/canonical/aggbug/163048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/canonical/" target="_blank">canonical</a> 2007-11-25 23:37 <a href="http://www.aygfsteel.com/canonical/archive/2007/11/25/163048.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Witrix架构分æžhttp://www.aygfsteel.com/canonical/archive/2007/09/23/147641.htmlcanonicalcanonicalSun, 23 Sep 2007 15:53:00 GMThttp://www.aygfsteel.com/canonical/archive/2007/09/23/147641.htmlhttp://www.aygfsteel.com/canonical/comments/147641.htmlhttp://www.aygfsteel.com/canonical/archive/2007/09/23/147641.html#Feedback0http://www.aygfsteel.com/canonical/comments/commentRss/147641.htmlhttp://www.aygfsteel.com/canonical/services/trackbacks/147641.htmlhttp://canonical.javaeye.com/blog/33824
 

Witrixæž¶æž„å‘?å?å­—åÅžæ€ï¼Œå…¶ä¸­å®šä¹‰äº†ä¸‰æ¡ä¸»è¦çš„分界¾U?
1. ‹¹è§ˆå™¨å’ŒæœåŠ¡å™¨ä¹‹é—´é€šè¿‡è¯­ä¹‰¾l“构明晰的URLå½¢æˆä¸¤åˆ†¾l“æž„ã€?a _fcksavedurl="http://canonical.javaeye.com/blog/99122">http://canonical.javaeye.com/blog/99122
2. ¾pÈ»Ÿå‰å°è‡›_Žå°å­˜åœ¨ä¸€æ¡é¢„制的éžäçR入的信é“. 它维æŒäº†ä¸€¿Uæ— å®³çš„å¯æ‰©å±•结æž? 具体的说,¾pÈ»Ÿä»Žå‰å°js到åŽå°å¤„ç?对于所æœ?为剾~€çš„傿•°æ˜¯è‡ªåŠ¨ä¼ é€’çš„,æ²¡æœ‰è¯†åˆ«å‡ºçš„å±‚å°†è‡ªåŠ¨æŠŠè¿™äº›å‚æ•îC¼ é€’下åŽ?¾pÈ»Ÿé€šè¿‡˜q™ä¸€ä¿¡é“实现退化过½E‹ã€‚在 我以å‰çš„æ–‡ç« ä¸­æ›¾¾læŒ‡å‡ø™¿‡åQ?æ¯ä¸€¿Uå¯é€€åŒ–åÅžå¼éƒ½å¯¹åº”存在一¿Uéžä¾µå…¥æ€§çš„坿‰©å±•设计ã€?a _fcksavedurl="http://canonical.blogdriver.com/canonical/993807.html">http://canonical.blogdriver.com/canonical/993807.html
3. Witrix内置了对于CRUD模型的支æŒï¼Œ 而BizFlow通过¾cÖM¼¼AOP的方法对CRUD模型˜q›è¡Œäº†æ‰©å±•。这使得Witrixçš„æ¨¡åž‹é©±åŠ¨éƒ¨åˆ†åÆˆä¸æ˜¯ä»…仅针对å•表或者å•实体的维æŠ? 而是å¯ä»¥å®žçŽ°ç‰¹å®šçš„ä¸šåŠ¡é€»è¾‘å’ŒCRUDé€»è¾‘çš„æØœæ?

    ˜q™ä¸‰æ¡åˆ†ç•Œçº¿åˆ†åˆ«è§„范了基¼‹€çжæ€ç©ºé—ß_¼Œå¯¹å·²æœ‰çŸ¥è¯†çš„é‡ç”¨ä»¥åŠé¢å‘未æ¥çš„坿‰©å±•性。在˜q™ç§å¤§çš„å®è§‚¾l“构下,W(xu¨¦)itrix应用了如下技术手ŒD?
1. 对象化。Witrix中的Jsplet框架以对象的å义æä¾›äº†å¯¹åŽå°çš„状æ€å’Œè¡ŒäØ“½Iºé—´˜q›è¡Œåˆ†è§£çš„基¼‹€æ‰‹æ®µã€?http://canonical.javaeye.com/blog/33873。Witrix 便‰˜äºŽJsplet对象实现相关性的局域化, 而ä¸éœ€è¦åƒä¸€èˆ¬é¢å‘action的框枉™‚£æ ïL(f¨¥ng)›´æŽ¥è®¿é—®http session˜q™ä¸€å…¨å±€çжæ€ç©ºé—? å‰å°å‘é€çš„objectName傿•°åŒæ—¶åœ¨ç³»¾lŸçš„ä¸åŒå±‚颿 ‡å®šäº†WebActionå“应函数, Bizé…ç½®, DataSourceMeta元数æ? Hibernate实体½{‰ä¸€¾pÕdˆ—相关概念, 使得它们构æˆä¸€ä¸ªç»Ÿä¸€çš„æ•´ä½?
2. 标准化。与REST架构风格¾cÖM¼¼åQŒDaoWebAction规范化了åŽå°å“应事äšg。DaoWebAction上支æŒçš„æ ‡å‡†äº‹äšg有Query, ViewDetail,Add, Update, Remove½{? 它们构æˆä¸€ä¸ªå®Œæ•´çš„CRUD模型。与RESTä¸åŒçš„æ˜¯åQŒDaoWebActionæä¾›äº†ä¸€ä¸ªç©ºçš„å“应事件BizAction。它相当于是CRUD模型中的 é›¶å…ƒæ“作。在BizFlowæ¨¡åž‹ä¸‹ï¼Œå®ƒå°†è¢«æ‰©å±•äØ“ä¸€ä¸ªæ“作孽Iºé—´åQŒä»Žè€Œå®žçŽ°å¯¹äºŽCRUD模型的超­‘Šã€‚而在REST模型下所有的扩展æ“作必须ä¾é™„于一个已¾l? å…ähœ‰å›ºå®šè¯­ä¹‰çš„Method上,例如POST. http://canonical.javaeye.com/blog/99122
3. 实体化。在Witrixä¸­å……åˆ†å‘æŽ˜äº†ORM技术的能力, 使得å•一业务对象上å¯ä»¥èšé›†åˆ°æŸä¸€èŒƒå›´å†…的所有相关结构信æ? http://canonical.javaeye.com/blog/111500. åŒæ—¶åœ¨DaoWebAction中通过EntityFilter机制实现了å•实体化过½E? ˜q™æ„味ç€å‰å°åº”用å¯ä»¥ä¸€‹Æ¡æ€§æäº¤å¤šä¸ªæ‰¹é‡æ“ä½? åŽå°æ¡†æž¶è´Ÿè´£æŠŠå®ƒä»¬åˆ†è§£äؓ针对å•个实体的一‹Æ¡ç¡®å®šæ€§æ“ä½? 在åŽå°å®žçŽ°æ—¶åªéœ€è¦è€ƒè™‘å•实体的情况å›_¯. 一个简å•çš„ä¾‹å­æ˜¯å‰å°æäº¤objectEvent=Remove&id=1&id=2&id=3 , WebAction层会为æ¯ä¸€ä¸ªid对应的实体调用BizFlow中的Remove-defaultæ“作. 实体化是一个éžå¸”R‡è¦çš„˜q‡ç¨‹, 它ä‹É我们å…Ïx³¨çš„æ ¸å¿ƒæˆä¸ºå•实体, æ­£æ˜¯å› äØ“æ˜Žç¡®äº†å•å®žä½“ä½œäØ“åŸºæœ¬çš„å…³æ³¨ç‚¹, 我们æ‰å¯ä»¥å¾ç«‹æ›´åР夿‚çš„çŠ¶æ€æœºæœºåˆ¶, 驱动¾pÈ»Ÿçжæ€å˜åŒ?
4. ¾l„äšgåŒ? å‰å°çš„tpl模æ¿å’ŒåŽå°çš„WebActionå…׃ín一个thisObj指针, ¾l“åˆè‡ªå®šä¹‰æ ‡½{¾æœºåˆ? 资æº(js/css½{?½Ž¡ç†æœºåˆ¶½{‰æž„æˆå¯ä»¥é‡ç”¨çš„¾l„äšg¾l“æž„.
5. å置的AOP. BizFlow通过一¿Uç±»ä¼égºŽAOPçš„æ“作对DaoWebActionæä¾›çš„CRUD模型˜q›è¡Œæ‰©å±•, 使得模型的能力得到本质性的扩张. ˜q™ç§AOPæ“作与通常æ„义的AOP的区别在äº? ¾~ºçœè¡Œäؓ在默认情况下å‘生, é™¤éžæ˜‘Ö¼¼›æ­¢. 通过˜q™ç§æ–¹å¼, åè{了baseå’Œextension之间的主体地ä½? 此外BizFlow所æä¾›çš„ä¸ä»…仅是行为的扩展,å®ƒåŒæ—¶æä¾›äº†å¯¹ç•Œé¢çš„æè¿°. 在å‰å°tpl™åµé¢ä¸­é€šè¿‡<ds:BizViewOps/>½{‰æ— å‚数的标½{¾è°ƒç”¨æ¥å®šä¹‰åµŒå…¥åæ ‡. http://canonical.javaeye.com/blog/34941


     与传¾lŸçš„J2EE相比è¾? Witrix表现出很多å˜åŒ?
1. ä¸ä‹É用全局的session, 而是使用局域化的thisObj
2. ä¸å®šä¹‰service层,其功能分解到BizFlowå’ŒHandler中,它们都ä¸è´Ÿè´£æ—¥å¸¸çš„DAOæ“作。独立的MDA部分负责所有的实体CRUD(Create Read Update Delete)æ“作ã€?br /> 3. ä¸å®šä¹‰é¡µé¢èŸ©è½¬è§„则,在å‰åîC‹É用拉模å¼ç›´æŽ¥è¡¨æ˜Žè·Œ™{目标。结åˆå‰å°stdPage对象在å‰å°æŽ§åˆ¶èŸ©è½¬ç›®æ ‡ã€‚åÆˆå¯ä»¥åœ¨BizFlow中酾|®è¦†ç›–的规则åQŒè¿™æ ·å°±å¯ä»¥é’ˆå¯¹ä¸åŒçš„应用场景定义ä¸åŒçš„è·Œ™{规则ã€?br /> 4. 䏿˜¯ä¸ºæ¯ä¸ªæ¨¡å? æ¯ä¸ªåº”用场景¾~–制一¾l„新的页é?而是大多数模å—共用少数几个标准页é?
5. ä¸åœ¨ä¸Žç½‘¾lœæ— å…³çš„service层上定义æƒé™å’Œäº‹åŠ¡ç®¡ç†ã€‚Witrix架构下通过URL明确区分了系¾lŸå†…部和外部, å‰å°è®‰K—®åŽå°æ—¶è°ƒç”¨è€…的全部æ„图是以规范化的形å¼è¡¨è¾¾åœ¨url中的. å› æ­¤æƒé™å’Œäº‹åŠ¡ç®¡ç†ä½œç”¨åœ¨WebObject上在概念上也å¯ä»¥è®¤äؓ是约æŸç›´æŽ¥ä½œç”¨åœ¨URLä¸? ˜q™ä¸ŽREST风格是统一çš? 当然我们也å¯ä»¥è§„范serviceæ–ÒŽ(gu¨©)³•的命åç­‰, 但是昄¡„¶è¦æ±‚一¿Uéšæ„性消失是有代ä»ïL(f¨¥ng)š„, 在URL上我们已¾l付å‡ÞZº†ä»£ä­h(hu¨¢n),ä¸ÞZ»€ä¹ˆè¦åœ¨service上å†ä»˜å‡ºä¸€‹Æ? Witrix中Transactionå’ŒAuth的酾|®æ›´åŠ ç›´è§? å› äØ“è§„èŒƒåŒ–äº†WebObject上的事äšgå“应函数,一般我们也ä¸éœ€è¦è¿›è¡Œç‰¹ŒDŠçš„é…ç½®. Witrix˜q™ç§è®¾è®¡æ›´åР适åˆäºŽç½‘¾lœè¿™ä¸€ä¸¤åˆ†¾l“构的,更加充分的利用这一架构边界所æä¾›çš„éš”¼›ÀL€?
6. ä¸åœ¨™åµé¢ä¸­ä‹É用实体的字段å,而是大é‡é€šè¿‡å…ƒæ•°æ®è¡¨è¾„¡¨‹åºæ„图ã€?a _fcksavedurl="http://canonical.javaeye.com/blog/114066">http://canonical.javaeye.com/blog/114066

   一般J2EEå¤šå±‚æž¶æž„ä¸‹ï¼Œæ‰€è°“çš„æž¶æž„åˆ†è§£ä¸»è¦æ˜¯å¯¹½E‹åº¾Uµå‘的分解,但是½E‹åº¾l“构斚w¢æ˜¯æ²¡æœ‰æ¨ªå‘分解的。而witrix架构的一个核心就是横å‘å­˜åœ¨ç€ CRUD模型和Biz的分解。在¾pÈ»Ÿçš„æ‰€æœ‰å®žçŽ°è¿‡½E‹ä¸­åQŒæ‰€æœ‰CRUDæ“作都剥¼›Õdˆ°MDA模型中,而ä¸éœ€è¦ä“Q何代ç ç¼–制。典型的, witrixåŽå°ä»£ç ä¸€èˆ¬å†™åœ¨handler中,命å为handlerè€Œä¸æ˜¯service是因为handler中负责的内容和j2ee传统上的 service有所ä¸åŒåQŒä¸€èˆ¬serviceæ€ÀL˜¯è¦è´Ÿè´£æŸä¸ªå®žä½“çš„CRUDæ“作åQŒå¤§é‡çš„findxxx代ç ã€‚一般æå€¡çš„æœ€ä½?j¨©ng)_®žè·‰|˜¯å®žçްæŸä¸ªé€šç”¨çš„基¾c»ï¼Œæ‰€ 有service都ç‘ô承该基类获得CRUD能力。但是在Witrix架构中,æ ÒŽ(gu¨©)œ¬æ²¡æœ‰˜q™ä¸€éœ€è¦ã€‚Handleråªè¦å®Œæˆè‡ªå·±ç‰¹å®šçš„功能,它丘q½æ±‚æ“作概念 在其本èín的完整性。没有CRUD, handler没有æ„义。但是handler之所以有æ„义是因为它æä¾›äº†CRUD之外的æ“作。当CRUDæˆäØ“¾pÈ»Ÿä¸€¿U自动进行的背景æ“作æ—Óž¼Œæˆ‘们ä¸å†éœ€è¦? 明确æ„识到它的存在ã€?br />     我们需è¦è®¤è¯†åˆ°æˆ‘们最¾lˆæ‰€éœ€è¦çš„东西å¯èƒ½ä¸æ˜¯è§„æ•´¾l“æž„çš? 它å¯èƒ½è¦æ±‚对于æŸä¸ªè§„整结构进行剪è£åƈ增补附加元素. 但是˜q™æ ·çš„规整结构ä¸åº”åªå­˜åœ¨äºŽæˆ‘们的惌™±¡ä¹‹ä¸­åQŒç›¸åº”的剪裘q‡ç¨‹åº”该是å¯ä»¥å¢žé‡è¿›è¡? å夘q›è¡Œçš? 在Witrixòq›_°ä¸­ï¼Œ 基本的一¿U图景å˜åŒ–是: Witrix中ä¸å†éœ€è¦ä»Žå¤´å¼€å§‹æž„造结æž? 而åªè¦æŒ‡å®šå½“å‰ä¸šåŠ¡å’ŒèƒŒæ™¯æ¨¡åž‹ä¹‹é—´çš„å·®å¼‚éƒ¨åˆ? 在Witrixä¸­æ‰€å†™çš„ä¸šåŠ¡ä»£ç æ˜¯å¯¹æ ¸å¿ƒæ¨¡åž‹çš„æ‰©å±•。这ä¸ä»…仅是概念上的åQŒè€Œæ˜¯å®žé™…体系架构上精¼‹®çš„体现。CRUDä½œäØ“ç‹¬ç«‹çš„æ¨¡åž‹å¸æ”¶äº†¾pÈ»Ÿä¸­å¤§é‡çš„å? 化。整个模型内核是采用通用方å¼å€ŸåŠ©meta实现功能åQŒåÆˆä¸æ¶‰åŠåˆ°ç‰¹å®šäºŽä¸šåŠ¡çš„¾c…R€‚对于那些我们已¾l掌æ¡çš„知识, Witrixæä¾›äº†è¶…­‘Šå¯¹è±¡ç‘ôæ‰?AOP和组仉™‡ç”¨çš„¾l“æž„æŠ½å–æ‰‹æ®µ, 使得知识å¯ä»¥½EÏx­¥¿U¯ç¯.
      数学中存在两¿U基本的分解方å¼åQ?一¿U是加性分è§?(a,b) + (c, d) => (a,b,c,d)åQ?å¦ä¸€¿U是乘性分è§? (a,b) X (c, d) => (ac,bc,ad,bd)åQ?它也对应于张é‡?Tensor)˜qç®—. 在群è®?Group Theory)ä¸­ï¼Œç›´ç§¯å¯¹äºŽå¤æ‚性的化简臛_…³é‡è¦åQŒå®ƒçš„é‡è¦æ€§è¦˜qœåœ¨åŠ å’Œä¹‹ä¸Šã€‚å®žé™…ä¸ŠAOPæ“作¾cÖM¼¼äºŽç›´¿U¯åˆ†è§£ï¼Œ åªæ˜¯å®ƒçš„能力ž®šæœªå¾—到充分的探索ã€? 在Witrix中,biz的作用在感觉上很象是陪集(coset)˜qç®—åQšCURD * biz。ä¸åŒçš„bizä½œç”¨åˆ°åŒæ ïL(f¨¥ng)š„CRUD模型上äñ”生ä¸åŒçš„æ“ä½œé›†åˆåQŒè€Œæ‰€æœ‰biz¾l„æˆçš„é›†åˆæž„æˆç‹¬ç«‹çš„æ•´ä½“ã€?nbsp;  
      Witrixòq›_°ä¸­ä½œä¸ºå†…核的MDAéƒ¨åˆ†é¦–å…ˆæ˜¯ç‰©ç†æ¨¡åž‹é©±åŠ? è€Œä¸æ˜¯é€»è¾‘模型或者对象模型驱åŠ? æˆ‘ä»¬é€šè¿‡åœ¨ç‰©ç†æ¨¡åž‹ä¸Šæ ‡æ³¨çš„æ–¹æ³•æ¢å¤éƒ¨åˆ†å¯¹è±¡æ¨¡åž‹çš„ä¿¡æ¯, 但是我们òq¶ä¸è¯•图把整个èÊYä»¶å¾ç«‹äؓ模型. 所建立的仅仅是整个½E‹åºæ¨¡åž‹çš„内æ ? http://canonical.javaeye.com/blog/29412 一般业内鼓å¹çš„æ‰€è°“MDAæˆåŠŸçš„å…³é”®æ˜¯è¦æé«˜æŠ½è±¡å±‚‹Æ¡ã€? 但是陪集是更抽象å—ã€?正规å­ç¾¤æ›´æŠ½è±¡å—ã€?å®ƒä»¬åªæ˜¯¾pÈ»Ÿçš„æŒ‡æ ‡æ€§è¡¨å¾ï¼Œä½¿å¯¹ä¿¡æ¯çš„distill, 是更å®ÒŽ(gu¨©)˜“ç†è§£çš„一个侧é¢è€Œå·², æŠ½è±¡æ€§åÆˆä¸æ˜¯ä¸€ä¸ªçœŸæ­£çš„目标。很多时候我们需è¦çš„æ˜¯æŠŠ¾pÈ»Ÿé™ç»´åˆ°æŸä¸ªå­½Iºé—´ä¸­ï¼Œå½¢æˆä¸€¿Uå¯æŽ§æ€§ã€?但是˜q™ä¸ªå­ç©ºé—´åƈä¸ä¸€å®šæ˜¯æ›´æŠ½è±¡çš„ã€?br />       ¾Ÿ¤ä½œä¸ºåŸºæœ¬çš„代数¾p»ï¼Œä¸€ä¸ªæœ¬è´¨ç‰¹å¾æ˜¯å…ähœ‰é€†å…ƒã€‚Witrixçš„MDA中明¼‹®å®šä¹‰äº†é€†å…ƒ¾l“æž„åQŒå³ç•Œé¢ä¸Šçš„元素 empty = buttonA + (-buttonA)åQŒè¿™ä¸€åˆ†è§£å…¬å¼åº”用到åŽå?OpA = Update * (-Update)  * OpA。å‡è®¾æˆ‘们已¾lå¾ç«‹äº†¾l“æž„X, 现在需è¦å¾ç«‹ä¸€ä¸ªä¸ŽX略有ä¸åŒçš„结构Y
       X = a + b + c
       Y = a + d + c = (a + b + c) - b + d = X - b + d
虽然Y的两¿U构造方å¼åœ¨æ•°å­¦ä¸Šæ˜¯½{‰ä­h(hu¨¢n)的, 但在物ç†ä¸Šåƈä¸ç­‰ä»—÷€‚第一¿Uæ–¹å¼å¯¹åŽŸæœ‰¾pÈ»Ÿ˜q›è¡Œåˆ†è§£åŽå†¾l„装åQŒè€Œç¬¬äºŒç§æ–¹å¼æ²¡æœ‰æ‰“破原有的东西,ä¸éœ€è¦æ‹†åˆ†ã€‚拆分æ€ÀL˜¯å¯èƒ½å­˜åœ¨é—®é¢˜çš„,正如你把所有电(sh¨´)è„‘é›¶ 件拆装下æ¥å†è£…上很å¯èƒ½ä¼šå‘现多出几个零äšg。一般情况下½W¬äºŒ¿Uæ–¹å¼çš„æž„徿ˆæœ¬è¦ä½Ž. 特别是当一切都¾U ç¼ åœ¨ä¸€èµïL(f¨¥ng)š„æ—¶å€? 一¿U细¾_’度的逆元¾l“构对于一¿U试å›ùN‡ç”¨çš„¾l“构是éžå¸¸å…³é”®çš„. å¯é‡ç”¨æ€§çš„éšœç¢ä¸ä»…仅是æ¥è‡ªäºŽæ— æ³•追加新的功能,很多时候也在于无法å±è”½åŽŸå…ˆå·²ç»æä¾›çš„åŠŸèƒ½ã€‚ç›®å‰æ‰€æœ‰çš„设计原则都未能适时识别出逆元的é‡è¦æ€§ã€‚所有的è®? 计教æ¡å…¶å®žæ‰€æŒ‡çš„æ–¹å‘都是加和, 如何分解出更ž®çš„¾l„å…ƒ, 如何把它们加和在一èµ? å¦‚ä½•ä»Žç»†éƒ¨å¼€å§‹è¿›è¡Œé‡æ–°æž„å»? è€Œä¸æ˜¯è¯´ä¾èµ–于现有已¾låÅžæˆçš„å®è§‚¾l“æž„, 如何˜q›è¡Œ¾l†ç²’度的调整. 所谓的AOP技术æ€è€ƒçš„关键点也在于如何¾l™ç³»¾lŸå¢žåŠ åŠŸèƒ? 很少有äh惛_ˆ°åœºæ™¯æ˜¯äØ“¾pÈ»Ÿå‡å°‘功能òq¶æŠŠ˜q™ç§æ¦‚念大规模正å¼åº”用的, 虽然说AOPå·²ç»åœ¨æŸ¿U程度上å…ähœ‰äº†è¿™¿U能åŠ? 但是真正应用它ä»ç„‰™œ€è¦å¯¹AOP˜q›è¡Œ˜q›ä¸€æ­¥çš„诠释. 当然åQŒçŽ°åœ¨çš„è½¯äšg业连基本¾l“æž„çš„æž„é€ é—®é¢˜éƒ½æ²¡æœ‰å®Œå…¨æžæ¸…æ¥? æ›´åˆ«ææ‰€è°“结构稳定性的问题äº?
     ä»Žç‰©ç†ä¸Šè¯ß_¼ŒY = X - b + d的分解方å¼å…·æœ‰ç‰¹ŒDŠçš„æ„å‘³ã€‚å¦‚æžœæ²¡æœ‰é€†å…ƒåQŒæˆ‘们必焉™œ€è¦åˆ†è§£ã€‚ä½†æ˜¯å¦‚æžœå‘æŽ˜äº†èƒŒæ™¯˜q™ä¸€æ¦‚念åQŒåœ¨é€†å…ƒ˜qç®—ä¸‹ï¼Œå¯¹èƒŒæ™¯ä¸æ˜¯åˆ†è§£è®©å…¶æˆä¸ºå¯è§çš„部分åQŒè€Œæ˜¯é‡‡ç”¨ ˜q½åŠ çš„ï¼Œå¢žåˆ çš„æ–¹æ³•å¯¹èƒŒæ™¯¾l“æž„˜q›è¡Œä¿®æ­£åQŒåˆ™æˆ‘们有å¯èƒ½åœ¨æ²¡æœ‰å®Œæ•´èƒŒæ™¯çŸ¥è¯†çš„æƒ…况下åQŒç‹¬ç«‹çš„ç†è§£å±€éƒ¨å˜åŒ–çš„¾l“构。å³èƒŒæ™¯æ˜¯é€æ˜Žçš„,知识æˆäؓ局部的ã€?      
    Witrix试图æä¾›çš„一¿U图景是永远åªå†™ä»£ç ç‰‡æ–­åQŒè€Œæ‰€æœ‰çš„代ç ç‰‡æ–­¾l„åˆåœ¨ä¸€èµ·åˆæž„æˆä¸€ä¸ªå¯ç†è§£çš„æ•´ä½“。这个整体å¯ä»¥ç‹¬ç«‹ç†è§£ï¼Œä¸éœ€è¦é¢å¤–çš„¾l“构元素ã€? Witrix架构所˜q½æ±‚的是在ä¸å®Œå…¨ä¿¡æ¯ä¸‹å¾æ¨¡ï¼Œä¸è¿›è¡Œæ•´ä½“徿¨¡ã€‚整体模åž?+ 䏿–­å˜åŒ–的局部修æ­?æž„æˆ æœ€¾lˆæ¨¡åž‹ã€‚åã^å°æŠ€æœ¯çš„ç›®æ ‡æ˜¯è®©ä¸€åˆ‡åº”è¯¥å‘生的自动å‘生åQŒè®©ä¸€åˆ‡ä¸è¯¥å‘生的无法å‘ç”Ÿã€‚è¿™ä¸€æ¨¡åž‹çš„æž„å»ºåÆˆä¸æ˜¯trivial的,在概念和实现斚w¢éƒ½è¦ä½œå‡ºå¾ˆå¤š 的努力ã€?br />      
题外åQ?br />      ä»Šå¤©ä¸­åˆå‚加åŒå­¦çš„婚½C? å¸­é—´å’Œä¸€ä¸ªä¸ŽåŒæ–¹æœ‰äº›æ¸Šæºçš„åŒå­¦è°ˆåˆ°ezOne的现çŠ? 大致的评语是: 垃圾, 自己äºÞZ¹Ÿä¸ç”¨. 嬿¥ä¹Ÿè®©äººæœ‰äº›æ„Ÿå? 中国原创的技术æ€ÀL˜¯‹Æºéª—的代åè¯,  ˜q™ä¸€æ–­è¨€ä¸åº”æ€ÀL˜¯å¾—到è¯å®ž.


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º µÂ±£ÏØ| ÀË¿¨×ÓÏØ| ãôºéÏØ| ÓÀÐËÏØ| ¶«ÀöÇø| Î÷ÁÖÏØ| ÖêÖÞÏØ| ´óÐËÇø| ÁÙ¸ßÏØ| ÓñÁÖÊÐ| Ìì¶ëÏØ| ´óÎòÏØ| ³ö¹ú| Âé½­ÏØ| ³±°²ÏØ| ·ÚÎ÷ÏØ| ÈÊÊÙÏØ| ³¤·áÏØ| »ÝË®ÏØ| ͼƬ| ´óÌïÏØ| ½­±±Çø| ¹þ¶û±õÊÐ| ÆÎÌïÊÐ| ÀϺӿÚÊÐ| ÄÏÍ¶ÏØ| ¶ë±ß| Ë«½­| ºÚºÓÊÐ| ·ð¸ÔÏØ| ¹®ÒåÊÐ| Ë«ÇÅÇø| ÑÓ°²ÊÐ| ´ó×ãÏØ| ÄÚ»ÆÏØ| Ð˹úÏØ| ̨¶«ÊÐ| ²ý½­| ·ï»ËÏØ| Áú½­ÏØ| Ä«ÍÑÏØ|