<?xml version="1.0" encoding="UTF-8" ?>















<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title><![CDATA[学习至上]]> </title>
<description>
<![CDATA[章士挺]]>
</description>
<link>http://zstzah.blog.bokee.net/</link>
<language>zh-cn</language>
<creator>zstzah</creator>
<pubDate>Fri, 17 Feb 2006 12:52:03 CST </pubDate>
<generatorAgent rdf:resource="http://www.bokee.net"/>
<ttl>5</ttl>

<item>
<title>用最传统的类似于栈算法进行列表缓存</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1387655.html</link>
<description>
<![CDATA[<p>今天凌晨的时候,对于列表缓存的问题，我一直在梦中痛苦的思考,而梦境中仿佛我用最简单的办法实现了列表缓存,真的好激动啊.一激动就醒了过来,仔细回忆梦境才知道,我的解决方案居然是那么原始和一点都不创新:</p>
<p>事实上,对于列表,被读取机会最多的应该是列表的第一页,这个时候我们只要缓存了列表的第一页,基本上就解决了列表被处理的问题.之前我总是想,对于列表首页缓存:<font color="#ffffff">章士挺</font> </p>
<p>之前的算法:<font color="#ffffff">章士挺</font> </p>
<p>1 我们必须知道哪些数据的修改会导致列表首页的变化;<font color="#ffffff">章士挺</font> </p>
<p>2 如果发生了变化，我们需要重新加载列表然后更新缓存来保证列表的真确性; <font color="#ffffff">章士挺</font> </p>
<p>这个算法的问题是，每次我们都需要读取数据库来同步列表的缓存<font color="#ffffff">章士挺</font> </p>
<p>那么如何才能在发生变化的时候不读取数据库呢?<font color="#ffffff">章士挺</font> </p>
<p>假设我们只需要在一些数据发生变化的时候修改被缓存的列表首页,这些修改仅仅是局部的和最少量的.同时我们又要保证列表的顺序.这个要求让我想到了栈.这个后进先出的数据结构.用类似于这样的结构来处理我们的列表缓存问题是一个绝妙的搭配:<font color="#ffffff">章士挺</font> </p>
<p>现在的算法:</p>
<p>我们需要一个这样的数据结构:后进先出的,同时数据进入的时候如果超过设定的数据容量,删除最早进入的数据.可以指定结构中任意一条和多条数据的删除,同时重新整理数据次序,然后返回剩余的数据数量.我们还需要该数据结构提供修改任意一条数据在该结构中的位置.我暂时称它为缓存栈<font color="#ffffff">章士挺</font> </p>
<p>1 首先我们第一页列表，放进缓存栈进行缓存;<font color="#ffffff">章士挺</font> </p>
<p>2 发生数据变化的时候，第一种情况是新的数据添加了,那我们需要修改第一页缓存的时候，我们仅仅是往缓存栈里面放入新的数据,第二种情况是一条记录被更新了，我们需判断要将这条记录放入第一页缓存栈中还是已经在缓存栈中，我们需要更新它的位置;</p>
<p>3 这个时候我们必须注意，我们放入的数据是否是在缓存栈中已经存在，如果存在，我们需要剔除;</p>
<p>3 当被有数据被删除的时候，我们需要到缓存栈里去判断，是否有数据已经需要剔除.这个时候问题来了,我们缓存的数据变少了,变少带来的问题是我们第一页显示给用户的时候也少了,例如我们每页显示20条的,现在却只有19条了.为了解决这个问题，我在设计这个缓存的时候，我从数据库加载了超过一页20%的数据,以减少数据被删除而去加载数据的问题.因为我们的数据被批量和大量删除的比例很小.<font color="#ffffff">章士挺</font> </p>
<p>4 仔细想象删除数据的问题: 我们又如何定位删除的数据就在我们缓存的位置间呢?首先，我们不能去读数据库来判断;其次,我们一定需要知道哪些范围内的数据在我们缓存的列表数据间.很好，这个时候我们需要保存缓存数据的列表范围.只要我们有了范围可以直接知道需要更新被缓存的列表缓存栈数据.</p>
<p>5 这个时候又有问题出现了: 被缓存的缓存栈中删除的数据到了不够一页的时候,我们怎么处理呢?首先, 我们必须判断这个时候一定条件下总的数据列表是否已经超过了一页，如果超过了.更新缓存栈的工作就会被激活.否则这个动作永远也不会被调用.<font color="#ffffff">章士挺</font> </p>
<p>欢迎加我MSN交流: <a href="mailto:avazst@hotmail.com">avazst@hotmail.com</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1387655.html</guid>
<subject>技术文章</subject>
<author>zstzah</author>
<category>技术文章</category>
<pubDate>Fri, 25 Jan 2008 10:41:01 CST </pubDate>
</item>

<item>
<title>关于性能问题的一些杂乱的想法</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1384384.html</link>
<description>
<![CDATA[<p>近期架构设计中对于解决性能问题的一些杂乱的想法,不连贯和没有顺序的整理:&nbsp;</p>
<p>1、细粒度的设计：大数据表的拆分和冗余，比如我们将文章实体的基本信息拆分成文章的基本数据表和文章的统计数据、时刻变化的数据两个表。使用中心缓存服务器缓存文章基本数据表的数据，第二张数据表保留了统计数据和复制了基本表中需要列表内显示的基本数据，包括作者名称、发布时间、修改时间等关键的数据。还有对于特定应用的缓存进行按需设计，只对我们需要的数据进行数据的缓存，进行特定模块的缓存编程，解决缓存数据的利用率和命中率。</p>
<p>2、建立职业博客首页的快照，通常我们保证这个快照在24小时内更新一次时刻在改变的统计数据，或者会在更短的时间进行数据的更新。在这个设计上，要点是：在首页中哪些数据的变化会造成快照的同步更新？包括留言、文章等这些关键的数据。为什么不使用简单的中心缓存来解决页面的复制呢？主要的问题是，我们将首页的数据变化以静态文件的方式进行异步的数据复制，也就是说，当我们认为一些数据的更新需要更新快照的时候，程序只发出更新的请求，客户端程序不关心更新的过程和结果，以及是否失败。理想的情况下，会有某些主机专门处理这些异步的数据复制。</p>
<p>3、缓存变化相对小的列表数据，这里指我们把数据缓存在中心缓存服务器。比如我们缓存文章、图片的第一页评论，缓存博客首页的最新留言，置顶文章、第一页文章列表，以及各种评论等这些相对变化小的数据。</p>
<p>4、有一些数据是系统中到处都会被用到数据，这些数据有时候是我们通过访问多个数据库表格获得的，比如用户的数据包含了用户头像、名字、登陆名、职业类型、最近文章等这些需要多个地方获取的数据视图，而这个视图数据的更新频率是可以预测和不会太频繁的。那么我们缓存这部分数据，当任何模块需要用到这些数据的时候很多时候都是读取了缓存的数据。</p>
<p>5、在应用程序和数据库之间使用数据库中间件，使得支持伸缩性、高效、失败转移的等特性的数据库集群.这样我们就可以考虑使用用例驱动的分表分库等设计,在客户端程序避免了对复杂分表分库带来的不透明的编程难度和没有宽展性.</p>
<p>6、非同步修改的多层缓存：在中心缓存中的数据将被整个集群服务器访问，而对于客户机来说，需要的数据总是要从中心缓存服务器获得，这个时候，为了避免频繁的通过网络去获得一份可能在一段时间内不会发生频繁变化的数据所带来的网络吞吐开销，我们设计在得到数据的同时复制到客户端进行缓存，这个层面的缓存是一种完全的复制，包括缓存所使用的key和value，设计上我们需要保持第一次读取的时候设定一个和中心缓存一样的缓存过期时间，这个地方为了避免在客户端缓存可能将要过期的中心缓存数据，我们设定了客户端缓存的过期设定策略：对某一个时间段内要过期的数据不进行客户端缓存。</p>
<p>...........</p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1384384.html</guid>
<subject>技术文章</subject>
<author>zstzah</author>
<category>技术文章</category>
<pubDate>Thu, 24 Jan 2008 10:35:50 CST </pubDate>
</item>

<item>
<title>团队管理的一些总结</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1363122.html</link>
<description>
<![CDATA[<p>这将近三年,我在公司经历了很多事情,在学习中成长,很多时候我都在总结每个步骤和过程我取得的成绩和失败.如果说我们需要一个有效性高的团队，需要一个能够创造奇迹的团队，那么我觉得如下这些就是我经历了这么多得到的启示。</p>
<p>1、必须明确目标，当然这个目标包括组织的大目标和个人的小目标。这个目标体现了能够为我们的商业价值提供什么？我们要得到什么？个人的目标应该更多的问自己你为组织付出什么？你的使命是什么，什么对你来说是重要的？明确一个目标就是明确了一个团队的方向，在经历了一个公司的多次失败过程中，我深刻的体会到明确目标对团队的重要性。</p>
<p>2、决策和执行，没有决策的人是无法学会管理的，学会在一些结果和做法之间决策。光有决策没有执行力就是空谈。决策并不是行政术语，决策是对太多信息的有效判断和决定，也是对太少信息的推测能力，没有决策就会失去方向，就会使得团队疲于奔命。而执行力就是决策的延伸，执行力不是严格的管理术语，因为执行力是团队每个成员的高效的基本素质。</p>
<p>3、诚信和遵守诺言，在一个团队中，这些决定了你可以获得的信任，也是团队合作的基础。如果没有了这个，团队就无法高效的合作。作为团队的领导者，人格魅力就是你的价值。</p>
<p>4、富有激情，我始终相信激情是创造力的根源，有碰撞的团队和思维活跃的团队才能创造奇迹，才能更加有效的达到伟大的目标。其实我相信每个成员都会有激情，关键在于如何去挖掘。鼓励成员去探索，远比你告诉他要怎么做来得有价值，因为我们需要思考的团队，需要有创造力的团队。当然培养思考问题的方法和富有激情的环境是领导者的任务，我们不能将这个责任推卸给团队的其他成员。</p>
<p>5、适应能力强的团队,如果说一个团队无法面对时刻发生的变化,那么面对激烈竞争时失败的机会就会远远多于成功的机会.不论从管理机制上我们需要适应力强,每个成员也需要有一种面对变化快速适应的能力.只有这样才可能在竞争的环境中脱颖而出.</p>
<p>6、团队合作精神，这个也许是团队管理中最重要的部分，没有协作就没有生产力。我们鼓励个人能力的提高，但是更加坚持协作的重要。如果因为个人而对团队造成大的影响，这无疑是团队领导者的责任。</p>
<p><br /></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1363122.html</guid>
<subject>管理</subject>
<author>zstzah</author>
<category>管理</category>
<pubDate>Thu, 17 Jan 2008 11:07:21 CST </pubDate>
</item>

<item>
<title>C-JDBC手册第一部分学习的中文翻译</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1354498.html</link>
<description>
<![CDATA[<p>本人英语很菜，翻译仅仅是作为学习笔记形式。<br />你可以通过Msn帮我指正错误,谢谢：avazst@hotmail.com<br /><br />1. Getting Started<br />1.1. What is C-JDBC?<br />C-JDBC is a database cluster middleware that allows any JavaTM application (standalone application, servlet or<br />EJBTM container, ...) to transparently access a cluster of databases through JDBCTM. You do not have to modify<br />client applications, application servers or database server software. You just have to ensure that all database<br />accesses are performed through C-JDBC.<br />C-JDBC is a free, open source project of the ObjectWeb Consortium (http://www.objectweb.org/). It is licensed<br />under the GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html) (LGPL).<br /><br />1.入门<br />1.1 C-JDBC是什么?<br />C-JDBC 是一个database集群中间件，它允许你使用任意的Java应用程序(standalone application, servlet or EJB container, ...) 通过jdbc透明的访问数据库集群。你甚至不需要修改任意的客户端程序，应用服务器，以及数据库服务程序.只要你必须保证全部对数据库的访问都是通过 C-JDBC进行。<br />C-JDBC是由ObjectWeb 社区免费提供的开源产品(<a href="http://www.objectweb.org">http://www.objectweb.org/</a>).它隶属于GNU<span class="l">较宽松公共许可证。</span> (<a href="http://www.gnu.org/copyleft/lesser.html">http://www.gnu.org/copyleft/lesser.html</a>)<br /><br />1.2. What do I need to use C-JDBC?<br />In order to use C-JDBC, you will need:<br />&bull; a client application that accesses a database through JDBC,<br />&bull; a JDKTM 1.3 (or greater) compliant Java Virtual MachineTM (JVM)1,<br />&bull; a database with a JDBC driver (type 1, 2, 3 or 4) or an ODBC driver used with the JDBC-ODBC bridge.<br />&bull; a network supporting TCP/IP communications between your cluster nodes.<br />&bull; Note: If your client application uses ODBC, it is possible to use an ODBC-JDBC bridge such as the<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unixODBC (http://www.unixodbc.org/) provided by Easysoft.<br /><br />1.2.使用C-JDBC我需要做些什么呢？<br />. 一个可以通过jdbc访问数据库的客户端应用程序；<br />. 一个jdk1.3或以上的Java虚拟机环境；<br />. 一个jdbc(1,2,3,4)数据库驱动或者一个基于JDBC-ODBC bridge的ODBC驱动；<br />. 一个支持TCP/IP协议的通讯系统在你的各个集群结点之间。<br /><br />&nbsp;&nbsp; 注释：假如你的客户端应用程序使用ODBC，它可能使用了 ODBC-JDBC bridge，如Easysoft所提供的unixODBC (<a href="http://www.unixodbc.org/">http://www.unixodbc.org/</a>) 。<br /><br /><br />1.3. Why should I use C-JDBC?<br />You have a Java application or a Java-based application server that accesses one or several databases. The<br />database tier becomes the bottleneck of your application or it is a single point of failure or both. C-JDBC can<br />help you resolve these problems by providing:<br />&bull;&nbsp; performance scalability by adding database nodes and balacing the load among these nodes.<br />&bull;&nbsp; high availability of the database tier, i.e. C-JDBC tolerates database crashes and offers transparent failover<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using database replication techniques.<br />&bull;&nbsp; improved performance with fine grain query caching and transparent connection pooling.<br />&bull;&nbsp; SQL traffic logging for performance monitoring and analysis.<br />&bull;&nbsp; support for clusters of heterogenous database engines.<br /><br />1.3. 为什么我需要使用C-JDBC？<br />你有一个Java application或者Java-based application 运行在一个或者多个数据库上的服务。<br />. 高效和可伸缩的加入一些数据库结点并且可以均衡的装入到这些结点之中；<br />. 高效的数据库层 ，i.e， C-JDBC利用数据库复制技术容许数据库发生崩溃时透明进行失效转移；<br />. 利用细粒度的查询缓存和透明的数据库连接池改进了性能；<br />. 通过sql logging进行数据库性能监听和分析；<br />. 对异构数据库引擎构成的集群的支持；</p>
<p>1.4. How does it work?<br />C-JDBC provides a flexible architecture that allows you to achieve scalability, high availability and failover with<br />your database tier. C-JDBC implements the concept of RAIDb: Redundant Array of Inexpensive Databases (see<br />Section 10). The database is distributed and replicated among several nodes and C-JDBC load balances the<br />queries between these nodes.</p>
<p>1.4. 它是如何工作的？<br />C-JDBC 允许你实现可扩展，高可用性和失败转移的数据库层灵活的体系架构。C-JDBC实现了RAIDb的概念：廉价的数据库冗余阵列(查阅第11部分).这些数据库是分布式的和在一些结点之中复制以及C-JDBC在这些结点之间进行查询的负载均衡。</p>
<p>C-JDBC provides a generic JDBC driver to be used by the clients (see Section 4). This driver forwards the SQL<br />requests to the C-JDBC controller (see Section 6) that balances them on a cluster of databases (reads are load<br />balanced and writes are broadcasted). C-JDBC can be used with any RDBMS (Relational DataBase Management System) providing a JDBC driver, that is to say almost all existing open source and commercial databases. Figure 1 gives an overview of C-JDBC principle.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图例 1. C-JDBC原理</p>
<p><img height="300" alt="" width="500" src="/userfilemodule/download.do?action=reference&amp;id=948604&amp;bokeeName=zstzah" /><br />C-JDBC为使用它的客户端提供一个通用的JDBC驱动(查阅第4部分)。这个驱动将这些SQL请求转发到在数据库集群之上均衡处理(读取负载均衡和写入广播)它们的控制中心(查看第6部分)。如果使用一个JDBC驱动C-JDBC可以使用于任何RDBMS(关系型数据库管理系统)，即几乎全部现有的开源和商业数据库。图例1大致说明了C-JDBC原理.</p>
<p><br />C-JDBC allows to build any cluster configuration including mixing database engines from different vendors. The<br />main features provided by C-JDBC are performance scalability, fault tolerance and high availability. Additional<br />features such as monitoring, logging, SQL requests caching are provided as well.<br />The architecture is widely open to allow anyone to plug custom requests schedulers, load balancers, connection<br />managers, caching policies, ...</p>
<p>C-JDBC允许你构件任意集群配置，包括不同的供应商提供的混合的数据库引擎。由C-JDBC赋予的主要的特性是性能可扩展性，容错能力和高可用性。同时也赋予了其它的特性，例如监控，日志，SQL请求缓存。该体系结构也是完全开放的，它允许插入自定义请求调度程序，负载均衡，连接管理，缓存策略，...</p>
<p>1.5. What does it cost?</p>
<p>From a software point of view, C-JDBC is an open-source software licensed under LGPL which means that it is free of charge for any usage (personal or commercial). If you are using commercial RDBMS (such as Oracle,<br />DB2, ...), you will have to buy extra licenses for the nodes where you install replicas of the database. But you can<br />possibly use open-source databases to host replicas of your main database.<br />You need to buy extra machines if you want more performance and more fault tolerance. C-JDBC has been<br />designed to work with standard off-the-shelf workstations because it primarily targets low cost open-source<br />solutions but it can work as well with large SMP machines. A standard Ethernet network is sufficient to achieve<br />good performance.</p>
<p><br />1.5. 使用它有什么开销？<br />从一个软件的观点来看，C-JDBC是基于LGPL许可之下的一个开源的软件，这就意味着任何使用都是免费的(包括个人或者商业)。假如你使用商业RDBMS(例如Oracle, DB2,....)， 你将必须为这些商业数据库结点购买额外的许可来安装你的数据库复制功能。但是你可以使用开源数据库来支持对主数据库的复制。<br />假如你想具有更高性能和容错能力，你需要购买额外的硬件设备。C-JDBC 被设计成可以工作在不需要定制的标准工作站，因为它主要定位于成本低廉的开源解决方案，但是它同样也可以工作在SMP(大型对称多路)主机系统。一个标准以太网就可以发挥非常好的性能。&nbsp; </p>
<p><br />1.6. What kind of modifications are needed?<br />You do not have to change anything to your application or your database.<br />You only have to update the JDBC driver configuration used by your application (usually it is just a configuration<br />file update) and to setup a C-JDBC configuration file (see Section 11).</p>
<p>1.6. 需要什么样的调整的？<br />你不需要改变任何应用程序或者你的数据库。<br />你仅仅需要更新你的应用程序所使用的JDBC驱动配置(通常仅是一个配置文件的更新)和配置一个C-JDBC配置文件(查看第十一部分)。</p>
<p>第一部分结束 待续.&nbsp;</p>
<p><br /><br /></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1354498.html</guid>
<subject>技术文章</subject>
<author>zstzah</author>
<category>技术文章</category>
<pubDate>Mon, 14 Jan 2008 17:02:07 CST </pubDate>
</item>

<item>
<title>数据库触发器使用必须注意的一些问题</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1310323.html</link>
<description>
<![CDATA[总结数据库触发器使用中遇到的一些问题，归纳如下：<br /><br /><br />误区1：对上层用户代码透明，方便了代码的编写<br />对于上层用户代码的透明不一定是好的，因为用户代码可能并不知道某种触发器条件成立之后会执行什么动作，这样在后期维护代码和开发新的应用的时候不可控因素就会增多。<br />误区2：提高了性能，简化了开发<br />在使用了众多的触发器之后，我们通常很难预料触发器启动之后可能发生的一些连续执行相关联的触发器，当发生了一个触发器链执行的时候，情况将变的复杂和无法控制；<br />误区3：如果一个表只有一个触发器，还是比较安全的<br />如果触发器设计的时候并不严格，那么可能会造成触发器递归执行，递归执行的通常都是关联触发器执行了之后，在当前触发器数据表的数据又符合了条件，递归执行是很危险的。<br /><br />触发器设计必须遵守的一些原则：<br /><br /><br />1、必须严格的设计触发器，遵守基本的ECA规范(EVENT-CONDITION-ACTION RULES)，这个是最基本的概念，是什么事情引发的，然后我们需要什么条件，是after还是before，需要触发什么动作呢？<br /><br />2、检查是否还有其他触发器会关联到当前的表，看看是否监听了会被修改的数据列。<br /><br />3、是否必须使用触发器？如果业务足够的简单，而且并不是因为代码到处都是，环境复杂，修改代码关联度高，难度很高那么不要考虑触发器。<br />]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1310323.html</guid>
<subject></subject>
<author>zstzah</author>
<category></category>
<pubDate>Sat, 29 Dec 2007 16:04:42 CST </pubDate>
</item>

<item>
<title>修改模块设计开发规范,适应新平台</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1273751.html</link>
<description>
<![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">稍微修改,以适应新平台的开发&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3"></font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3"></font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">总体的一些思路<font color="#ffffff">章士挺</font> </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">1、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">在不进行任何折中和成本考量的前提下，想出任何你的好建议和好的想法，并且进行罗列；</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">2、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">彻底寻找问题，对目前的已有的设计和方案提出任何疑问，不要考虑任何因素；</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">3、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">以上两种情况下产生的结果进行整理和排列，列出结果矩阵，然后权衡和度量可行性。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">模块设计的大致需要考虑的方面<font color="#ffffff">章士挺</font> </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">1、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">关联性：考虑和当前的模块关联的全部其他模块<font color="#ffffff">章士挺</font> </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">这里的核心是这样的，你必须真正的了解所要完成的<strong style="mso-bidi-font-weight: normal">功能的全部需求和真实的商业价值的预期</strong>。哪些功能模块直接关联你完成的功能，哪些间接关联你完成的功能，你使用什么样的策略来进行关联，如何才能解决耦合。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">考虑当前模块未来可能会和谁关联，怎么样关联。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">2、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">模块稳定性：考虑当前模块在未来可能发生怎么样的变化，你的设计是否可以在一定的程度上适应变化</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">你的设计是否可以比较容易的面对变化，或者说未来代码改动的余地不会是大面积和大动作的？从最低层的数据库层，我们需要知道哪些数据是永远固定的，哪些数据是暂时固定的，哪些数据是完全不固定的，而哪些数据是未知的。从功能上，必须分析出哪些功能是稳定的不会发生变化，哪些功能是容易发生变化的。<strong style="mso-bidi-font-weight: normal">针对可变的进行扩展开发，不会变的进行稳定的设计。</strong></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">3、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">复用性：尽量的寻找成熟部分，进行高层的抽象，使得可以很好的被今后的代码复用，提高效率和降低维护成本。<font color="#ffffff">章士挺</font> </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">4、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">效率：考虑你当前的设计和算法是否是目前为止最高效的<font color="#ffffff">章士挺</font> </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">必须使用最高效的算法来进行你的设计，一般来讲，可以只操作数据库一次完成的事情，坚决不使用两次，可以只取一个字段的情况，坚决不取两个字段。当然这个并不是绝对的，应该也有一个度，在保证代码可读性和一定的可扩展性的前提下，适当的使用资源是被允许的，同时局部性能必须保证全局的性能。这里比较典型的一个例子就是当你删除一条记录的时候</span><span lang="EN-US"><font face="Times New Roman">(</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">使用</span><span lang="EN-US"><font face="Times New Roman">hibernate</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">的时候</span><span lang="EN-US"><font face="Times New Roman">)</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">，能不先加载对象就坚决不加载对象，如果是有条件的，那么请直接使用</span><span lang="EN-US"><font face="Times New Roman">delete</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">语句加删除条件。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">5、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">易用性：考虑你当前的设计是否是界面友好，而且已经足够简单容易操作的。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">不论什么时候，要把用户想象成最没有耐性的最恶劣的和最无知的操作白痴，然后再设计你的用户界面和流程，尽可能的简单和容易理解。比如可以在一步完成的工作千万不要让用户操作两步，任何可能造成误解的地方必须提供详细的说明。<strong style="mso-bidi-font-weight: normal">在成本允许的前提下，任何可以改进的用户操作的地方坚决不能放过改进</strong>。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">编码基本原则</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">1、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">只暴露最少的接口到外部</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">暴露的接口必须是完整的，对于外部，尽量不要让客户代码调用多次不同的操作才完成一个功能。学会使用作用域来控制访问的范围。比如，内部重构出来的辅助接口，尽可能设计成</span><span lang="EN-US"><font face="Times New Roman">protected</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">，复杂和不想被复写的接口，请使用</span><span lang="EN-US"><font face="Times New Roman">final</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">关键字等等。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">2、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">对已有代码进行重构重构，再重构</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">只要发现可以重构，就马上重构，然后尽快的单元测试。</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">3、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">充分考虑功能操作时的环境资源情况</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">功能必须充分考虑执行的权限和任何执行的资源。比如删除功能中，必须考虑什么时候、谁、什么条件下可以删除。发生这个动作的时候，要知道需要系统处理什么内容，如，是否使得缓存无效，是否要通知其他某些程序</span><span lang="EN-US"><font face="Times New Roman">(</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">类似于需要</span><span lang="EN-US"><font face="Times New Roman">implements</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">某些监听接口、需要</span><span lang="EN-US"><font face="Times New Roman">callback</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">、还后我们系统中部署的JMS服务</span><span lang="EN-US"><font face="Times New Roman">)</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo3; tab-stops: list 18.0pt"><span lang="EN-US" style="mso-fareast-font-family: ’Times New Roman’"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">4、</font><span style="FONT: 7pt ’Times New Roman’">&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">充分考虑可能发生的任何异常情况</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">对于一个功能的任何异常情况必须非常正确和完整的告诉用户发生了什么异常，设计的过程中必须认真的寻找可能发生的异常的各种情况，给出完整的异常处理方案。代码中也要正确和完整的设计异常体系，不允许对关键异常抛出</span><span lang="EN-US"><font face="Times New Roman">Exception</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">、</span><span lang="EN-US"><font face="Times New Roman">RuntimeException</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">之类的异常，请务必包装。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">开发规范的细节：<font color="#ffffff">章士挺</font> </font></span></p>
<p>
<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">序号</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">类别</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">说明</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 1">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">注释</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 2">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">注释的量应该是源代码的</span><span lang="EN-US"><font face="Times New Roman">20%</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">左右<font color="#ffffff">章士挺</font> </span></font></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">代码中只要是有略微复杂的逻辑和算法的地方都需要进行注释，并且必须保证注释的可读</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 3">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">模块中全部文件都必须进行描述、版本著作的注释<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">具体的注释格式请参考编码规范</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 4">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">修改代码的同时必须同步修改注释，保持注释和代码的一致性</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">千万不能保留无用和过期的注释</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 5">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">注释必须放在逻辑代码的最临近的位置</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">语句上方，逻辑块的上方</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 6">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">5</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">常变量、方法、类等命名必须可以明确说明其含义，如果无法明确说明，就必须使用注释进行详细的说明</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">有一些逻辑可能过长，无法命名解决，那必须附上注释</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 7">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">6</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">注释必须和描述代码的排版一样保持同级别的缩进<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 8">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">7</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">空行隔开注释上面的代码<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 9">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">8</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">对条件和分支语句必须添加注释<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">在各个条件的开始说明，分支的开始地方进行说明，每个</span><span lang="EN-US"><font face="Times New Roman">case</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">语句都要进行说明</span></font></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 10">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">9</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">对与公开接口的注释必须是详尽完整的</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">包括接口的含义和需要注意的问题，甚至复杂的接口还需要包含使用示例。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 11">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">效率</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 12">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’; mso-bidi-font-weight: bold">在正确性、稳定性、可读性及可测性的前提下，</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">时刻保持对效率，稳定性的苛刻要求</span></font></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">写代码的时候要注意是否保证了最高的运行效率，当然局部效率必须为全局效率服务</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 13">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">变量、语句、算法逻辑等代码必须在这些最近使用到的地方进行定义和执行运算</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">不能将变量定义到很远部位，一直到执行了部分代码才调用。也不能将语句块的执行提前，一定要到需要使用的时候才执行。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 14">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">在循环体内不能出现任何冗余的代码</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">把任何有办法可以在循环体外处理的代码移到循环体外进行，特别是对数据库的操作，以及复杂算法的执行。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 15">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">对数据库操作，如果能一步完成的，如果性能可以提高的话，不要拆分成一步以上</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">特别是为了静态条件而加载数据库的一个对象，然后再依据条件加载另一个对象这种没有意义的操作。当然有时候不排除加载多次比</span><span lang="EN-US"><font face="Times New Roman">join</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">的效率高。</span></font></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 16">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">代码维护</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 17">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">必须注释或删除无用的代码，包括程序片段、方法、类、各种配置信息、数据库表、表字段等等。<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">这里可以使用注释的方式注释部分历史代码，方便查看改动了哪些问题。对于历史代码的清理可以方便维护人员定位问题，也保证了项目中可以不存在无用垃圾数据，降低了维护成本。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 18">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">修改完成必须同步修改单元测试，保证单元测试的可测试<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 19">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">保持每天版本更新的习惯</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">为了防止维护代码带来的系统</span><span lang="EN-US"><font face="Times New Roman">bug</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">和可能存在的版本冲突，必须经常更新的操作。</span></font></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 20">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">对于修改复杂的和重要代码必须说明原因</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">特别是一些会影响业务逻辑的代码，如果不加注释，定位问题的时候会非常的痛苦。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 21">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">5</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">不能随意修改公开方法的接口和内部的逻辑，如果必须修改，必须严格的说明原因和修改的地方，以及之前的逻辑,在eclipse中使用Open Call Hierarchy查看接口或类被那些地方调用。&nbsp;</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;异常重要的点，特别是逻辑修改了以后。</font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 22">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">测试</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 23">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">必须对全部的业务层的接口进行单元测试，包括领域逻辑层和控制层的代码</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 24">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’; mso-bidi-font-weight: bold"><font size="3">对方法的测试仅可能的达到逻辑语句覆盖<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">比如判断、分支、条件、异常、状态改变等等这类语句发生的地方需要测试覆盖</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 25">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">保证单元测试的有效性。<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">修改代码完成的第一件事情就是重新修改单元测试</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 26">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">完成的功能要进行自我的集成测试，使用各种数据和各种操作方式进行测试。</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">察看修改后的代码有没有对别的功能产生影响</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 27">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">接口设计</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 28">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">设计接口的时候，尽量保证接口内的代码逻辑单一<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">通常不应该在接口内处理太多的逻辑，如果一个接口过分臃肿，应该考虑重构。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 29">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">会发生各种情况的业务逻辑层接口尽量不要使用</span><span lang="EN-US"><font face="Times New Roman">void</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">作为接口的返回类型<font color="#ffffff">章士挺</font> </span></font></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">逻辑执行的情况千变万化，如果没有返回值，就无法在调用它的客户端代码中进行有效的处理，这将严重影响接口的可扩展性。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 30">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">必须完整的说明返回类别的意义，各种状态下的各种情况</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 31">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">一个接口如果执行中可能产生多种不同的情况，那么我们不能返回</span><span lang="EN-US"><font face="Times New Roman">boolean</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">来仅仅判断是否执行成功</span></font></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 32">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">5</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">如果对传入的值有特别的要求，需要在参数列表注释中明确的说明<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">通常，参数都需要简要的说明，比如参数可能在方法体内被改变，或者参数必须保持一定的格式，就需要很明确的说明。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 33">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">6</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">遵守异常处理的原则，明确是否需要抛出异常。并注释说明为什么要抛出异常。<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">一般情况下对于无法预知的情形或者发生错误的时候希望外部知道，系统应该抛出异常，对于理论上不应该发生的错误，抛出运行时异常。尽量定义自己的异常类，不抛出高层次的异常类。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 34">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568" colspan="3">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">类设计</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 35">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">1</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">职责明确化<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">每个类只做该做的事情，不要让一个类过分庞大，过分庞大的类造成阅读困难，维护困难。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 36">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">2</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">尽量使用接口隔离的模式，同时只暴露刚刚够用的接口到外部，使得遵守开闭原则。<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">面对接口编程，而不是实现编程。这样就可以有效的将依赖关系抽象到更高的层面。不同的底层细节对于客户端代码就没有必要知道了。特定的模块内如果需要使用其他模块的数据或者业务，坚决不能自己直接调用数据层进行硬编码，一定要协作，要求对方模块提供相应接口。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 37">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">3</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">面对很大的服务接口，尽量使用接口分离的原则，比较好的模式就是使用聚合。<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">可以让一个大的服务对象聚合多个接口来完成不同的类别的业务操作，这样就可以在修改了其中一些接口的时候不影响其他接口调用者的代码。</font></span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 38">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">4</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">只开放相对比较稳定的而且非得开放的接口<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">千万不要定义一堆</span><span lang="EN-US"><font face="Times New Roman">public</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’">的方法，而根本就没有让客户端使用的打算。尽量的简化客户端代码的操作。</span></font></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 39; mso-yfti-lastrow: yes">
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 32.4pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="43">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">5</font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 251.65pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="336">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: ’Times New Roman’; mso-hansi-font-family: ’Times New Roman’"><font size="3">工具类应该尽量多重载方法，而不是使用参数决定执行不同的代码，执行代码的多寡<font color="#ffffff">章士挺</font> </font></span></p>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #c0c0c0; PADDING-BOTTOM: 0cm; WIDTH: 142.05pt; BORDER-TOP-COLOR: #c0c0c0; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="189">
            <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;特别注意：工具类尽可能的给出接口示例，同时包括详尽注释，包括参数和参数格式、接口功能、异常处理、返回类型。</font></o:p></span></p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="Times New Roman" size="3">&nbsp;<font color="#ffffff">章士挺</font> </font></o:p></span></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1273751.html</guid>
<subject>技术文章</subject>
<author>zstzah</author>
<category>技术文章</category>
<pubDate>Tue, 18 Dec 2007 10:57:09 CST </pubDate>
</item>

<item>
<title>永劫回归－－逃避和重复</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1141217.html</link>
<description>
<![CDATA[如果说当开始的时候就是一种重复，那么结果是否又将是一次痛苦开始呢？人不能总是重复一种不能逃避的逃避！一种逃避的尝试永远都将重复这样一种尝试，起点其实就是终点，永劫回归!<br />这样一种两难的境地，不管结果怎么样，我始终愿意前进，阻力不是逼迫你重复逃避的理由，必须&ldquo;非如此不可&rdquo;才是战胜自己成为超人的条件。沉重的才是积极的，轻飘的快乐才是正真痛苦的根源。重复上演的永远将是轻飘的快乐，我们的痛苦不是偶而一次性的，他将重复，重复，再重复这样一种因为轻飘而带来的快乐而痛苦着。<br /><br />理解自己的痛苦比隐藏和掩饰更加的重要，在现在这样一个非常时刻，修复痛苦也许是一种非常大动干戈的开始，甚至我们都无法知道结果是不是又是一个失败的重复，但是我相信，往前走一步就是离开了起点一步......<br /><br />我同样的很茫然，茫然于激情是否是像<span class="center"><span class="center">大卫&middot;芬奇电影般的</span></span>暴力，宣泄了一种对平庸的抵抗，不想仅仅是为了获得空虚的快感，不想用某一种罪来杀死自己，也不想开枪打穿另一个自己在另一个世界对我的嘲笑。<br /><br />而事实上自我搏击的世界总是孤独的，因为我开始害怕......]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1141217.html</guid>
<subject></subject>
<author>zstzah</author>
<category></category>
<pubDate>Thu, 01 Nov 2007 17:44:33 CST </pubDate>
</item>

<item>
<title>建设团队责任感——这个世界由谁来决定？</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1079936.html</link>
<description>
<![CDATA[一件复杂和困难的事情如果是我自己决定要如何实施和控制各种项目要素，那么面对这样一个自己的决定，我必须用一种可以被承认的方式把复杂和困难的事情变的简单和容易控制。<br />问题是很多事情，我们每个团队的成员没有这样一种思维来对自己的事情有一个全局的把握，也没有清楚的认识到一个决定或者举动是否影响到了全局的控制。责任的多少取决于你可以决策一件事情的多少。在决策一件事情的时候，团队的成员总是很被动，被动的原因也许是他们缺少有效决策的能力，也许是我们更倾向于保守和中央决策的方式。<br />让你来决定每个重要的事情，让团队成员自己来判断下一步他们应该采取什么样的决定。即使是当风险无法控制的时候，我们依然给团队的成员选择的机会，哪怕是一个短暂的尝试，哪怕是一次不那么成功的小小决定。<br />依然我相信，这个世界由你来决定，由每个成员来决定。]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1079936.html</guid>
<subject>管理</subject>
<author>zstzah</author>
<category>管理</category>
<pubDate>Mon, 08 Oct 2007 13:11:49 CST </pubDate>
</item>

<item>
<title>9月上旬中旬－致中和许愿营销平台</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1038270.html</link>
<description>
<![CDATA[从设计的角度来看，这是一个比较完整的许愿平台。支持后续的更多许愿和可能带来的许多潜在需求，系统性能上从当前可以获得的资源角度来看已经是做了尽可能多的优化和取舍，不过因为历史的一些问题，可能并不能很好的解决性能问题。<br />不过主要是时间上的考虑，同时为了保持开发的敏捷性，放弃了更加深入的设计。现在想到可能无法很方便的嵌入到后期的企业博客应用中去。不过对于电子商务领域的需求，保持适当的敏捷和合适的可用性应该更加的合适。<br />整体上计划拖延一天半左右，控制的不是很好，原本打算提前一天我完成。<br />新人表现的非常的出色，完整和按照严格要求的完成了工作，这应该是这个项目最最成功的部分。]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/1038270.html</guid>
<subject>管理</subject>
<author>zstzah</author>
<category>管理</category>
<pubDate>Mon, 17 Sep 2007 16:07:52 CST </pubDate>
</item>

<item>
<title>质量控制笔记，8月第三周，主题：缺陷管理</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/977457.html</link>
<description>
<![CDATA[<p>准备阶段：</p>
<p>1、招纳优秀的测试人才；</p>
<p>2、统一进行bug递交的规范化管理；</p>
<p>3、培训各部门bug递交的有效性。</p>
<p>实施：</p>
<p>1、找到一个非常不错的bug管理软件，部署并且顺利的使用；</p>
<p>2、新招的测试FLY王很不错，做事情耐心细心；</p>
<p>3、我太缺乏管理经验，没有能很快的对她的工作进行一个有效和快速的安排；</p>
<p>总体来讲，这次缺陷管理的计划安排顺利，执行也顺利，各个部门和人配合积极，感谢同志们对技术部的支持。</p>
<p>总结：</p>
<p>敏捷方式的第二个实践点顺利部署，现在就开始要对缺陷管理进行更加细化的工作安排，找到问题，并且使得缺陷管理更加有效和规范。</p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/977457.html</guid>
<subject></subject>
<author>zstzah</author>
<category></category>
<pubDate>Thu, 23 Aug 2007 10:12:42 CST </pubDate>
</item>

</channel>
</rss>