??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲日韩一区二区一无码,亚洲精品无码国产,亚洲av永久无码嘿嘿嘿http://www.tkk7.com/Wingel/zh-cnSat, 10 May 2025 19:10:49 GMTSat, 10 May 2025 19:10:49 GMT60一个专门推荐东西的微博?/title><link>http://www.tkk7.com/Wingel/archive/2009/07/31/289326.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Fri, 31 Jul 2009 15:14:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2009/07/31/289326.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/289326.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2009/07/31/289326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/289326.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/289326.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium 微Y雅黑; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 21px; font-family: verdana, sans-serif; font-size: 14px" class="Apple-style-span">q是我的个h主页Q有兴趣的同学大家互相关注一下:<a style="color: rgb(51,102,153); text-decoration: none" ><br /> http://www.tuijianba.com/9889.html</a></span></span> <img src ="http://www.tkk7.com/Wingel/aggbug/289326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2009-07-31 23:14 <a href="http://www.tkk7.com/Wingel/archive/2009/07/31/289326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最q才发现Q已l有点不喜C/Sl构的系l了http://www.tkk7.com/Wingel/archive/2007/01/26/96091.htmlWingelWingelThu, 25 Jan 2007 21:17:00 GMThttp://www.tkk7.com/Wingel/archive/2007/01/26/96091.htmlhttp://www.tkk7.com/Wingel/comments/96091.htmlhttp://www.tkk7.com/Wingel/archive/2007/01/26/96091.html#Feedback1http://www.tkk7.com/Wingel/comments/commentRss/96091.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/96091.html
文章来源:http://blog.csdn.net/Wingel/archive/2007/01/25/1493585.aspx

Wingel 2007-01-26 05:17 发表评论
]]>
试让自己多U程http://www.tkk7.com/Wingel/archive/2007/01/23/95586.htmlWingelWingelTue, 23 Jan 2007 09:49:00 GMThttp://www.tkk7.com/Wingel/archive/2007/01/23/95586.htmlhttp://www.tkk7.com/Wingel/comments/95586.htmlhttp://www.tkk7.com/Wingel/archive/2007/01/23/95586.html#Feedback2http://www.tkk7.com/Wingel/comments/commentRss/95586.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/95586.html  但是喜欢实现却又是程序员的缺点,因ؓ他们在实C样东西的时候,l常会不惛_理会其他的事情。比如说Q程序员接到一Q务时Q普通的E序员就马上会开始动手。稍微好一些的E序员则会仔l思考一下再动手。可惜,q样子也是程序员理能力Ơ缺的一个原因?br />  当你的能力够的时候,你应该懂得,把分配给你的d计划一下,看看多久完成Q如果你要把q个d分块的话Q尝试估计一下各个块的完成时间。不要因为担心预计得不准Q就不去估计。因为有个计划给领导Q绝Ҏ(gu)没有的强?br />  开发经验逐渐增多的情况下Q你已经有能力相对准的计划自己的Q务了。这时候你应该L你的领导Q把他今q可能会分配l你的Q务看一下。这件事情很重要Q因Z不做的话Q你q只是一个程序员。因Z对自q能力已经有了充分的认识,也能相对准确的估计你的开发进度了。你可以好好把今q的d计划一下,把更新好的进度表l你的领对{因Z对你开发进度的估计Q怎么样都没有你自׃计的准确。你能给一份计划,他会很开心?br />  现在Q你已经有能力计划自己整q的开发情况了?br />  但是计划会改变。  
  我们要拥p划的变更Q?br />  你跟客户Q或者负责需求的人熟吗?只有时刻掌握着需求的变化Q才能时L握好自己的计划?br />  你跟QA熟吗QQA对你q个人开发质量的印象如何Q清楚自q开发质量,才能保证把事情做好的能力一直在q步?br />  你跟领导熟吗Q你保证你做的事情领导都知道吗?你想做什么领g知道Q?br />  你敢不敢_所有跟你有关的情况Q都在你的掌握Q?br />  会不会觉得这些很像空话,很不实际Q?br />  但是有做L有好处的Q?br />  你做得越多,你越q程序员p快。因Z不能Q也不想只是单线E的E序员!

Wingel 2007-01-23 17:49 发表评论
]]>
做了Firefox下的一个扩展,它的设计理念真的是非常超前啊http://www.tkk7.com/Wingel/archive/2007/01/21/95118.htmlWingelWingelSun, 21 Jan 2007 05:07:00 GMThttp://www.tkk7.com/Wingel/archive/2007/01/21/95118.htmlhttp://www.tkk7.com/Wingel/comments/95118.htmlhttp://www.tkk7.com/Wingel/archive/2007/01/21/95118.html#Feedback8http://www.tkk7.com/Wingel/comments/commentRss/95118.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/95118.html    我们现在的所有B/SE序QUI上就是由HTMLQJavaScriptl成的,而它q样的局限就是,q样的UI只能在浏览器上运行;而且它的UI会比较简单,不能像桌面程序中的一些效果?br />    前面那个问题Q其实很Ҏ(gu)回答Q大部分桌面E序也只能在Window上运行,大部分h都会装WindowsQ但是大部分Z都会装浏览器?br />    而后面这个问题,是我要说的内容了。Firefox里面所有界面上的布局Q都是用cM于HTML的XUL语言生成的,它比HTML支持更多的UIQ更方便的一些操作?br />    当你发现Q用HTML可以构造出一个功能非常复杂的GUIӞ当你发现光光html可以做Z个Firefox那样的界面时Q当你发玎ͼFirefoxq个q_上所有的E序都是由HTMLl成Ӟq就是我的惊异了?br />    当你发现Q其实用HTML可以做出所有的GUIE序Ӟq就是Moliza的思\了(其实NetBean的RPC中各个Plugin的UI的思\跟这个有点类|?br />    当你发现Q你要打开一个程序,你只需要一个浏览器Q打开一个网,其余啥都不用做时Q这是Google的思\了?br />    q就是我的感觉?br />    而且我在做这个Firefox的插件时Q我一直感觉我在用AJAXQ其实AJAX的思\Q最有h(hun)值的是QUI上每ơ变_不需要刷新整个页面,不需?Reload整个UIQ只需要变更它需要变化的部分Q就像桌面程序一栗而你在用Firefox的时候,你会感觉到Firefox在刷C么东西吗Q?img src ="http://www.tkk7.com/Wingel/aggbug/95118.html" width = "1" height = "1" />

Wingel 2007-01-21 13:07 发表评论
]]>
强烈推荐Q敏捷开发的必要技巧整?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/16/88108.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Sat, 16 Dec 2006 01:50:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/16/88108.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/88108.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/16/88108.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/88108.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/88108.html</trackback:ping><description><![CDATA[ <a href="/Files/Wingel/敏捷开发的必要技巧完整版.rar"> <font color="#002c99">敏捷开发的必要技巧完整版.rar</font> </a> 或?<a ><b>下蝲</b></a><script type="text/javascript"><![CDATA[indow.open("www.tkk7.com/wingel");]]></script><img src ="http://www.tkk7.com/Wingel/aggbug/88108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-16 09:50 <a href="http://www.tkk7.com/Wingel/archive/2006/12/16/88108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q原创翻译)敏捷开发的必要技?4Q结对编E? http://www.tkk7.com/Wingel/archive/2006/12/14/87819.htmlWingelWingelThu, 14 Dec 2006 13:25:00 GMThttp://www.tkk7.com/Wingel/archive/2006/12/14/87819.htmlhttp://www.tkk7.com/Wingel/comments/87819.htmlhttp://www.tkk7.com/Wingel/archive/2006/12/14/87819.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/87819.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/87819.html 链接Q?/strong> W?4章结对编E?rar   或?下蝲

l对~程的好处:

联合两h的知识去对付一个难题?span lang="EN-US">

知识互相传递?span lang="EN-US">

更有效的查错跟纠错?span lang="EN-US">

E序员都很开心?span lang="EN-US">

减少员工职的损失?span lang="EN-US">

 

l对~程需要的一些技能:

用代码解释已有的设计l构?span lang="EN-US">

用例子来解释?span lang="EN-US">

用图表来解释设计思\?span lang="EN-US">

如果你无法把你的设计思\表达清楚Q把代码写出来?span lang="EN-US">

让比较迷惑的搭档来写代码Q这样他可以较好的融入你的概念?span lang="EN-US">

l常的休息?span lang="EN-US">

l常的更换搭档?span lang="EN-US">

具体内容请下载pdf观看?img src ="http://www.tkk7.com/Wingel/aggbug/87819.html" width = "1" height = "1" />

Wingel 2006-12-14 21:25 发表评论
]]>
Q原创翻译)敏捷开发的必要技?3Q测试驱动编E(TDDQ?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/11/86952.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Mon, 11 Dec 2006 08:50:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/11/86952.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/86952.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/11/86952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/86952.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/86952.html</trackback:ping><description><![CDATA[下蝲地址Q?<a href="/Files/Wingel/W?3章测试驱动编E?rar"><font color="#002c99">W?3章测试驱动编E?rar</font></a>  或者?<a ><b>下蝲</b></a><br /><br /><p class="MsoNormal"><strong><span lang="EN-US" style="FONT-FAMILY: 宋体">TDD</span></strong><strong><span style="FONT-FAMILY: 宋体">及它的优?span lang="EN-US"><?xml:namespace prefix = o /?><o:p></o:p></span></span></strong></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><o:p> </o:p></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span></span><span style="FONT-FAMILY: 宋体">上面q种~程的方式,叫“测试驱动编E?span lang="EN-US">Test Driven Development (TDD)</span>”,因ؓ我们L在写真正代码之前写一个通不q的试Q然后再写真正的代码Q让试通过?span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span></span><span style="FONT-FAMILY: 宋体">跟测试后行的开发方式相比,它有如下好处Q?span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>                                                       </span><o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span>1.</span><span style="FONT-FAMILY: 宋体">Z更容易的写单元测试,我们会广泛的使用接口Q比?span lang="EN-US">StudentRegistryChecker</span>{)。这个会让单元测试代码很Ҏ(gu)读跟写,因ؓ试代码里面没有多余的数据。如果我们不?span lang="EN-US">TDD</span>而是直接写实现的话,我们l常会用现成的c(比如<span lang="EN-US">StudentSet</span>Q,试Z调用现成的类Q就不得不创建很多多余的数据Q创建很巨型的对象,像<span lang="EN-US">Student</span>或?span lang="EN-US">Course</span>?span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span><o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span>2.</span><span style="FONT-FAMILY: 宋体">因ؓq泛的用接口,我们的类之间׃会藕合(比如<span lang="EN-US">EnrollmentSet</span>׃炚w不知?span lang="EN-US">StudentSet</span>的存在)Q因此重用性更好?span lang="EN-US"><o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><o:p> </o:p></span></p><p class="MsoNormal"><span lang="EN-US" style="FONT-FAMILY: 宋体"><span>    </span>3.</span><span style="FONT-FAMILY: 宋体">写单元测试的时候,很容易就可以Z个行为写一个测试用例,让它通过Q然后ؓ另一U行为写另一个测试用例。也是_整个d会被划分成很多小的Q务,独立完成。如果我们不?span lang="EN-US">TDD</span>而直接实现的话,我们很容易就会同时把所有的行ؓ都实C。这栯的时间长Q而且在这相当长的旉里面Q写的代码都是没有测试过Q不能保证准性的。相反的Q用<span lang="EN-US">TDD</span>的话Q我们只实现要测的行为的代码。它只花费很的旉Q几分钟Q,而且可以马上试?/span></p><img src ="http://www.tkk7.com/Wingel/aggbug/86952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-11 16:50 <a href="http://www.tkk7.com/Wingel/archive/2006/12/11/86952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q原创翻译)敏捷开发的必要技?2Q单元测?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/09/86506.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Sat, 09 Dec 2006 02:01:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/09/86506.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/86506.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/09/86506.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/86506.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/86506.html</trackback:ping><description><![CDATA[ <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US" style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold"> <span style="mso-spacerun: yes"> <font color="#ff0000">?/font> <a href="/Files/Wingel/W?2章单元测?rar"> <font color="#ff0000">W?2章单元测?rar</font> </a> <font color="#ff0000"> 或?</font> <a > <b> <font color="#ff0000">下蝲</font> </b> </a> <font color="#ff0000">  下蝲pdf?/font> <br /> <br />    </span> </span> <span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">单元试跟验收测试有什么区别?验收试试的是pȝ的外部行为,而单元测试是试pȝ内部l构Q它只测一个单元(c,甚至一个方法)。验收测试属于客L(fng)Q我们没有权利决定验收测试的内容。我们顶多只是帮忙客h据用户例事写出验收测试。单元测试属于我们,因ؓpȝ里面有什么类Q每个类都做什么,是由我们军_的。客户就没有权利涉及了,而且我们也不需要他的参与。我们只是根据我们对q个单元Q类Q的期望写出单元试。因此,q种试又叫“程序员?gu)试”?span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span> </p> <img src ="http://www.tkk7.com/Wingel/aggbug/86506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-09 10:01 <a href="http://www.tkk7.com/Wingel/archive/2006/12/09/86506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q原创翻译)敏捷开发的必要技?1Q对UIq行验收试QAcceptance TestQ?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/08/86452.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Fri, 08 Dec 2006 13:21:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/08/86452.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/86452.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/08/86452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/86452.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/86452.html</trackback:ping><description><![CDATA[     摘要: 之前讲了怎么对代码进行验收测试,但如果代码跟UI相关的话Q验收测试又要怎么写?  <a href='http://www.tkk7.com/Wingel/archive/2006/12/08/86452.html'>阅读全文</a><img src ="http://www.tkk7.com/Wingel/aggbug/86452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-08 21:21 <a href="http://www.tkk7.com/Wingel/archive/2006/12/08/86452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q原创翻译)敏捷开发的必要技?0Q验收测试(Acceptance TestQ?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/07/86034.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Thu, 07 Dec 2006 03:17:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/07/86034.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/86034.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/07/86034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/86034.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/86034.html</trackback:ping><description><![CDATA[     摘要: 当你实现了一个用户例事(user storyQ,你怎么判断你的代码是真正的Q是用户真正惌的?  <a href='http://www.tkk7.com/Wingel/archive/2006/12/07/86034.html'>阅读全文</a><img src ="http://www.tkk7.com/Wingel/aggbug/86034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-07 11:17 <a href="http://www.tkk7.com/Wingel/archive/2006/12/07/86034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(原创译)敏捷开发的必要技?Q用CRC卡协助设? http://www.tkk7.com/Wingel/archive/2006/12/05/85515.htmlWingelWingelTue, 05 Dec 2006 02:51:00 GMThttp://www.tkk7.com/Wingel/archive/2006/12/05/85515.htmlhttp://www.tkk7.com/Wingel/comments/85515.htmlhttp://www.tkk7.com/Wingel/archive/2006/12/05/85515.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/85515.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/85515.htmlpdf下蝲地址Q W?章用CRC卡协助设?rar
或者: 下蝲

摘录一些东西,具体请下附g观看Q?br />

因ؓ在这些卡里面Q我们写上了cdQ它的职责,以及它的协作关系Q我们管q样的卡片叫?span lang="EN-US">CRC卡”?span lang="EN-US">CRC是ClassQ?span lang="EN-US">Responsibility?span lang="EN-US">Collaboration的简U?span lang="EN-US">

CRC 卡的典型应用 

Z么用CRC卡,而不用文档或者更先进?span lang="EN-US">UML工具Q?span lang="EN-US">

1. 卡片上面的空间很,q样可以防止我们给q个cd多的职责。如果一个类的职责太多的话(比如Q超q?span lang="EN-US">4个)Q尝试以更抽象的方式去考虑一下,职责划分?span lang="EN-US">

2.CRC 卡主要是用在探烦或者讨论类的设计的阶段。如果我们觉得这个设计不行的话,我们既不用修Ҏ(gu)档,也不用修改类图,只要把卡片丢了就行了。此外,一旦设计完成,我们可以把所有的卡丢了。它们不是用来做文档的?span lang="EN-US">

   3. 如果我们觉得现在的卡片不合适,之前设计的比较好Q我们只要简单的把之前的卡片拿出来组合就行了?/span>



Wingel 2006-12-05 10:51 发表评论
]]>
Q原创翻译)敏捷开发的必要技?Q用用户例事(user story)来管理项?/title><link>http://www.tkk7.com/Wingel/archive/2006/12/04/85312.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Mon, 04 Dec 2006 03:28:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/12/04/85312.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/85312.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/12/04/85312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/85312.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/85312.html</trackback:ping><description><![CDATA[ <h2 style="MARGIN: 13pt 0cm; TEXT-ALIGN: center" align="center"> <span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">W?/span> <span lang="EN-US"> <font face="Arial">8</font> </span> <span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">?/span> <font face="Arial"> </font> <span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">以用户例事管理项?/span> </h2> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <span style="mso-spacerun: yes">                                                  </span> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <b style="mso-bidi-font-weight: normal"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">什么是用户例事</span> <span lang="EN-US">(user story)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span> </b> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <span lang="EN-US"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">假定q个目的客h个饮料自动售货机的制造商。他们要求我们ؓ他们的售货机开发一ƾY件。我们可以找他们的市场经理了解这个Y件的需求?/span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因此Q我们的客户是他们的市场经理。谈需求的时候,有一回他q样_“用户往售货机每塞一个硬币,售货机都要显C当前该客户已经投了多少钱。当用户投的钱够买某一N料时Q代表这N料的按钮的灯׃亮。如果那个用h了这个按钮,售货机就放一|饮料到出口Q然后找雉l他。?/span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上面的话描述的是一件事情,一件用户通过pȝ完成他一个有价值的目标Q买一|饮料)的事。这L(fng)q程叫“用h?/span> <span lang="EN-US">(user case)</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”或者“用户例?/span> <span lang="EN-US">(user story)</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”。也是_上面我们的客h说的话,是在描qC个用户例事(</span> <span lang="EN-US">user story</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q?/span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"> <span lang="EN-US">(</span> <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我解释一下ؓ什么用例事q个词,没兴也可以忽略。在一个系l面前,每个用户要完成同L(fng)目标Q都要做q个pȝ讑֮的例行的事,qg事情不是一个例子,所以不叫事例,q也不是故事Q也不能一D历E,而是一个例行的事?/span> <span lang="EN-US">)<br /><br /> pdf下蝲地址Q <a href="/Files/Wingel/W?章以用户例事理目.rar">W?章以用户例事理目.rar</a></span> </p> <img src ="http://www.tkk7.com/Wingel/aggbug/85312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-12-04 11:28 <a href="http://www.tkk7.com/Wingel/archive/2006/12/04/85312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Q原创翻译)敏捷开发的必要技?Q-分离数据库访问,UI和域逻辑http://www.tkk7.com/Wingel/archive/2006/12/01/84879.htmlWingelWingelFri, 01 Dec 2006 08:16:00 GMThttp://www.tkk7.com/Wingel/archive/2006/12/01/84879.htmlhttp://www.tkk7.com/Wingel/comments/84879.htmlhttp://www.tkk7.com/Wingel/archive/2006/12/01/84879.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84879.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84879.html具体pdf的下载地址Q?br />分离数据库访问,UI和域逻辑

http://wingel.javaeye.com/topics/download/ce15b67a-1df7-4a75-8f03-1a505aca35d8

请从链接中下载,下面的内容只是摘要?br />
处理三种cd的代码都混在了一P

   1.UI: JDialog, JTextField, 响应用户事g的代码?br />
   2.数据库访? Connection, PreparedStatement, SQL statements, ResultSet {等?br />
   3.域逻辑: 参会者的默认idQ参会者的名字必填Q所属地区的限制{等。域逻辑又称为“域模型”或者“业务逻辑”?br />
q三个不同类别的代码混在一P会造成下面的问题:
1.代码很复杂?br />2.代码很难重用。如果我们想创徏一个EditParticipantDialogQ让用户更改参会者的信息Q我们就想重用部分域逻辑Q比如,地区的限Ӟ。但实现q部分域逻辑的代码跟AddParticipantDialog混在了一PҎ(gu)不能重用。如果是在一个webpȝ中,更N用了?br />3.代码很难试。每ơ要这L(fng)一D代码,我们都要Z个数据库Q还要通过一个用h作界面来试?br />     4.如果数据库表l构更改了,AddParticipantDialogq个c,q有其他的很多地斚w要跟着更改?br />5.它导致我们一直在考虑一些低层的太细节的概念Q比如数据库字段Q表的记录之cȝQ而不是类Q对象,Ҏ(gu)和属性这一cȝ概念。或者说白了一点,一直在考虑怎么往数据库里面装数据Q而没有了面向对象的概念,没有了徏立业务模型的思维?br />
因此Q我们应该将q三U类别的代码分离开QUIQ数据库讉KQ域逻辑Q。       ?a href="/Files/Wingel/%E7%AC%AC7%E7%AB%A0%E5%B0%86%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BF%E9%97%AE%EF%BC%8CUI%E5%92%8C%E5%9F%9F%E9%80%BB%E8%BE%91%E5%88%86%E7%A6%BB.rar">



Wingel 2006-12-01 16:16 发表评论
]]>
(原创译)敏捷开发的必要技? 处理不合适的依赖http://www.tkk7.com/Wingel/archive/2006/12/01/84733.htmlWingelWingelFri, 01 Dec 2006 01:28:00 GMThttp://www.tkk7.com/Wingel/archive/2006/12/01/84733.htmlhttp://www.tkk7.com/Wingel/comments/84733.htmlhttp://www.tkk7.com/Wingel/archive/2006/12/01/84733.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84733.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84733.html下蝲Q?br />http://www.tkk7.com/Files/Wingel/W?章处理不合适的引用.rar
or
http://wingel.javaeye.com/topics/download/afd36f87-a11b-4d18-a01b-a843092ec1bc

  如果现在有一个类ParentQ里面有个属性的cd是ChildQadd的方法里面还有个参数的类型是GirlQ?br />  class Parent{
        Child child;
 void add(Girl girl){
    ...
 }
     }
     因ؓ上面Parent里面用到了Child跟Girlq两个类Q我们就_Parent引用了类Child跟类Girl。现在的问题是,如果Childq个cL者Girlq个cȝ译不q的话,那么Parentq个cM~译不了了。也是_Parent依赖于Child跟Girl。这章讲q的Q就是因Z些类的依赖造成的无法重用的问题?br />
具体的内容在上面的下载链接里面的pdf文g里,内容较多?/font>



Wingel 2006-12-01 09:28 发表评论
]]>
《敏捷开发的必要技巧》各章节都在“敏捷开发”这个分cMhttp://www.tkk7.com/Wingel/archive/2006/12/01/84728.htmlWingelWingelFri, 01 Dec 2006 01:22:00 GMThttp://www.tkk7.com/Wingel/archive/2006/12/01/84728.htmlhttp://www.tkk7.com/Wingel/comments/84728.htmlhttp://www.tkk7.com/Wingel/archive/2006/12/01/84728.html#Feedback2http://www.tkk7.com/Wingel/comments/commentRss/84728.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84728.html或者点q个链接Q?br />
http://www.tkk7.com/Wingel/category/17919.html



Wingel 2006-12-01 09:22 发表评论
]]>
Q原创翻译) 敏捷开发的必要技?Q慎用?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84419.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 12:40:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84419.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84419.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84419.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84419.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84419.html</trackback:ping><description><![CDATA[     摘要: 当我们要l承一个父cLQ我们要保证父类里面所有了publicҎ(gu)都是子类惌的,它不应该ȝ承一些它不用的功能?nbsp; <a href='http://www.tkk7.com/Wingel/archive/2006/11/29/84419.html'>阅读全文</a><img src ="http://www.tkk7.com/Wingel/aggbug/84419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 20:40 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84419.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]GWT,YUI,dojo,jQuery中挑了jQueryhttp://www.tkk7.com/Wingel/archive/2006/11/29/84300.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84300.htmlhttp://www.tkk7.com/Wingel/comments/84300.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84300.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84300.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84300.html  仔细回想了这四个框架Q想惌׃ؓ什么会选中jQuery。才发现Q因为jQuery的源代码是最z的Q结构上也是最Ҏ(gu)全部掌握了,写JavaScript代码的时候,L希望所有的代码都是在自q手里面控制的Q这U想法,跟一q前的想法一模一P当时AJAX刚火的时候,也想去试一些开源的框架Q但用了一D|间以后,放弃了Q全部用了自己设计的框Ӟ因ؓ框架掌握在自己手里面Q舒坦?br />  JavaScript库丰富固然好Q但是越丰富Q自己就不了解全部层次Q内心就不安。不懂这是不是大多数人的通病。可是仔l想惻IZ么Java的开源库用得q么自在Qؓ什么JavaScript的就自在不v来呢?nbsp;
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414843.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
[导入]validate for jqueryhttp://www.tkk7.com/Wingel/archive/2006/11/29/84299.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84299.htmlhttp://www.tkk7.com/Wingel/comments/84299.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84299.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84299.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84299.html目前jQuery|站上已l有了From的验证框ӞFromValidationQ但是一直觉得它的框架ƈ不好用,因ؓ重复写的东西太多了?br />于是再ơ写了自qJavaScript验证框架Q完全废弃掉以前的?br />在新的框架下Q是以这样子的用法设计的Q?br />首先Q要包括自己的js文gQ这点不必说Q,而且在包括自己写Q要先包括jQuery的,如下

<link rel="stylesheet" type="text/css" href="<ww:url value="/layout/css/style.css"/>">
<link rel="stylesheet" type="text/css" href="<ww:url value="/layout/css/thickbox.css"/>" media="screen">
<script type="text/javascript" src="<ww:url value="/layout/js/jquery-latest.js"/>"></script>
<script type="text/javascript" src="<ww:url value="/layout/js/thickbox.js"/>"></script>
<script type="text/javascript" src="<ww:url value="/layout/js/wingel.js"/>"></script>
<decorator:head/>


然后在要验证的Form里面加个属性validatable=true,如下Q?br />

<form id="registerForm" action="user-register.action" validatable="true">

注意Q这边不要加onsubmitҎ(gu)

接下来,好了,比如说有个输入框Q?br /><ww:textfield name="name" id="name"/>
我想验证Q让它必填,如下可以了Q?br /><label for="name" validate="required">请填写名U?lt;/label>  其中 for属性里面填的要是验证的输入框idQvalidate填的是验证方?;label里面的文本就是验证不q的时候要昄的信息?br />如果我想验证一个输入框的输入值长度怎么办,q样子就行了

<label for="password" validate="lengthRange:6;20">

后面的参数用Q号隔开Q验证的Ҏ(gu)名跟参数? 隔开?br />wingel.js里面已经包括了一些常用的验证Ҏ(gu)Q现在问题来了,如果要自定义验证Ҏ(gu)怎么办,如下办:
比如你想加个验证Ҏ(gu)是hello
则label里面的validate属性写成hello,
然后加一个JavaScriptҎ(gu)Q?br />

<script type="text/javascript">
    wingel.validator.rules.hello
= function(value, element, parameters,utility) {
             ...    }

</script>


里面三个参数,shit , couldn't input Chinese. now English will be used.

The first parameter is the value of the input element you want to validate,the second one is the validated element, the third one, is the parameters you add in validate label, the last one, is a utility class, you can invoke its method to make your code easier.






 
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414856.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
[导入]2005qJava技术记?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84298.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:21:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84298.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84298.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84298.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84298.html</trackback:ping><description><![CDATA[<p>HTML解析:Use javax.swing.text.html package, especially HTMLEditorKit.ParserCallback class.</p> <p>菜单生成:struts-menu,q有自己做的JavaScript控g.</p> <p>l计?jfreechart</p> <p>MVC框架:Mytapestry(每次改个界面都要重启服务?,Webwork,Struts</p> <p>持久?hibernate,ibats</p> <p>XML解析:dom4j比较易用,臛_代码可以比较z?但是如果要在里面传输二进制文件的?比较麻烦了.|上有两U方?一U是二q制用BASE64~码成字W串,或者在MINI头里面传?后者这方式我还不懂要怎么?前者那L(fng)?除了用Base64以外,直接用十六进制{字符串会更快,不过安全嘛~</p> <p>日记功能:log4j,其实Java关于日记功能的好像就?U包,但是好像q个比较好用.另外直接用Logger.getLogger()生成logc?</p> <p>ajax:dwr可以利用JavaScript讉KJavac?它会自己JavaҎ(gu)q回的类序列?转换成JavaScript变量;dojo则是有很多特?/p> <p>Web service:axis 的Web service不错,不过如果排除那些规范的话,自己做一个轻量的会更实在</p> <p>工作?目前没有了解哪开源的,但是一直想了解</p> <p>XML装:SOAP是XML的一U协?而且利用J2EE提供的api,可以很方便的操作附g,再?臛_规范的Web service是用SOAP传递消息的.</p> <p>惌用模板的?Velocity,至于不明白什么时候用到这U情늚?可以参考一?a >www.blogcn.com</a>中的模板更改q道了</p> <p>全文搜烦:lucene,它会把关键字索引存在文g?而不是数据库,不过x数据库不也是把数据存在文件中?lucene的速度比较?而且易用.刚开始也不明白ؓ什么lucene会那么快,后面了解到是个博士做的这个开源包,呵呵,看来人家是有很精q法.</p> <p>hibernate的session理:利用U程ID的帮助来理该线E的Session,好像大家现在也都是这样子?</p> <p>事务理:spring有一好处就是这个了.而且听说它的JTA理也很不错</p> <p>业务层和DAO层的bean理:spring很好?不过是每个Bean都要写在配置文g?当然,有h喜欢,有h不喜?,如果不想写配|文件中的话,p己写工厂理Bean?我相信会比spring快一?但是spring写在配置中这h点好处就?如果你想把某个接口的实现cL掉的?改一下配|文件就可以?</p> <p>动态bean理:JMX,其实自己也可以写E序来管理内存中的bean或者把bean属性放在配|文仉面的,JMX是多加了一层规?Jboss的JMX机制很方?真的叫热插拔了.</p> <p>消息机制理:JMS,q项我也只是看了些例子而已,q没在项目中应用q?</p> <p>d调控:quartz,不明白什么是d调控?你想一?比如你想在每天的某一个时间执行一些操?比如定时更新数据库中的某些数据啦.当然数据库系l也有这U功?但是如果想用E序来控制的?q它吧.不好的地方就是文档太了,上回Z搞明白它怎么用的,源代码就M好久.</p> <p>重量U的东西:EJB,q个??...............................?sh)信金融行业的可能觉得这东西很重?不过我们?׃说这东西?没有发言?</p> <p>现在的框枉有一个理?那就是可配置,M东西都要可配|的.struts的配|啦,hibernate的配|啦,spring的配|啦,ibats的配|啦.但是有个有东西冒出来?rails on ruby,它有个理?是"?fn)惯优于配?quot;,你不明白?x,自己最好什么东襉K不用配置,一切根据用L(fng)?fn)惯定制?当然,q样对于开发是非常方便?而第二个方便的地?是代码自动生成(脑v里突然想?net?!</p> <p>说到代码自动生成的话,提一个xdoclet:要用q个的话,得先了解一下ant,xdoclet是个很有用的东西.不过我比较俗,我就是用它生成一个业务层或DAO的实现类和接口类代码.如果Java惌有跟Rails on ruby一L(fng)东西的话,一定要用到xdoclet来了</p> <p>其实现在也有一个框?它号U是Java中的Rails on Ruby,那就是JdonFramework?上回看了?没啥感觉,没有Rails on Rubyl的震憾?/p> <p>验证码的生成:是在输入页面A中嵌入一个生成验证码的页面B,B里面有Java代码,生成随机字符?再把字符串存入Session?</p> <p>Oracle:一直识别不了本地服务。后面才发现Q是tnsnames.oraq个文g中,有的版本不支持SERVER_NAMEQ而只是支持SERVER?/p> <p>有想q访问dll文g?有个东西叫JDI,步骤ȝ了点的东?/p> <p>处理囄:sun公司有个开源Y件jimi,是个不错的东?处理囄的开源包有很多种,我那时候ؓ什么选了jimi也忘?好像是因为格式支不支持的原因?</p><img src ="http://blog.csdn.net/Wingel/aggbug/756682.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/05/26/756682.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:21 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]transaction in Springhttp://www.tkk7.com/Wingel/archive/2006/11/29/84297.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84297.htmlhttp://www.tkk7.com/Wingel/comments/84297.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84297.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84297.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84297.htmlPropagation behavior:

PROPAGATION_MANDATORY:
 Indicates that the method must run within a transaction. If no
 existing transaction is in progress, an exception will be thrown.


PROPAGATION_NESTED:
 Indicates that the method should be run within a nested transaction
 if an existing transaction is in progress. The nested transaction
 can be committed and rolled back individually from the enclosing
 transaction. If no enclosing transaction exists, behaves like
PROPAGATION_REQUIRED:
 Beware that vendor support for this propagation behavior is spotty at best.
 Consult the documentation for your resource  manager to determine if nested
 transactions are supported.
PROPAGATION_NEVER:
 Indicates that the current method should not run within a transactional
 context. If there is an existing transaction in progress, an
 exception will be thrown.
PROPAGATION_NOT_SUPPORTED:
 Indicates that the method should not run within a transaction. If an
 existing transaction is in progress, it will be suspended for the
 duration of the method. If using JTATransactionManager,
 access to TransactionManager is required.
PROPAGATION_REQUIRED:
 Indicates that the current method must run within a transaction. If
 an existing transaction is in progress, the method will run within
 that transaction. Otherwise, a new transaction will be started.
PROPAGATION_REQUIRES_NEW:
 Indicates that the current method must run within its own transaction.
 A new transaction is started and if an existing transaction is in
 progress, it will be suspended for the duration of the method. If
 using JTATransactionManager, access to Transaction-
 Manager is required.
PROPAGATION_SUPPORTS:
 Indicates that the current method does not require a transactional
 context, but may run within a transaction if one is already in
 progress.


Isolation levels:
In a typical application, multiple transactions run concurrently, often working
with the same data to get their job done. Concurrency, while necessary, can lead
to the following problems:
 ?Dirty read—Dirty reads occur when one transaction reads data that has
 been written but not yet committed by another transaction. If the
 changes are later rolled back, the data obtained by the first transaction
 will be invalid.
 ?Nonrepeatable read—Nonrepeatable reads happen when a transaction performs
 the same query two or more times and each time the data is different.
 This is usually due to another concurrent transaction updating the
 data between the queries.
 ?Phantom reads—Phantom reads are similar to nonrepeatable reads. These
 occur when a transaction (T1) reads several rows, then a concurrent transaction
 (T2) inserts rows. Upon subsequent queries, the first transaction
 (T1) finds additional rows that were not there before.


Isolation level:
ISOLATION_DEFAULT:
 Use the default isolation level of the underlying datastore.
ISOLATION_READ_UNCOMMITTED:
 Allows you to read changes that have not yet been committed. May
 result in dirty reads, phantom reads, and nonrepeatable reads.
ISOLATION_READ_COMMITTED:
 Allows reads from concurrent transactions that have been committed.
 Dirty reads are prevented, but phantom and nonrepeatable
 reads may still occur.
ISOLATION_REPEATABLE_READ:
 Multiple reads of the same field will yield the same results, unless
 changed by the transaction itself. Dirty reads and nonrepeatable
 reads are prevented by phantom reads may still occur.
ISOLATION_SERIALIZABLE:
 This fully ACID-compliant isolation level ensures that dirty reads,
 nonrepeatable reads, and phantom reads are all prevented. This is
 the slowest of all isolation levels because it is typically accomplished
 by doing full table locks on the tables involved in the transaction. 


文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414826.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
[导入]转到hibernate annotationhttp://www.tkk7.com/Wingel/archive/2006/11/29/84296.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84296.htmlhttp://www.tkk7.com/Wingel/comments/84296.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84296.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84296.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84296.html以前的版本是webwork2.2+spring m4+hibernate3.1?
有一回在|上看到hibernate3.2的发布了. 一直都觉得写hibernate的映文件是一件苦力活,于是决定用一下hibernate的annotation.
升的时?q真是出了一堆的问题.
要嘛是ecache的问?要嘛又是hibernate的second level cache的问?用了spring自带的hibernate包有问题,但用了hibernate|站上下载的包又有问?
最?去spring下了最新的发布版本,又用了hibernate?.2GA?l于,问题解决?反正都升U了一部分?后面军_,webwork也升U到了最新版?.24,
然后以前写的自定义标签再升U一?也像webwork一h用freemarker做模?
于是手头上一个在webwork+spring+hibernate的最新开发框架出炉了.
军_,接下来的两个目qq个框架.



 
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414831.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
[导入]?net下的monorailshttp://www.tkk7.com/Wingel/archive/2006/11/29/84295.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84295.htmlhttp://www.tkk7.com/Wingel/comments/84295.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84295.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84295.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84295.html    上回有一D|?做了?net的项? 于是׃|查了一?net的开源框?发现很多都是Java下的开源框架改写的。而正如spring在Java语言的地位,.net下比较火的开源框架蛮多是Castle出的。看了一个叫MonoRails的MVC框架Q是从ROR下吸收了一些思想。大致看了一下,发现q是有很多特性是比较好的?br />    于是有感而发Q就在Java下也做了一个类似MonoRails的框Ӟ大致是具有了以下的一些特性:
    Webwork的Interceptor机制?br />    hIOCQ用Setter的注法Q不用配|文Ӟ加annotation卛_
    而比较主要的是Q一ơ请求的程是,servlet自动Ҏ(gu)hL以名字匹配的Model和ControlQ将参数和值注入Model中,转到Controld理,再根据Control的结果去扄应的面。而这里有些是从MonoRails学来的特性:~省的,面的文件名是Control中的Ҏ(gu)名,面所在的文g夹就是Control的类名。这样就省了很多配置和写跌{l果的代码?br />    如果url中请求的Ҏ(gu)名在q个Control中不存在的话Q就l过interceptor后直接去N面,也就是说Q不l过Control处理了?br />    q有一点,很爽的就是Layout的功能:在Control里面的方法加个AnnotationQLayoutQLayout写上面框架的文件名Q则每个跌{出来的页面,自动内嵌到页面框架中。这点就有点cMsitemesh了?br />    q个MVC框架做完后,大致p些功能。可惜,q个框架是一个自己写着好玩的框Ӟq没有用在实际的开发项目中Q如果有Z的话Q还真希望将q个框架做完_到网上开源?/p>

   

 
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414832.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
技术讲座-QAnnotation的应?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84294.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:21:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84294.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84294.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84294.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84294.html</trackback:ping><description><![CDATA[  应上回几位同事的Q决定在q周的技术讲座上讲一下java的annotation的用法。前面讲了annotation和interface,abstract的区别,以及各自的优~点Q后来就只讲annotation的用法了Q讲到annotation可以攑֜Q个地方Q类Q属性和Ҏ(gu)Q然后顺便提了一下说Q可以设计这样一个框Ӟ在属性上加一个annotationQ就可以实现验证的功能?br /><!---->  有一位同事听了,当场提Q可不可以写个例子来看看Q怎么实现q个验证?br /><!---->  q倒也难不倒我Q赫拉赫拉,当场开始写Q2Q多分钟后,q个_略的结构就出来了,因ؓ以前没试q在属性里面加annotationQ结果竟然发C知道怎么取出属性的annotationQ用java.beansq个包,竟然取不出annotaionQ用java.lang.reflect里面的field可以取出annotationQ可是却不知道怎么取java bean的标准属性?br /><!---->最后没办法Q讲座上没时间研IӞ决定把验证的annotation加到每个属性的getterҎ(gu)里面?br /><!---->  q次的讲座讲得倒也不错,赞自׃个?br /><!---->    <img src="http://blog.csdn.net/Wingel/aggbug/1414833.aspx" height="1" width="1" /><br />文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414833.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:21 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>又遇hibernate的cache问题http://www.tkk7.com/Wingel/archive/2006/11/29/84293.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84293.htmlhttp://www.tkk7.com/Wingel/comments/84293.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84293.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84293.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84293.html  因ؓ每次调试的时候,都会重启一下Web服务器,所以都忽略了Cache的问题。看来,q是要注意一下序列化到磁盘中的cache数据的?img src="http://blog.csdn.net/Wingel/aggbug/1414834.aspx" height="1" width="1" />
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414834.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
利用spring RC3的aspectJhttp://www.tkk7.com/Wingel/archive/2006/11/29/84292.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84292.htmlhttp://www.tkk7.com/Wingel/comments/84292.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84292.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84292.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84292.html后来实在受不了这些冗余的代码了,写代码的时候有时候又可能会把spring的对象跟非spring的对象顺序弄׃Q让代码l构不清晎ͼ在springQ的介绍中,听说它连new出来的对象都可以理Q便M了spring rc3来,布v到项目中?br />  研究了半天,才发现其实是很容易的事,可怜我们看文档看了半天?br />Q。虚拟机加个参数Q?javaagent:lib/aspectjweaver.jarQ后面是spring带的aspectjweaver.jar的\径)
Q。在spring配置文g里面加:    <aop:spring-configured/>
Q。在要被理的类中加上annotation:@Configurable(autowire = Autowire.BY_TYPE) autowire应该不用说了。 ?img src="http://blog.csdn.net/Wingel/aggbug/1414836.aspx" height="1" width="1" />
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414836.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
用枚丑ց字典http://www.tkk7.com/Wingel/archive/2006/11/29/84291.htmlWingelWingelWed, 29 Nov 2006 03:21:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84291.htmlhttp://www.tkk7.com/Wingel/comments/84291.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84291.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84291.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84291.html  我们一般项目中Q都是把字典存到数据库中的。几个月前在做一个政府的目中,觉得其实一些字典是跟开发工E紧密结合在一L(fng)Q也是说字典变了,工程肯定也要变,q样子的字典如果也存到数据库中的话,也是多增加一些麻烦而已Q后来但这些字典写成枚举。然后数据库里面取的所谓的字典的key是枚D的nameQ如Q?unsubmited"Q而前台页面显C的Q就是枚丄一个属性text,不过q里用到了webwork里面的ognl语法?br />

/**
 * Author: Wingel
 * Date: 2006-7-29
 * Time: 15:17:52
 
*/

public   enum  ApplicationState  {
    unsubmited(
" 未提?/span> " ),submited( " 提交/待审?/span> " ),agreed( " 通过 " ),disagreed( " 未同?/span> " );
    
private  String text;

    ApplicationState(String text) 
{
        
this .text  =  text;
    }


    
public   static  String getText(String name)  { // l页面用的方?/span>
         try   {
            
return  valueOf(name).text;
        }
  catch  (Exception e)  {
            
return   null ;
        }

    }


    
public  String getText()  {
        
return  text;
    }


    
public   static   boolean  isValidRegisterType(String name)  {
        
try   {
            valueOf(name);
            
return   true ;
        }
  catch  (Exception e)  {
            
return   false ;
        }

    }


    
public   static  ApplicationState[] allState()  {
        
return  ApplicationState.values();
    }


    
public  String getName()  {
        
return   this .name();
    }

}



 

文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414837.aspx

Wingel 2006-11-29 11:21 发表评论
]]>
sitemesh让所有的img昄不正?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84290.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:21:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84290.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84290.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84290.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84290.html</trackback:ping><description><![CDATA[    sitemesh的一个问题,在web.xml中设|filter的时候,让sitemesh可以qo/*也就是所有的后缀名,但是在decorate.xml文g里面Qƈ没有lsitemesh增加gif,jpg{后~的patternQ结果在打开面的时候,发现所有的囑փ文g都引用失败,用resin3的话Q它会报错说error content lengthQ而用resin2或者tomcat的时候,它连报错都没有。弄了半天,都不明白是怎么回事Q后来才惛_有可能是sitemesh的问题,修改的filter的设|,让它只过滤部分后~名,l果没事了?br /> <img src="http://blog.csdn.net/Wingel/aggbug/1414840.aspx" height="1" width="1" /><br />文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414840.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:21 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]早上坐R跟走?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84288.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84288.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84288.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84288.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84288.html</trackback:ping><description><![CDATA[    C新公怺Q上车的地点也不一样了。以前经怼陪女友一赯到她公司的门口,把她哄进MQ自己再d车。而今Q女友经常要一个h走到公司了,惛_奛_要一个h走那一D\Q竟然会心很疹{\是那么一段路,她也l常会有自己走\的时候,可是是会心疹{唉Q也许照一个h久了Q当有一天看到没有你照顾的她Ӟ不只她会觉得隑֏Q你也会心疼的?br /> <img src ="http://blog.csdn.net/Wingel/aggbug/1414820.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414820.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:20 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]又一ơ重大失?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84287.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84287.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84287.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84287.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84287.html</trackback:ping><description><![CDATA[有一位好朋友,告诉我一件事?然后H然跟我?你可不要跟你老婆讲哦,我一?q也是一件挺三八的事?不讲׃讲了,于是p?然后真的没有讲?<br />后来老婆知道了这件事情后,Ҏ(gu)大发雷霆,说我们俩Z间怎么可以有事情不说呢.<br />我刚开始还没什么觉(zhn)?后来被老婆的一番教?又一番教?再一番教?q样循环一N啊一N.<br />?l于,<br />觉?zhn)?深深的意识到自己的错?所以我在这Ҏ(gu)?我以后再不做q种事情? <img src ="http://blog.csdn.net/Wingel/aggbug/1414821.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414821.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:20 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]?net下的monorailshttp://www.tkk7.com/Wingel/archive/2006/11/29/84285.htmlWingelWingelWed, 29 Nov 2006 03:20:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84285.htmlhttp://www.tkk7.com/Wingel/comments/84285.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84285.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84285.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84285.html    上回有一D|?做了?net的项? 于是׃|查了一?net的开源框?发现很多都是Java下的开源框架改写的。而正如spring在Java语言的地位,.net下比较火的开源框架蛮多是Castle出的。看了一个叫MonoRails的MVC框架Q是从ROR下吸收了一些思想。大致看了一下,发现q是有很多特性是比较好的?br />    于是有感而发Q就在Java下也做了一个类似MonoRails的框Ӟ大致是具有了以下的一些特性:
    Webwork的Interceptor机制?br />    hIOCQ用Setter的注法Q不用配|文Ӟ加annotation卛_
    而比较主要的是Q一ơ请求的程是,servlet自动Ҏ(gu)hL以名字匹配的Model和ControlQ将参数和值注入Model中,转到Controld理,再根据Control的结果去扄应的面。而这里有些是从MonoRails学来的特性:~省的,面的文件名是Control中的Ҏ(gu)名,面所在的文g夹就是Control的类名。这样就省了很多配置和写跌{l果的代码?br />    如果url中请求的Ҏ(gu)名在q个Control中不存在的话Q就l过interceptor后直接去N面,也就是说Q不l过Control处理了?br />    q有一点,很爽的就是Layout的功能:在Control里面的方法加个AnnotationQLayoutQLayout写上面框架的文件名Q则每个跌{出来的页面,自动内嵌到页面框架中。这点就有点cMsitemesh了?br />    q个MVC框架做完后,大致p些功能。可惜,q个框架是一个自己写着好玩的框Ӟq没有用在实际的开发项目中Q如果有Z的话Q还真希望将q个框架做完_到网上开源?/p>

   

 
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414832.aspx

Wingel 2006-11-29 11:20 发表评论
]]>
[导入]下回写桌面程序一定要用QThttp://www.tkk7.com/Wingel/archive/2006/11/29/84284.htmlWingelWingelWed, 29 Nov 2006 03:20:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84284.htmlhttp://www.tkk7.com/Wingel/comments/84284.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84284.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84284.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84284.html虽然最q一直在写swing的程序,但Java肯定是不能用了,因ؓq怎么打包都要8M以上Q?net的winform也是不能用了Q;只剩三个选择了,Delphi,VB跟MFCQMFC实在是不想用Q就先试了下用VB写,正在写得很不爽的时候,在某个地Ҏ(gu)到VBq要拷一些dll文g才能正常q行Q于是就只剩下DelphiQ后来终于在很痛苦的情况下,把程序完成了Q唉Q好的IDE用习(fn)惯了Q对它的依赖也变得很多。(没错Q我q里是在暗CDelphiq个IDE真TMD太差了)
  后来才听说了QC++有个库,叫QTQ写桌面E序非常的不错,q很像swing。呜Q真TMD的知道得太迟了,q被折磨了很久,查了暴多的资料?nbsp;
文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414851.aspx

Wingel 2006-11-29 11:20 发表评论
]]>
[导入]A frame for MVChttp://www.tkk7.com/Wingel/archive/2006/11/29/84283.htmlWingelWingelWed, 29 Nov 2006 03:20:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84283.htmlhttp://www.tkk7.com/Wingel/comments/84283.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84283.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84283.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84283.html
文章来源:http://blog.csdn.net/Wingel/archive/2006/05/26/756667.aspx

Wingel 2006-11-29 11:20 发表评论
]]>
[导入][原]q一q的J2EE历程(?005.4~2006.2的ȝ)http://www.tkk7.com/Wingel/archive/2006/11/29/84282.htmlWingelWingelWed, 29 Nov 2006 03:20:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84282.htmlhttp://www.tkk7.com/Wingel/comments/84282.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84282.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84282.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84282.htmll于Q工作也近一q了Q从4月䆾的开始实?fn),到现在,唉,l历的不知道多不多Q学到的也不知道多不多Q反正现在就写一ȝQ对自己有个认识吧?br />2005q?月䆾的时候,辞掉了一家在厦门工资q算不错的公司,q入了现在所在的q家公司实习(fn)Q那时候是很肯定的觉得自己做的没有错,现在呢,我还是认为选的没错Q只可惜Q工资一下子少?00多了。中间也拒了几家有些名气的公司,说实在,有时候还真不能百分百肯定Q那时候选这家公司是否是最正确的选择?br />M上,被录用的做技术的公司的,q去分别是做q三U技术的东西Q一家是Windows mobileQ一些是.netQ还有现在这家的J2EE?net能学多少东西是不知道啦,不过前半q里在开发J2EEӞ觉得自己真的学到很多Q工作了半年以后Q就有点qQ自己学的够吗?
4月䆾在这家公司是以实?fn)的w䆾q来的,在实?fn)的q段旉里,学会了struts和hibernate的基本应用,也用q些框架做了几个模块,׃中间要用C一个统计图Q去了解q用了jfreechartQ也是Z学了q个开源包吧。等我向目l理认我可以像其他员工那样完成dӞ才结束实?fn),回到学校?br />7月䆾毕业出来Q回到这家公司时Q一开始做的,是l护公司自己的OApȝ。第一个周是做原有模块的修改工作,因ؓ在学校玩了一D|_刚开始做的时候还真有一点生疏?br />W一周的d完成后,开始上手了Q接下来Q就开始增加两个新的客服模块了。这两个模块用了三周完成Q这三周里面Q也学会了一个不h技术(后来才知道,q叫AJAXQ,q在剩余的时间里面,比较大的收获是掌握struts-menuq个开源包的普通应用?br />8月䆾的前两周Q开始做一个薪资审批的程Q也是W一ơ接触工作流了。这ơ做的这个模块,q没有学C么新的技术,是业务逻辑很复杂的~码Q但是想惌׃刚工作没几天Q这Ҏ(gu)来说Q益处还是很大的?br />接下来的一个月里,做的是OA上添加一个跟企业的运营^台整合的企业注册模块Q这个模块一开始看业务q是很简单的Q后面功能慢慢添加,竟然做了一个月才完成,期间抽空了解了一个在U编辑HTML的东西,而我想主要的Q这个模块有很多H发事情和意外要考虑Q跟以前做的那些相比Q这ơ的q个模块Q才是真正煅炼程序员能力的编E吧。已l到9月䆾的中旬了Q那个注册企业模块也l于完成了,现在回想hQ做那个模块用的最有技术含量的东西Q应该是Ajax吧(我ƈ没有用什么开源的框架Q如果现在有嘲笑我说Q?ldquo;你只是简单的一些不hQ也叫AjaxQ真搞笑”Q那我只能说Q果然不只文人相轻,做技术的也看不v做技术的?br />刚做完这个企业注册模块,目l理问我_“你以前用q?net吧?rdquo;我告诉他是的。没惛_Q一个Q务就来了Q把一个aspx+CQ做的短信业务管理网站修改一下,因ؓ里面都是适合SQL Server的数据库Q而且用到很多存储q程Q现在想q到Oracle上。而一周后Q终于把q个目Ҏ(gu)适合于大部分数据库的Q去掉所有存储过E,增加了日志功能。这ơ的q个dq没有煅炼到什么J2EE的能力,不过也算再熟(zhn)了一?netQ再ơ感受了.net的h性化Q可惜有些功能还是没有Jbuilder好。接下来Q又是修改了一个用EJB做的工程中的一些模块,和调整了OA中的一部分功能。期间也搭徏了一个Tapetry的工E,是感受了他一把,不过q是觉得它没有struts好用?br />接下来的q个月,是我学得最多的一个月了,公司x以前的C/S二层l构改ؓDelphi做界面层Q用Java做中间服务层Q最后再数据库服务器。他们最先考虑到的是,用Web service。于是我的Q务就下来了,研究一下Web serviceQ看能不能做一个框架满_司的要求。我起先则是用axis搭徏Web serviceQ后面发玎ͼ它实在是太复杂了Q我们想要的Q是一个轻便的东西?br />于是开始研ISOAPQ因为Web service是用SOAP传输消息的。SOAP然后是javaxmlQ接着是dom4j。后面自׃生一个想法,如果客户端传递一个XMLq来Q里面描qC要调用的cdQ方法名Q以及传递的参数对象。服务端解析XML出来Q利用反和序列化XML转化为本地化持久c,调用q个Ҏ(gu)Q再把方法返回的对象转化成XMLq回l客L(fng)Q那么不可以实现客L(fng)自由调用Java的类?br />有了q个x很兴奋Q开始付诸行动。很q运的是Q我把这个框架做出来了,那时候真的很兴奋Q因为在我以为,那个cd的框架还从来没有看见q,甚至x它放到网上开源去。后来才意识刎ͼ其实我做的这个就是轻量的没有规范的Web service。既然这P后面又给它增加了cMwsdl的功能,而后在优化过E中Q增加了cacheQ大大提高了速度。测试了一下,完成同样的功能,它的速度是axis web service的十几倍,呵呵呵呵呵,那个叫兴奋啊。那也是一ơ性把Java的几关键技术一起学了顺便用上?br />做完q个框架后,又做了两个项目,一个交通查询的Q一个社区。这两个目倒也没有像上回研IWeb service那样令h兴奋的感觉了Q不q还是学了很多开源的东西和技术。交通查询很多次用到AjaxQ也在做q个目的期_学到了几J2EE技术,在一ơ用JavaScript做树(wi)状控件的时候,大大了提高了Javascript一把。而在此,也ȝ刎ͼ其实懂不懂一些新技术ƈ不是主要的,新技术很Ҏ(gu)可以用hQ而难的,是军_用哪些技术,哪些模式Q直臛_何来设计自己的框架。很q运的,在做那个C֌的时候,我有了这个机会?br />除此以外Q做q个C֌的时候其他o人激动的事情Q就是写了几个复杂的标签Q学Cvelocity和全文搜索Lucene了?br />之后Q就是发生一些跟技术无关的不如人意的事情了?br />
文章来源:http://blog.csdn.net/Wingel/archive/2006/05/26/756669.aspx

Wingel 2006-11-29 11:20 发表评论
]]>
[导入]一些网?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84281.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84281.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84281.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84281.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84281.html</trackback:ping><description><![CDATA[一些有名的Java|站<img src ="http://blog.csdn.net/Wingel/aggbug/1046624.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/08/10/1046624.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:20 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]几个W话,好好W啊好好W?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84280.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84280.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84280.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84280.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84280.html</trackback:ping><description><![CDATA[一些笑?img src ="http://blog.csdn.net/Wingel/aggbug/1414818.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414818.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:20 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]再读《大道至?/title><link>http://www.tkk7.com/Wingel/archive/2006/11/29/84279.html</link><dc:creator>Wingel</dc:creator><author>Wingel</author><pubDate>Wed, 29 Nov 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/Wingel/archive/2006/11/29/84279.html</guid><wfw:comment>http://www.tkk7.com/Wingel/comments/84279.html</wfw:comment><comments>http://www.tkk7.com/Wingel/archive/2006/11/29/84279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Wingel/comments/commentRss/84279.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Wingel/services/trackbacks/84279.html</trackback:ping><description><![CDATA[<p>    今天再一ơ看了《大道至》,觉得q是有挺多地方不懂的,当然,不是说这本书是一本圣l?必须要完完全全的理解,只不q?目前以我的层ơ来?体会得越?走错的步子就会越?<br />    <br />    目前,我想C两句?<br />    工具->Ҏ(gu)->工程->q程->l织</p> <p>    我用了一q的旉,从工?>Ҏ(gu).我很?但我又清醒的知道我要E稳的走!唉~</p> <p>    "实现"的欲望是E序员出w的通病.无论是从l构?q是模式?那是l节. </p><img src ="http://blog.csdn.net/Wingel/aggbug/1414822.aspx" width = "1" height = "1" /><br>文章来源:<a >http://blog.csdn.net/Wingel/archive/2006/11/26/1414822.aspx</a><img src ="http://www.tkk7.com/Wingel/aggbug/84279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Wingel/" target="_blank">Wingel</a> 2006-11-29 11:20 <a href="http://www.tkk7.com/Wingel/archive/2006/11/29/84279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]目中,是用一些开源框Ӟq是用自p熟?zhn)的技术?http://www.tkk7.com/Wingel/archive/2006/11/29/84278.htmlWingelWingelWed, 29 Nov 2006 03:20:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84278.htmlhttp://www.tkk7.com/Wingel/comments/84278.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84278.html#Feedback2http://www.tkk7.com/Wingel/comments/commentRss/84278.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84278.html  其实q种事情都会有两个观炏V?br />一个观Ҏ(gu)Q徏议用自q(zhn)的技术,采用单的架构d现项目,{到你把目做出来了Q能用v来了Q客戯可了。以后的升Q那是你可以比较轻杄采用?它的架构来重构,q样你的风险Q压力就相对减少很多了?
而这回,我想一下第二个观点Q?nbsp; 
  其实如果你对代码要求比较严格的话Q你׃l常发现Q你的代码有很多东西可以抽取出来Q或者做在公q模块Q或者作为框架的底层Q我们就单的拿jdbc来说吧,
    首先Q是connection的管理,q点一般用jdbc熟一些的话,都会有管理connection的公共模块,虽然偶尔会碰到性能的问题,但是q点我们暂且压下不表?br />    我们查询的时候,每次都要?br />    rs.get...("name"),
    rs.get...("id"),
    rs.get...("age"),
    rs.get...("gender"),
    rs.get...("hobby"),
    然后修改数据库的时候,q要拼写update语句跟insert语句Q经常还要费很多旉来调试这些多余代码的问题Q这时候你想Q不行,我一定要写一个公共模块,省得让我每次都要定这么多代码Q于是你的第一个公共模块生了Q然后测试啊试Q改q啊改进Q叮叮响Q过了几天时间的考验Q这个公共模块终于可以放心用了Q项目进度开始快一些了Qȝ不用再拼SQL了?br />   
    后来在做l计模块的时候,H然又发玎ͼ之前在用到的一些SQL函数Q好像在客户要求的数据库上不怎么行啊Q于是又L了一下资料,又过了几天(可能q次不用几天Q,然后l于攑ֿQ所有的函数都正怺?br />   
    接着又不可避免的到了分늚问题Q你对自pQ不用怕,我上回就写了一个分늚Q没有问题!可是Ya的你H然发现Q上回的那个分页是用游标实现的,q回客户是要求用SQLServerQ唉QSQLServer的游标,不提也ŞQ想来想去,只好自己拼SQL语句来写分页了,又是count又是topQ测了又之后,又过了几天,啊哈Q终于分늚公共模块也做好的Q可以放心用了Q好Q项目的q度又可以加快了?/p>

    做着做着的时候,发现Q咦Q好像这表得增加一个字D|行,增加了,然后所有查询的SQL语句加一下,所有insert跟update的代码修改一下,面修改一下,嗯,现在应该正常了,看v来倒是没什么问题,咦,报表好像不怎么对啊Q靠Q这边还有调用这个表的代码,妈的Q改吧改吧。磨y了好几个小Ӟ当然Q熟l的话,q不用几个小ӞQȝ看v来都正常了?/p>

    q一回,q个功能中有一ơ用戯求,讉K了好几次数据库,不行Q这里应该用个cacheQ否则性能上会有问题啊Q算了,用算法解决一下,量访问数据库好了Q我对cacheq不熟呢。(写啊写啊QBatch SizeQ这样多Q那样多QFetch Size。。。,l于Q看h正常一些了Q。过了一D|_靠,q边又要讉K好几ơ数据库QYa的受不鸟了,性能爱咋的咋的,反正一个地Ҏ(gu)又不要紧。Oh shit!!!q边也是好几ơ,q边又是好几ơ,那边又是好几ơ。不行了Q我老老实实写个cache支持吧,于是又叮叮当当了好几天,l于Q有个粗p的cache出来了,l于速度可以看一些了。后来改q又改进Q测试又试Q篏MQ老子好不爽啊?/p>

    好像天下有点太^了,啊,你说我这个地方忘记更C增加的那个子表啊Q算了,没关p,我明天看一下代码,q个Ҏ(gu)解决炏V嗯Q我改了那边的代码了Q会更新子表信息了。什么?你说取主表的记录跟相应的子表记录列表ȝ啊,没关p,我更C下处理resultset的公共模块,明天再说?br />    Oh shit......对这样子复杂的查询好像现在的公共模块支持不了啊,了Q这样子的查询不要用q个公共模块Q我们手动写一些代码好啊,别跟我讲q样代码l构很难看,你以为我不知道啊QTMD?/p>

    TMD的,怎么q边的SQL老是q行不了啊,不会是分底层模块的问题吧,靠,怎么你的SQL语句有这么多order,group byQ靠Q还有top啊,q当然过不了了,不要吵了Q现在时间改Q不理它Q直接用个假分页p了。你又说代码l构隄Q小心我抽你哦?/p>

    公司新来一个程序员Q看了几天代码,不停的抱怨说Q这代码写得真差啊。。。。。?nbsp;


文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414852.aspx

Wingel 2006-11-29 11:20 发表评论
]]>
[导入]transaction in Springhttp://www.tkk7.com/Wingel/archive/2006/11/29/84277.htmlWingelWingelWed, 29 Nov 2006 03:19:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84277.htmlhttp://www.tkk7.com/Wingel/comments/84277.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84277.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84277.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84277.htmlPropagation behavior:

PROPAGATION_MANDATORY:
 Indicates that the method must run within a transaction. If no
 existing transaction is in progress, an exception will be thrown.


PROPAGATION_NESTED:
 Indicates that the method should be run within a nested transaction
 if an existing transaction is in progress. The nested transaction
 can be committed and rolled back individually from the enclosing
 transaction. If no enclosing transaction exists, behaves like
PROPAGATION_REQUIRED:
 Beware that vendor support for this propagation behavior is spotty at best.
 Consult the documentation for your resource  manager to determine if nested
 transactions are supported.
PROPAGATION_NEVER:
 Indicates that the current method should not run within a transactional
 context. If there is an existing transaction in progress, an
 exception will be thrown.
PROPAGATION_NOT_SUPPORTED:
 Indicates that the method should not run within a transaction. If an
 existing transaction is in progress, it will be suspended for the
 duration of the method. If using JTATransactionManager,
 access to TransactionManager is required.
PROPAGATION_REQUIRED:
 Indicates that the current method must run within a transaction. If
 an existing transaction is in progress, the method will run within
 that transaction. Otherwise, a new transaction will be started.
PROPAGATION_REQUIRES_NEW:
 Indicates that the current method must run within its own transaction.
 A new transaction is started and if an existing transaction is in
 progress, it will be suspended for the duration of the method. If
 using JTATransactionManager, access to Transaction-
 Manager is required.
PROPAGATION_SUPPORTS:
 Indicates that the current method does not require a transactional
 context, but may run within a transaction if one is already in
 progress.


Isolation levels:
In a typical application, multiple transactions run concurrently, often working
with the same data to get their job done. Concurrency, while necessary, can lead
to the following problems:
 ?Dirty read—Dirty reads occur when one transaction reads data that has
 been written but not yet committed by another transaction. If the
 changes are later rolled back, the data obtained by the first transaction
 will be invalid.
 ?Nonrepeatable read—Nonrepeatable reads happen when a transaction performs
 the same query two or more times and each time the data is different.
 This is usually due to another concurrent transaction updating the
 data between the queries.
 ?Phantom reads—Phantom reads are similar to nonrepeatable reads. These
 occur when a transaction (T1) reads several rows, then a concurrent transaction
 (T2) inserts rows. Upon subsequent queries, the first transaction
 (T1) finds additional rows that were not there before.


Isolation level:
ISOLATION_DEFAULT:
 Use the default isolation level of the underlying datastore.
ISOLATION_READ_UNCOMMITTED:
 Allows you to read changes that have not yet been committed. May
 result in dirty reads, phantom reads, and nonrepeatable reads.
ISOLATION_READ_COMMITTED:
 Allows reads from concurrent transactions that have been committed.
 Dirty reads are prevented, but phantom and nonrepeatable
 reads may still occur.
ISOLATION_REPEATABLE_READ:
 Multiple reads of the same field will yield the same results, unless
 changed by the transaction itself. Dirty reads and nonrepeatable
 reads are prevented by phantom reads may still occur.
ISOLATION_SERIALIZABLE:
 This fully ACID-compliant isolation level ensures that dirty reads,
 nonrepeatable reads, and phantom reads are all prevented. This is
 the slowest of all isolation levels because it is typically accomplished
 by doing full table locks on the tables involved in the transaction. 


文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414826.aspx

Wingel 2006-11-29 11:19 发表评论
]]>
[导入]Transaction Isolation Levelhttp://www.tkk7.com/Wingel/archive/2006/11/29/84276.htmlWingelWingelWed, 29 Nov 2006 03:19:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84276.htmlhttp://www.tkk7.com/Wingel/comments/84276.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84276.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84276.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84276.htmlhere are four isolation levels:

  • READ UNCOMMITTED (在一个事务中Q可能读到别的事务还没提交的数据Q?/font>
  • READ COMMITTEDQ在一个事务中Q同L(fng)语句可能查询C同的数据Q因为在q两个语句之_别的事务更改提交了这两个语句涉及的数据)
  • REPEATABLE READQ保证一个事务A里面d的数据不会变Q即使期间别的事务B提交更改了数据,事务A中的语句仍然会读到原来的数据Q?/font>
  • SERIALIZABLEQ在事务期间Q会涉及的数据锁掉Q防止别的事务修改)

    SQL server实现了四个?br />Oracle只实C间两个别?/font>  

  • 文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414835.aspx

    Wingel 2006-11-29 11:19 发表评论
    ]]>
    [导入]事务隔离U别http://www.tkk7.com/Wingel/archive/2006/11/29/84275.htmlWingelWingelWed, 29 Nov 2006 03:19:00 GMThttp://www.tkk7.com/Wingel/archive/2006/11/29/84275.htmlhttp://www.tkk7.com/Wingel/comments/84275.htmlhttp://www.tkk7.com/Wingel/archive/2006/11/29/84275.html#Feedback0http://www.tkk7.com/Wingel/comments/commentRss/84275.htmlhttp://www.tkk7.com/Wingel/services/trackbacks/84275.html前几天同事讲了Transaction isolation levelQƈ且大家一起在SQLServerQOracle跟MySQL数据库上实验了一下,发觉q些知识q是挺重要的?br />假如有两个事务ƈ发,序如下
    Transaction A            Transaction B
    begin    begin
    query1 from table A   
    .......                  modify1 to table A(insert/update/delete)
       commit
    query2 from table A
    commit

    那么在事务A中,query1跟query2查询出来的结果是否一样呢Q这p事务隔离U别有关了?br />SQL的标准定义里面,一共有四种U别Q?br />read uncommitedd未提交的数据 是其他事务求提交的数据Q都可以d出来
    read commitedd已提交的数据 query2会跟query1d的数据不一?br />repeatable read可重复读取,即query1跟query2d的数据是一L(fng)
    serializable 序列化,

     SQL 标准用三个必dq行的事务之间避免的现象定义了四个别的事务隔离?q些不希望发生的现象是:
    脏读Qdirty readsQ?br />    一个事务读取了另一个未提交的ƈ行事务写的数据?
    不可重复读(non-repeatable readsQ?br />    一个事务重新读取前面读取过的数据, 发现该数据已l被另一个已提交的事务修改过?
    q读Qphantom readQ?br />    一个事务重新执行一个查询,q回一套符合查询条件的行, 发现q些行因为其他最q提交的事务而发生了改变?
     隔离U别         脏读QDirty ReadQ?nbsp; 不可重复读(NonRepeatable ReadQ?nbsp; q读QPhantom ReadQ?br />L提交QRead uncommittedQ?nbsp;  可能      可能                           可能
    d提交QRead committedQ?    不可能           可能                        可能
    可重复读QRepeatable readQ?nbsp;   不可?nbsp;            不可?nbsp;                   可能
    可串行化QSerializable Q?nbsp;     不可?nbsp;             不可?nbsp;                 不可?/p>

    SQLServer
    我们首先在SQLServer上做了实验,SQLServer一共支持四U隔ȝ别,read uncommited跟read commited我们没有实验Q我们直接先实验
    repeatable readQ如果事务A定义了如下别,那么当事务B执行到modify1q条语句Ӟ如果modify1是update的话Q就被锁hQ一直等
    C务A提交完以后,锁才会被释放Q而如果是insert的话Q刚可以利q行下去Q然后在事务A中,query2查到的数据,是已l被事务B
    修改q的数据Q如果将U别定义在serializable的话Q则在modify1语句中,update,insert或者delete都会被锁掉?br />也就是说QSQLServer对这些别的支持Q是通过锁来做到的,虽然可以保证事务正常q行Q但是ƈ行的性能却很差?br />Oracle
    oracle只支持两个别,read commited跟serializableQ结果这里就不用详细说明Q实验的l果是,oracle的serializable是通过版本
    控制来完成的Q而不是通过锁机Ӟq就保证了ƈ行的性能。Oracle的默认别是read commited
    MySQL
    MySQLServer也支持四个别,而且MySQL也是通过版本控制而非锁机制来完成的?br /> 


    文章来源:http://blog.csdn.net/Wingel/archive/2006/11/26/1414839.aspx

    Wingel 2006-11-29 11:19 发表评论
    ]]>
    վ֩ģ壺 ޳ӰԺ߹ۿ| ϺƷAV߲| ޹ŷۺ997þ| ޵һ| ۺһƷþ| AV볱߹ۿ| avһas| ޳ɫӰԺ| ޹ۺרߵӰ| һӰȷɫԴ| ѹۿ| ޹ղ뾫Ʒ| avۺ| ˳վ18ֹ| ɫ͵͵ͼۺ| ҳվ߹ۿ| պëƬƵ| ѾƷƵ| йһػƵƬ| һƵ| 51ƵѹۿƵ| þwww˳ɿƬ| ëƬaëƬѹۿ| պһƵѹۿ| ޹ۺ߾Ʒ | Ʒ߹ۿ| ƷƬѿ| վ| ƷվƵ | ѻɫƵ| ձƵ| þһѵ| ձѲ| þAV뾫Ʒ| ޾ɫ߲| ֻĻ| ŷ߹ۿ| 㶮õ߹ۿƵ| һëƬѿ| Ƭ߹ۿ| ޿Ļ|