<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[博文视点 SEAN]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[http://www.douban.com/people/xdx]]></description>
<link>http://hi.baidu.com/caviarx</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[中国人会怎么说？]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/d822bd2c546870e68b1399d0.html]]></link>
        <description><![CDATA[
		
		 
 
 
 
 
 
 

余晟说翻译是件吃力不讨好的事，我笑着点头，其实看译稿又何尝不是？工作中审译稿时常常会读到“不像中文”的句子，我知道译者是按照英文一字不差地翻译的，但是中英文表达习惯不一样，有些译文读起来总觉着别扭，比如下面这几句：<br>
<br>
“让它如此困难的最大原因究竟何在呢？ ”<br>
<br>
翻译的时候，英文的结构往往“先入为主”，限制了我们的表达思维，所以会说出这种不伦不类的中国话。这句话如果让中国人来说，我想多半是：“最大的困难究竟是什么?”，或者“最困难的地方在哪里?”<br>
<br>
同样的例子还有：<br>
<br>
“如果孩子比成人更容易学习外语，这会在编程学习方面给我们带来什么样的启发 ?”<br>
<br>
前半句尚可，但“更”字是多余的，可以去掉。后半句实在是啰嗦，大家不妨闭上眼睛，想想中国人会怎么说这句话。一般的中国人可能会说：“如果孩子比成人容易学习外语，<span style="font-size: 10.5pt; ">对我们学习编程有什么启发呢？</span>”<br>
<br>
碰到这种情况，我们不妨放下英文，想想没学过英文的中国人会怎么说。<br>
<br>
再来看看这句：<br>
<br>
“随着时间的推移，Git从<span class="trans">莱纳斯</span>在几个星期里开发的一些原始粗略的脚本，发展成为一个丰富的工具包。”<br>
<br>
中间一段是从英文的定语从句直译过来的，读起来让“气短”。另外英文中的“a”和“an”在中文中常常可以省略。不妨把它拆成两句话：“<span class="trans">莱纳斯</span>用几周时间完成了Git的基本雏形。随着时间的推移，Git已经从最初简陋的脚本发展成为功能丰富的工具包。”<br>
<br>
除了英文的中贯词可以省略，英文的复数有时也应该省略，例如：<br>
<br>
“土人们都围过来了。”<br>
“女性们的服装每年都有新的花样。”<br>
“童子军们的座佑铭是日行一善。”<br>
<br>
这些“们”实在是多余，童子军还要加“们”，真是甘受洋罪。<br>
<br>
林语堂先生一看到“人们”就生气，思果先生也指出这个“人们”完全是无中生有，平常我们只说“大家”。“先生们”经常出现在对话的译文里，也是畸形欧化的一个怪物，其实中国人原来只说“各位先生”。但是这两种说法大家如今已经见怪不怪了，都是被不地道的翻译给害的。<br>
<div>
<div>
<div class="msocomtxt" >
<p class="MsoNormal"><span></span></p>
</div>
</div>
</div> <a href="http://hi.baidu.com/caviarx/blog/item/d822bd2c546870e68b1399d0.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%B9%A4%D7%F7%D0%C4%B5%C3">工作心得</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/d822bd2c546870e68b1399d0.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-29  22:58</pubDate>
        <category><![CDATA[工作心得]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/d822bd2c546870e68b1399d0.html</guid>
</item>

<item>
        <title><![CDATA[什么是动态语言？]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/60611c032ca5347d3812bb41.html]]></link>
        <description><![CDATA[
		
		<p>动态语言的全称为动态类型语言（Dynamically Typed Language）。动态语言和静态类型语言（Statically Typed Language）、强类型语言（Strongly Typed Language）和弱类型语言（Weakly Typed Language）是容易混淆的几个概念。我曾经误以为动态类型语言与弱类型语言是等价的，后来发现并非如此，例如Python就既是动态语言又是强类型 语言。这4个概念都与变量的数据类型有关，比较如下：</p>
<p style="padding-left: 30px;">1. 在静态类型语言中，使用变量（Variable）之前，通常要求声明（固定）变量的数据类型。变量和特定数据类型一旦绑定，就不可更改。编译器会对代码进 行数据类型的检查，确保代码中不会出现类型不一致的情况。例如如果我们定义了一个整型（int）变量，却试图将一个字符串赋值给它，编译时就会报错。</p>
<p style="padding-left: 30px;">2. 在动态类型语言中，通常不要求声明变量的数据类型，变量的数据类型是可变的。例如可以先将一个整数10赋变量a，然后再将字符串”hello”赋给变量a。变量的数据类型随着赋给它的值（Value）的类型变化。</p>
<p style="padding-left: 30px;">3. 在强类型语言中，不允许对变量施加与其类型的不相符的操作，比如不允许将字符串和整数相加，例如：”hello”+10。你必须手工将整数10转换成字符串”10″，才能相加。</p>
<p style="padding-left: 30px;">4. 在弱类型语言中，出现”hello”+10的情况，编译器或解释器不会报错，而是自动进行类型转换，例如将整数10转换成字符串”10″，返回结果”hello10″。</p> <a href="http://hi.baidu.com/caviarx/blog/item/60611c032ca5347d3812bb41.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/60611c032ca5347d3812bb41.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-08  20:55</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/60611c032ca5347d3812bb41.html</guid>
</item>

<item>
        <title><![CDATA[解决WordPress无法自动升级的问题]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/587aad108f8a40f6c2ce79f0.html]]></link>
        <description><![CDATA[
		
		在<a target="_blank" href="http://secure.myplus.org/" title="myplus.org">myplus.org</a>和<a target="_blank" href="http://www.oxyhost.com/" title="oxyhost.com">oxyhost.com</a>提供的免费虚拟服务器上安装WordPress2.8.4，都出现无法通过控制面板自动升级，也不能下载插件和主题的情况。控制面板提示必须手动提供下载地址、用户名和密码。但是前两天在国内的<a target="_blank" href="http://home.jhost.cn/" title="jhost.cn">jhost.cn</a>上安装WP没有出现这种情况，可能是因为服务器的设置不同。我在<a target="_blank" href="http://byet.net/index.php" title="byet.net的论坛">byet.net的论坛</a>搜到了解决办法，如果你也碰到相同的情况，可以尝试以下的方法：
<ul>
    <li>登陆服务器后台，在存放WordPress目录下找到wp-config.php文件。</li>
</ul>
<ul>
    <li>如果后台管理程序提供编辑文本的功能，直接编辑wp-config.php文件（编辑前注意做好文件备份），在文件的末尾添加如下代码：</li>
</ul>
<pre>if(is_admin())<br>{<br> add_filter('filesystem_method', create_function('$a', 'return &quot;direct&quot;;' ));<br> define( 'FS_CHMOD_DIR', 0751 );<br>}</pre>
<ul>
    <li>如果后台管理程序不提供直接编辑功能，你可以将wp-config.php文件复制到本地进行编辑（同样请注意做好文件备份），再上传到服务器上替换原来的文件。</li>
</ul> <a href="http://hi.baidu.com/caviarx/blog/item/587aad108f8a40f6c2ce79f0.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/587aad108f8a40f6c2ce79f0.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-01  17:40</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/587aad108f8a40f6c2ce79f0.html</guid>
</item>

<item>
        <title><![CDATA[Python有哪些优点]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/28f991f4d98a25d3f3d3853c.html]]></link>
        <description><![CDATA[
		
		<p>既然打算学习Python，不妨看看Python有哪些优点：</p>
<p style="padding-left: 30px;">1. Python是解释执行的语言，无需编译和链接，可以帮助你节省大量的开发时间。</p>
<p style="padding-left: 30px;">2. Python内置高级的数据类型，例如数组（array）和字典（dictionary），它比Perl更适合处理通用领域问题。</p>
<p style="padding-left: 30px;">3. Python采用优雅的缩进（indentaton）来表示程序结构，使得代码风格统一，方便多人合作开发。Ruby的思想与Python严谨的理念不同，Ruby强调“There’s More Than One Way To Do It”，它更加个人化。</p>
<p style="padding-left: 30px;">4. Python不须要声明变量和参数，不需要begin/end等额外的格式说明信息，代码简洁。</p>
<p style="padding-left: 30px;">5. Python有大量的成熟的函数库支持。</p> <a href="http://hi.baidu.com/caviarx/blog/item/28f991f4d98a25d3f3d3853c.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/28f991f4d98a25d3f3d3853c.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-08  20:41</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/28f991f4d98a25d3f3d3853c.html</guid>
</item>

<item>
        <title><![CDATA[自学Python_0010]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/bb7e4aecd7a0163727979133.html]]></link>
        <description><![CDATA[
		
		<p>利用os.list()方法显示指定目录（如，d:\python\doc）下的文件列表，假设doc目录的结构如下，其中目录用粗体表示，文件用普通字体表示。</p>
<pre><strong>D:</strong><br>├─<strong>python</strong><br>      ├─<strong>doc</strong><br>            ├─<strong>new</strong><br>            ├─python26.chm<br>            ├─mycd.txt<br>            ├─elve.py</pre>
<p><strong>键入的命令和显示的结果：</strong></p>
<pre>&gt;&gt;&gt; import os<br>&gt;&gt;&gt; print os.listdir('d:\\python\\doc')<br>['python26.chm', 'new', 'elve.py', 'mycd.txt']<br>&gt;&gt;&gt;</pre>
<p><strong>代码注解：</strong></p>
<ul>
    <li>首先通过impotr命令调用os模块：</li>
</ul>
<pre>&gt;&gt;&gt;import os</pre>
<ul>
    <li>然后利用os模块中的listdir()方法列出目录下的文件列表：</li>
</ul>
<pre>&gt;&gt;&gt; print os.listdir('d:\\python\\doc')</pre>
<ul>
    <li>方法os.listdir()输出结果是一个列表（list）：</li>
</ul>
<pre>['python26.chm', 'new', 'elve.py', 'mycd.txt']</pre>
<p><strong>提示：</strong></p>
<ul>
    <li>注意Python的列表是包含在一对方括号之间的，这个列表包含4个用单引号包围的字符串（string），分别是doc目录下的一个子目录和三个文件。</li>
</ul>
<ul>
    <li>Python也可以使用双引号来表示字符串，但因为HTML语言使用双引号，为了便于区分，建议使用单引号。养成好的习惯会避免很多麻烦。</li>
</ul>
<p><strong>扩展问题：</strong></p>
<ul>
    <li>如果去掉print命令会怎么样呢？</li>
</ul>
<pre>&gt;&gt;&gt; os.listdir('d:\\python\\doc')<br>['python26.chm', 'new', 'elve.py', 'mycd.txt']<br>&gt;&gt;&gt;</pre>
<p>结果是一样的。在Python的交互式环境下，输入对象回车后，会得到对象的值。大家可以在命令行输入任意数字或字符串试试。</p> <a href="http://hi.baidu.com/caviarx/blog/item/bb7e4aecd7a0163727979133.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/bb7e4aecd7a0163727979133.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-08  20:39</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/bb7e4aecd7a0163727979133.html</guid>
</item>

<item>
        <title><![CDATA[为学者日益，为道者日损]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/831d60136be77bdaf6039ed8.html]]></link>
        <description><![CDATA[
		
		《大道至简——软件工程实践者的思想》是周爱民老师对自己数年的软件开发经验与工程实践的回顾，除了架构以外，书中涉及对软件工程实施各个方面的思考，作者研究传统文化以致实用，在书中借“愚公移山”的故事剖析编程的本质，用“卖油翁”的典故揭示技法的本质，用“商鞅变法”比喻组织在软件工程中的重要性，等等。作者从这些读者耳熟能详的故事中，发掘与软件工程相通的道理，旧瓶装新酒，读来颇有韵味。<br>
<br>
为学者日益，为道者日损。读《大道至简——软件工程实践者的思想》之前，我一直是“日益”的支持者，读过之后，才领略“日损”的奥妙。既佩服作者分析比较事物的能力，也惭愧自己思考不足。<br>
<br>
软件工程的问题说到底是关于人的问题，无论方法、过程、组织、体制、管理、经营，都需要人的参与，如果项目失败，肯定是参与项目的人造成的。作者在分析软件工程的种种问题时，反复强调着他的观点：学而不思则罔，做工程要抓住事物的本质。用RUP只会照抄文档模板；做管理只知道照搬教条和别人的经验；与客户沟通言必谈UML……按作者的话说，都是在“走过场”，是“为了工程而工程”。工程做完了，项目却失败了。如果参与工程的人不是故意消极怠工，那就是缺乏思考了。<br>
<br>
作者自己坦言，这本书更多地指出了软件工程实施过程中的种种问题，戳到了从业者的痛处，但是没有给出解决的办法，所谓“只破不立”。如何解决这些问题，是作者五年来一直在思考的问题。大道至简，知易行难，作者谦虚地说自己仍然“行在道上”，我们期待作者下一次思考的成果。不过在此之前，不妨听听业界的专家们对这本书是怎么评价的。六位业界专家读过这本书后，“不惟说好，不怕说坏”，各自发表了对软件工程的看法。高焕堂老师甚至地对“愚公”的故事进行了再创造。我们尽量保持点评内容的 “原生态”，希望这些“无拘无束”的点评能对读者有所帮助。 <a href="http://hi.baidu.com/caviarx/blog/item/831d60136be77bdaf6039ed8.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/831d60136be77bdaf6039ed8.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-20  19:21</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/831d60136be77bdaf6039ed8.html</guid>
</item>

<item>
        <title><![CDATA[8月份的TIOBE编程语言排行榜]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/6bc57d0ac2cf9f1694ca6b19.html]]></link>
        <description><![CDATA[
		
		&#160;&#160;&#160;&#160;&#160;&#160; 8月份公布的TIOBE编程语言排行榜上，Java、C、C++所占比例分别为19.527%，17.220%和10.501%，仍然稳坐前三甲的位置，PHP（占9.390%）虽然稳中有升，但仍然处于第四的位置。VB的排名（占8.486%）自从2008年初达到历史最高点后，连续十几个月呈下滑趋势，已经从2008年的第3位下降至目前的第5位，上个月又下滑了2.37%，形势不容乐观。Python语言自从2008年超越Perl之后，一直扮演着动态语言先锋的角色，本月（占4.489%）仍然领先于C#（占4.443%）一个身位，占据着第6的名次。但同属于动态语方的Perl和Ruby却表现疲软，上个月分别下降了0.67%和0.43%，分列第8和第10名。从语言类型上来看，由于Perl和Ruby的排名下滑，导致动态类型语言整体比例下降了1.1%，相应地，静态类型语言整体上升了1.1%。<br>
<br>
本月最大的黑马是苹果平台的编程语言Object-C，从30名开外一跃进入前20强（增长率为+0.51%），从侧面反映了苹果公司倾力打造的Iphone产业链正在加速占领市场。近期苹果类开发的选题在互动网上的排名非常好，苹果系的开发类选题正在形成新的热点，期待《苹果开发之Cocoa编程》上市后也能取得好成绩。 <a href="http://hi.baidu.com/caviarx/blog/item/6bc57d0ac2cf9f1694ca6b19.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%B9%A4%D7%F7%D0%C4%B5%C3">工作心得</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/6bc57d0ac2cf9f1694ca6b19.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-16  22:45</pubDate>
        <category><![CDATA[工作心得]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/6bc57d0ac2cf9f1694ca6b19.html</guid>
</item>

<item>
        <title><![CDATA[云计算为时过早，虚拟化渐显锋芒]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/78973a16267c0e11962b4337.html]]></link>
        <description><![CDATA[
		
		Matthew Porter（Contegix LLC公司的CEO ）在InfoQ上发表了一篇名为《More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS》的文章，介绍虚拟化技术在企业应用中的发展状况。<br>
<br>
云计算让大家认识到了虚拟化的奇妙之处，包括快速安装部署（rapid provisioning），对资源利用的最大化（maximum utilization of resources），应用具有高持续可用性（high availability for applications），以及面对灾难时的业务连贯性（business continuity in the face of disaster）。值得注意的是这些优点都来自虚拟化技术，而不是云计算。云计算最重要的特点是：服务托管和按需付费（Pay as you go）。<br>
<br>
许多企业出于安全考虑，以及对云计算服务提供商的不信任，不愿将自己的应用交给云计算服务提供商托管，而重安全性对于大型企业非常重要，按需收费节省的托管费它们一般不会放在眼里。招聘技术人员搭建自己的系统是最安全的方法，于是通过虚拟化技术搭建私有云计算平台必定成为公有云计算大规模应用前的跳板。此外，虚拟化可以以较低的代价实现SaaS中的单重租用（single-tenancy），或者多重承租（multi-tenancy）。它在这方面的天然优势，是实现SaaS的得力工具。对私有云和SaaS的两种需求势必会让虚拟化技术成为下一个企业应用执点。<br>
<br>
More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS 原文地址：http://www.infoq.com/articles/virtualization-saas <a href="http://hi.baidu.com/caviarx/blog/item/78973a16267c0e11962b4337.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/78973a16267c0e11962b4337.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-09  22:43</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/78973a16267c0e11962b4337.html</guid>
</item>

<item>
        <title><![CDATA[在软件开发中借鉴期权思想]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/ffc85c00f927b58ee850cdb4.html]]></link>
        <description><![CDATA[
		
		期权(Option)，从它的英文字面意思来看，也可以翻译为选择权。在金融领域它是指在未来一定时期可以买卖的权力，是买方向卖方支付一定数量的金额（指权利金）后拥有的在未来一段时间内（指美式期权）或未来某一特定日期（指欧式期权）以事先规定好的价格（指履约价格）向卖方购买或出售一定数量的特定标的物的权力，但不负有必须买进或卖出的义务。<br>
<br>
期权的价值来自于它的灵活性，即期权持有人可以根据将来的情况来决定是否行使权利，这既可以保证期权持有人在有利的情况下继续投资，同时将损失限制在权利金的范围以内。<br>
<br>
Robert G. Fichman, Mark Keil 和 Amrit Tiwana 在2004年共同发表了一篇论文&quot;Beyond Valuation: 'Options Thinking' in IT Project Management&quot;，讨论如何在软件开发和投资中借鉴期权思想。<br>
<br>
信息产业由于其自身开发过程和交付方式的灵活性，很容易借鉴期权的思想，从而降低风险，实现利润最大化。举个简单的例子：某公司准备在全公司范围内采用一项提高企业效率的新技术，新技术在带来高效高率的同时，也存在风险（包括技术风险和成本风险）。为了规避风险，可以先在某个小的部门内进行试运行，如果效果良好，再向全公司推广；如果效果不好，则放弃这个计划，这部分投资就相当于交了期权的权利金，损失到些为止。<br>
<br>
信息产业瞬息万变，除了技术风险和成本风险外，还普遍存在着市场风险。期权思想的另一个方面是推迟决定，合理地利用这一点可以化解软件开发中的市场风险（和某些技术风险）。在敏捷宣言中有一条原则&ldquo;推迟决定&rdquo;，就是以此为理论基础的。<br>
<br>
此外，采用期权思想，还意味着进一步划清软件开发中哪些是必须做的，哪些是可以做的。尽量减少必须做的部分，降低项目的风险，因为不可变的部分太多，软件开发的灵活性就会被削弱。 <a href="http://hi.baidu.com/caviarx/blog/item/ffc85c00f927b58ee850cdb4.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/ffc85c00f927b58ee850cdb4.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-02  22:30</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/ffc85c00f927b58ee850cdb4.html</guid>
</item>

<item>
        <title><![CDATA[阅读《软件架构设计》的心得2]]></title>
        <link><![CDATA[http://hi.baidu.com/caviarx/blog/item/bbd27ddd48e0d43d5882ddc4.html]]></link>
        <description><![CDATA[
		
		<pre class="note">1. 软件需求分为功能需求（也称为行为需求）和非功能需求两大类。功能需求描述软件系统应该做什<br>么，它强调的是行为，所以也称为行为需求。非功能需求包括质量属性和约束。而质量属性又分为运<br>行期质量属性和开发期质量属性。<br><br>2. 架构师不仅要为客户设计，还要为用户设计，为开发人员设计，为管理人员设计。对架构师而言，<br>易用性、性能、可扩展性、持续可用性这些非功能需求之间的区别在于：易用性和性能是软件运行期<br>属性，最关心这两点的人是客户；而可扩展性、持续可用性是软件开发期质量属性，最关心这两点的<br>人是项目开发人员和维护人员。所以关注&ldquo;软件运行期质量属性&rdquo;才能更好地为客户设计，关注&ldquo;软<br>件开发期质量属性&rdquo;才能更好地为开发人员设计。<br> <br>3. 客户不一定是最终用户，例如对超市销售系统而言，客户是超市的老板，而用户则是超市的收银员<br>和上货员。<br> <br>4. 不同的软件架构视图关注不同的方面，忽略与此方面无关的实体，目的是为了采用&ldquo;分而治之&rdquo;<br>的方法从不同的视角分别设计；同时了也为沟通、理解和存档提供了方便。</pre> <a href="http://hi.baidu.com/caviarx/blog/item/bbd27ddd48e0d43d5882ddc4.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/caviarx/blog/category/%D1%DA%BE%ED%D3%D0%B8%D0">掩卷有感</a>&nbsp;<a href="http://hi.baidu.com/caviarx/blog/item/bbd27ddd48e0d43d5882ddc4.html#comment">查看评论</a>]]></description>
        <pubDate>2009-07-26  18:08</pubDate>
        <category><![CDATA[掩卷有感]]></category>
        <author><![CDATA[caviarx]]></author>
		<guid>http://hi.baidu.com/caviarx/blog/item/bbd27ddd48e0d43d5882ddc4.html</guid>
</item>


</channel>
</rss>