﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-一剑飞虹</title><link>http://www.cnblogs.com/greatqn/</link><description>道可道非常道，名可名非常名</description><language>zh-cn</language><lastBuildDate>Thu, 21 Aug 2008 08:51:26 GMT</lastBuildDate><pubDate>Thu, 21 Aug 2008 08:51:26 GMT</pubDate><ttl>60</ttl><item><title>允许用户修改svn日志的钩子脚本</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/21/1272769.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Thu, 21 Aug 2008 01:41:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/21/1272769.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1272769.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/21/1272769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1272769.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1272769.html</trackback:ping><description><![CDATA[<p>版本库生成后，hooks目录下就存在一些钩子脚本的模板，用户可以作为参考。把pre-revprop-change.tmpl复制为pre-revprop-change.bat，再修改里面的脚本，钩子就设置好了。 <br />
</p>
<p>&nbsp;</p>
<p>只允许用户修改自己的svn日志的钩子脚本：</p>
<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: #e6e6e6 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff;">for</span>&nbsp;<span style="color: #000000;">/</span><span style="color: #000000;">f&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">usebackq</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;%%k&nbsp;in&nbsp;</span><span style="color: #000000;">(</span><span style="color: #000000;">`svnlook&nbsp;author&nbsp;</span><span style="color: #800080;">%1</span><span style="color: #000000;">&nbsp;-r</span><span style="color: #800080;">%2</span><span style="color: #000000;">`</span><span style="color: #000000;">)</span>&nbsp;<span style="color: #0000ff;">do</span><span style="color: #000000;">&nbsp;@</span><span style="color: #0000ff;">set</span><span style="color: #000000;">&nbsp;var</span><span style="color: #000000;">=</span><span style="color: #000000;">%%k<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">if</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">%3</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">==</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">%var%</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;test<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">if</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">%3</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">==</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">li</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;test<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">exit</span>&nbsp;<span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #800000;">:test</span><span style="color: #000000;"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">if</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">%4</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">==</span>&nbsp;<span style="color: #000000;">"</span><span style="color: #000000;">svn:log</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #0000ff;">exit</span>&nbsp;<span style="color: #000000;">0</span><span style="color: #000000;"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">echo</span><span style="color: #000000;">&nbsp;Property&nbsp;'</span><span style="color: #800080;">%4</span><span style="color: #000000;">'&nbsp;cannot&nbsp;be&nbsp;changed&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">2</span><span style="color: #000000;"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff;">exit</span>&nbsp;<span style="color: #000000;">1</span></div>
</div>
<br />
实现每人可以修改自己的log日志，而管理员li可以任意修改。<img src ="http://www.cnblogs.com/greatqn/aggbug/1272769.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41819/" target="_blank">[新闻]英特尔雅虎开发网络计算机频道</a>]]></description></item><item><title>Scrum演练(6)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/20/1272090.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Wed, 20 Aug 2008 03:55:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/20/1272090.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1272090.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/20/1272090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1272090.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1272090.html</trackback:ping><description><![CDATA[<p>结束篇。</p>
<p>经过本周一，周二的扫尾，周三上午日会时就对系统进行了演示。<br />
本系统关键点没有搞定，也就是说本次sprint目标没有实现。本次演示时，发现仍有若干功能的遗漏。<br />
</p>
<p>整体投入度比估计值还低。功能遗漏是我监管不力，其实是故意不去管的，就是测试我的故事列表是否写得够清晰，能让大家都看明白。实事证明这里是需要改进的。故事要细化，要有自己的主题。不能因为相似而合并不相关的故事。</p>
<p>故事的分解这次也做得不好，本身团队习惯按层级编码，但一个故事分三层做的话，又太小，合在一起又太乱。下次还是明确细分一下，以免遗漏。</p>
<p>本次测试驱动没有很好执行，下次改进，先写测试代码。</p>
<p>好的方面是已经搞定cc.net，能自动完成代码获取，编译，单元测试。web的自动测试还没有实现。</p>
<p>进入sprint时，人员的投入度要尽量提高，减少其它项目或任务的干扰。外部的因素要尽量减少它的依赖性，以保证项目的正常进度。</p>
<p>总之，这是我们第一次scrum的经历。<br />
</p>
<p>
</p><img src ="http://www.cnblogs.com/greatqn/aggbug/1272090.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41818/" target="_blank">[新闻]Windows Live视频邮件9月9日开始测试</a>]]></description></item><item><title>Scrum演练(5)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/15/1267306.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Fri, 15 Aug 2008 13:08:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/15/1267306.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1267306.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/15/1267306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1267306.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1267306.html</trackback:ping><description><![CDATA[<p>周三：A正常，B正常，C进展有些慢，没能很好分清主次。</p>
<p>公司动荡，时常开会。投入度低。<br />
E，F 加入进来，第一天基本是熟悉一下项目。<br />
今天分配下去的任务也很少。关键点还是卡着。</p>
<p>周四：C完成接口编码，总算完成了。其它一般。E,F刚开始了解。<br />
途中跑，比较平稳。燃进图上，曲线在上方，催促着我们。<br />
</p>
<p>周五：关键点上仍然没有测通。开始另一个关键点（上周二的设计）的编码。<br />
随着任务的减少，空闲人员开始自发地结对。</p>
<p>到这次日会，燃尽图上走到11点的位置。还剩余5点。下周还有2天，5人，周三演示。 <br />
</p>
    <img src ="http://www.cnblogs.com/greatqn/aggbug/1267306.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41817/" target="_blank">[新闻]Intel首次公开展示Nehalem架构迅驰3平台</a>]]></description></item><item><title>Scrum演练(4)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/12/1266340.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Tue, 12 Aug 2008 13:43:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/12/1266340.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1266340.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/12/1266340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1266340.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1266340.html</trackback:ping><description><![CDATA[<p>第二周 <br />
</p>
<p>A继续Dal相关的编码;B归位，进行UI及与Dal的对接;C进入新方案的接口编码。<br />
世事难料，先是公司重组，将有人事变动。后是C有要事，得请假。整体投入度又要降低。<br />
好在还有兵马好动，E,F已经完成其它项目，计划再加2人进入这次sprint。</p>
<p> 不足的地方：如果对照目标的话，由于核心功能出现技术困难，本次sprint的目标没有太多进度。现在忙的都是些外围的辅助功能。<br />
</p>
<p>
奥运圣火照耀着我们。中国13金了。
</p>
<p>突然想把奥运会比做项目，4年计划，运作，决战于16天。然后又是一个全新的4年。这比赛的16天好比sprint的演示，这是个交答卷的日子。<br />
</p>
   <img src ="http://www.cnblogs.com/greatqn/aggbug/1266340.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41816/" target="_blank">[新闻]Pogo浏览器</a>]]></description></item><item><title>Scrum演练(3)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/06/1262419.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Wed, 06 Aug 2008 14:02:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/06/1262419.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1262419.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/06/1262419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1262419.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1262419.html</trackback:ping><description><![CDATA[<p>周三日会，A仍然没有完成任务，B完成了功能设计，C开发中遇到难题<br />
B的功能设计在周二时进行了集体讨论，计1d的工作,C计0.5d。燃尽图上向下走了1.5d。<br />
A答应今天完成任务，B由于周四周五请假，就找个能在一天内完成的任务，C继续进攻难点，并寻求帮助。 </p>
<p>周四日会，A完成数据库设计，C难题未解<br />
A计1d,B的任务完成度不好估计，等他回来再计算。燃尽图上向下走1d。<br />
A开始新的任务，dal层的编码与测试，C的任务是个难题，只好自己D出马试试水。<br />
</p>
<p>这两次会议都在15分钟内完成，毕竟才问询三个人的任务。感觉都没做多少交流。时间就到了。<br />
</p>
<p>周五日会，A在写测试代码时，比较手生，进度落后，C难题无解，D试水也无解。<br />
难题无解只能另寻解决方案。C着手另一种方案的设计，A继续写dal与测试。燃尽图上没有向下走。
</p><img src ="http://www.cnblogs.com/greatqn/aggbug/1262419.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41807/" target="_blank">[新闻]洪磊口述:番茄花园如何捆绑流氓软件月入十万</a>]]></description></item><item><title>CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/05/1261298.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Tue, 05 Aug 2008 10:06:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/05/1261298.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1261298.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/05/1261298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1261298.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1261298.html</trackback:ping><description><![CDATA[摘要: 才从书上看到CruiseControl.Net，这就是我要的。日常工作中常做这个事，从svn下载源码，开Visual Studio，编译，运行测试。这个工具可以自动完成这一系列工作。还能生成报表，监视svn的改动等。MSBuild在这个位置：C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exeMSTest在这个位置：D:\Program&nbsp;&nbsp;<a href='http://www.cnblogs.com/greatqn/archive/2008/08/05/1261298.html'>阅读全文</a><img src ="http://www.cnblogs.com/greatqn/aggbug/1261298.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41813/" target="_blank">[新闻]2008年8月21日IT博客精选：盖茨复出？</a>]]></description></item><item><title>Scrum演练(2)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/05/1260796.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Tue, 05 Aug 2008 05:44:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/05/1260796.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1260796.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/05/1260796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1260796.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1260796.html</trackback:ping><description><![CDATA[<p style="margin: 0in; font-size: 10pt;"></p>
周一日会，ABC三名开发人员中，C临时请假，缺席。<br />
首先明确Sprint的目标，资源情况，日会时间，演示日期。（这些本该是上周计划会时定的）<br />
在查资源情况时，发现ABC的投入度都比较低，从原来的0.5降到了0.3。开发周期从8天变成了13天。试行Scrum,先宽松些，感觉好点。<br />
之后进行系统的简单设计，定义了下初步的架构方案。<br />
在做任务分解时，会议被打断。留下AB自己进行任务分解，选择任务。A选择数据库设计，B选择UI原型。<br />
&nbsp;<br />
<p>周二日会，A忙其它，没有完成任务，B完成了UI的框架编码，C回来了</p>
<p>昨天用的记事贴，贴在玻璃上，好多掉下来了。最后还是在玻璃上先贴上白纸， 记事贴再贴到白纸上。明天看效果。</p>
<p>布置任务板占用了一些时间。由于实际情况，任务板贴在会议室里，有条件的话，应该贴在工作区内，大家都能实时看到的地方。</p>
<p> 目前对backlog没有做详细的任务分解。做一点分解一点。A继续做初步的数据库设计，BC进入功能点的开发。B的功能比较复杂，需要进行UML的分析。</p>
<p>燃尽图上向下走了一个点。<br />
</p>
<p>&nbsp;</p>
<p> <br />
</p><img src ="http://www.cnblogs.com/greatqn/aggbug/1260796.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41813/" target="_blank">[新闻]2008年8月21日IT博客精选：盖茨复出？</a>]]></description></item><item><title>Scrum操练(1)</title><link>http://www.cnblogs.com/greatqn/archive/2008/08/01/1258514.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Fri, 01 Aug 2008 15:42:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/08/01/1258514.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1258514.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/08/01/1258514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1258514.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1258514.html</trackback:ping><description><![CDATA[<p><a href="http://www.infoq.com/cn/minibooks/scrum-xp-from-the-trenches"><img alt="" src="http://www.infoq.com/resource/minibooks/scrum-xp-from-the-trenches/zh/cover/scrum-and-xp-cover.jpg" width="261" height="370" /></a></p>
<p>&nbsp;</p>
<p>在看了N遍之后，N&gt;10。越觉得Scrum的可行性很好，就准备先拿一个小项目来试试。</p>
<p>&nbsp;</p>
<p>首先这个DMM项目只有功能需求，无操作界面需求，提供的文字没超过两行。</p>
<p>之前的做法：做系统设计，数据库设计，UI设计。<br />
</p>
<p>Scrum的做法：编写产品backlog,做Sprint计划会。</p>
<p>编写产品backlog是我看这本书的一大亮点，一直以来就为这个如何演示所困扰。因为不清楚这回事，有需求来了就开工，完全不知道如何结束。做到满意为止，当然是个美好的愿望。但做为一个开发人员来说，一个功能反反复复得修改，工作得不到认同，会有失落感。backlog的如何演示解决了这个问题。一个业务需求，配上如何演示，就有了衡量开发是否完成的标准。</p>
<p>操练第一步：编写产品backlog</p>
<p>backlog看书上说得这么轻巧，就列了一下字段。真要写个如何演示出来，还是有难度，它有点象测试用例。不过在编写的时候，有个感觉很好，如何演示就象已经在做好的系统上操作一样，想象着去测试各个功能。自己在写的过程中，还是不自觉得开始罗列一些对象，属性。不知道有没有停留在业务层次上。然后我就列了12个backlog。照书上的方法打印成卡片。</p>
<p>操练第二步：Sprint计划会</p>
<p>虽说书看了N遍，一召集人马开会，就全忘光了。我把卡片往桌上一摊，先让大家看。然后讨论功能，对优先级做了些调整。之后就开始做估计值了。因为之前团队里玩过几次计划纸牌游戏，对这个熟啊。在估计过程中，对几个功能相近，用时偏小的backlog进行了合并。最后得出7个backlog，估计值16。</p>
<p>在做完这些之后，我居然宣布散会了。回来一整理，才发现什么sprint周期，目标，演示日期等提都没提。晕啊。好在我说了下周一来了做任务分解。<br />
</p>
<p>整理后，按3个开发人员计算，70%的投入度，得出8天的开发周期。考滤这个项目次要，大家手上还有其它重要的项目在做，这个投入度还得再降一降。下周日会再汇总一下意见，订个目标，演示日期出来。<br />
</p>
<p> </p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/greatqn/aggbug/1258514.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41812/" target="_blank">[新闻]微软宣布将斥资1亿美元购买Novell证书</a>]]></description></item><item><title>QClub：当SOA遭遇现实－会后笔记</title><link>http://www.cnblogs.com/greatqn/archive/2008/07/27/1252660.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Sun, 27 Jul 2008 13:41:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/07/27/1252660.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1252660.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/07/27/1252660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1252660.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1252660.html</trackback:ping><description><![CDATA[<p>参加了<a href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=353">QClub：当SOA遭遇现实</a>归来。地主已经把活动图片放出来了：<a href="http://www.dbanotes.net/mylife/alipay_qclub_success.html">QClub 杭州站成功在支付宝举行</a></p>
<p><a href="http://www.dbanotes.net/arch/infoq_interview_with_alipay_chengli.html">支付宝首席架构师程立</a>的分享很精彩。讲述了支付宝几年走过的架构历程。<a href="http://www.infoq.com/cn/articles/chengli-arch-agile-soa">《程立谈架构、敏捷和SOA实践》</a></p>
<p>&nbsp;</p>
<p>截止到2008年5月6日，使用支付宝的全球用户已经超过8000万，支付宝每日交易总额超过3.5亿人民币，日交易笔数超过150万笔。 对于这样一个系统，支付宝也是从简单三层的应用开始的。面对不断变化的业务，海量的数据，系统内产生了上千个类的情况，给开发维护都造成极大的困难。之后开始应用SOA,对系统进行封装，将功能做成服务，每个服务都可以应用集群进行支撑。</p>
<p>分布的业务，分布的数据，海量的访问。</p>
<p>对事务的处理，提到了两个概念：ACID(原子，一致，隔离，持久)和BASE(基本业务可用，柔性状态，最终一致)。</p>
<p>支付宝对BASE的实现有一个TCC模型（try-试执行,cancel-取消,confirm确认）。</p>
<p>在之后的讨论中，有幸程立和我们在一个小组。对分布式系统中的事务处理，及在SOA中的应用引起了大家的关注。ACID被称为刚性事务，BASE被称为柔性事务，这个叫法很快被认同，也很好理解。讨论很快集中到最终一致上。因为大系统应对大并发时，必然会采用柔性事务，以保证基本业务可用。之前自己做的一个系统里也遇到过这种问题，刚开始的时候采用刚性事务，在小数据量的时候好象没什么问题，当数据量大了之后，一次刚性事务就会占用系统极大的资源，对用户的响应和并发都造成影响。之后改用柔性事务的处理，把请求放到一个队列里执行，这样就避开了并发，只是用户操作的结果不是即时有效，有系统处理的延时，也就是最终一致。不过当时开发的时候不知道ACID,BASE的概念。</p>
<p>支付宝是7*24小时运行的系统，其中各种服务上百个。这样的系统开发，维护都是一个大问题。先说开发，编码之后的测试，光环境就需要上百台机器，这可不是每个开发人员都能得到了。然后是维护，系统需要更新，但服务不能停，怎么办。例如有50台机器需要更新组件，就先停25台进行更新，然后开启，再更新另25台。这就要求组件的向下兼容性要好，更新的过程要严谨。<br />
</p>
<p>随便提一下支付宝的开发模式，以产品线为组织形式，各产品线每周提交一个更新包进行系统改进。新加的项目周期控制在3个月以内。没有严格的模式定义，比较倾向于敏捷。目前开发人员在200左右。</p>
<p>整体来说，现在的支付宝架构良好，开发有序，前程一片光明啊。</p>
<p>反观自己，架构还在初级阶段，开发混沌，路漫漫兮其修远 吾将上下而求索。</p><img src ="http://www.cnblogs.com/greatqn/aggbug/1252660.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41811/" target="_blank">[新闻]携程谷歌将联合发旅游榜单</a>]]></description></item><item><title>google codejam 2008</title><link>http://www.cnblogs.com/greatqn/archive/2008/06/25/1230037.html</link><dc:creator>greatqn</dc:creator><author>greatqn</author><pubDate>Wed, 25 Jun 2008 15:23:00 GMT</pubDate><guid>http://www.cnblogs.com/greatqn/archive/2008/06/25/1230037.html</guid><wfw:comment>http://www.cnblogs.com/greatqn/comments/1230037.html</wfw:comment><comments>http://www.cnblogs.com/greatqn/archive/2008/06/25/1230037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/greatqn/comments/commentRss/1230037.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/greatqn/services/trackbacks/1230037.html</trackback:ping><description><![CDATA[google codejam 2008开始报名了。地址：http://code.google.com/codejam/<br />
<br />
在网上搜了一下，发现相关资料很少。也没找到对应的讨论版块及网站。<br />
<br />
朋友们有相关网点链接的话，欢迎回复一下。<br />
<br />
<div class="page_main_content_r2_r">
<h2>About Code Jam.</h2>
<p>Do you enjoy solving tough problems and grappling with technical challenges? Then enter Google Code Jam!</p>
<br />
<p>Google
Code Jam is a coding competition in which professional and student
programmers are asked to solve complex algorithmic challenges in a
limited amount of time. The contest is all-inclusive: Google Code Jam
lets you program in the coding language and development environment of
your choice. </p>
<br />
<p>Google Code Jam begins in
July and continues in August, when you will compete in online rounds
against contestants from around the world. The Top 500 participants
will advance to onsite competitions at a local Google office to compete
against those in their region (Asia Pacific; Europe, Middle East and
Africa; and the Americas). The Top 100 will participate in the final
round at the Google Headquarters in Mountain View, California on
Friday, November 14.</p>
<br />
<p>Don't be left out! Make sure to register between June 17 and July 17, and show your coding creativity in Google Code Jam.</p>
</div>
<br />
<br />
后记：错过一步，就成了观望了。这个比赛是有严格时间控制的。必须按规定时间参加。不但要提前报名，还要在指定时间来做题。不过比赛题目不错，事后也可以做题，只是没有成绩。权当练习。<img src ="http://www.cnblogs.com/greatqn/aggbug/1230037.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41810/" target="_blank">[新闻]商刊:Google不可能永远领先 微软寄希望于时间</a>]]></description></item></channel></rss>