﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客- i have only belief--wjw-随笔分类-系统分析</title><link>http://www.cnitblog.com/wjw/category/3791.html</link><description>             生活是精彩还是黑暗，完全取决于自己-------I  BELIEF。</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 20:19:54 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 20:19:54 GMT</pubDate><ttl>60</ttl><item><title>如何制作商业计划书 </title><link>http://www.cnitblog.com/wjw/archive/2006/08/29/16137.html</link><dc:creator>i have only belief</dc:creator><author>i have only belief</author><pubDate>Tue, 29 Aug 2006 10:49:00 GMT</pubDate><guid>http://www.cnitblog.com/wjw/archive/2006/08/29/16137.html</guid><wfw:comment>http://www.cnitblog.com/wjw/comments/16137.html</wfw:comment><comments>http://www.cnitblog.com/wjw/archive/2006/08/29/16137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjw/comments/commentRss/16137.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjw/services/trackbacks/16137.html</trackback:ping><description><![CDATA[
		<table cellspacing="1" cellpadding="0" width="730" align="center" bgcolor="#000000" border="0">
				<tbody>
						<tr>
								<td bgcolor="#ffffff">
										<table cellspacing="0" cellpadding="0" width="50%" align="center" border="0">
												<tbody>
														<tr>
																<td>
																		<img height="10" alt="" src="" width="1" name="" />
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
												<tbody>
														<tr>
																<td valign="top" align="left">
																		<table class="textwhite" cellspacing="0" cellpadding="0" width="100%" bgcolor="#2f6ebd" border="0">
																				<tbody>
																						<tr>
																								<td height="28">
																								</td>
																								<td align="right">
																										<b>全文搜索:<b><input id="NAME22" style="BORDER-RIGHT: #c6c6c6 1px solid; BORDER-TOP: #c6c6c6 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #c6c6c6 1px solid; COLOR: #666666; BORDER-BOTTOM: #c6c6c6 1px solid; FONT-FAMILY: '宋体','Helvetica', 'sans-serif'; BACKGROUND-COLOR: #f8f8f8" size="15" name="NAME22" /></b><span class="featureSectionCell2"><input style="BORDER-RIGHT: #c6c6c6 1px solid; BORDER-TOP: #c6c6c6 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #c6c6c6 1px solid; COLOR: #666666; BORDER-BOTTOM: #c6c6c6 1px solid; FONT-FAMILY: '宋体','Arial', 'Helvetica', 'sans-serif'; BACKGROUND-COLOR: #f8f8f8" type="submit" value=" 搜索 " name="Submit22" />    </span></b>
																								</td>
																						</tr>
																				</tbody>
																		</table>
																		<table cellspacing="0" cellpadding="0" width="50%" align="center" border="0">
																				<tbody>
																						<tr>
																								<td>
																										<img height="10" alt="" src="" width="1" name="" />
																								</td>
																						</tr>
																				</tbody>
																		</table>
																		<table cellspacing="0" cellpadding="5" width="97%" border="0">
																				<p>
																				</p>
																				<tbody>
																						<tr>
																								<td class="textblack">
																										<b>
																												<br />
																												<b>
																														<span class="style1">如何制作商业计划书</span>
																												</b>
																												<br />
																										</b>
																								</td>
																						</tr>
																						<tr>
																								<td class="textblack">
																								</td>
																						</tr>
																						<!-- BEGIN:STORY -->
																						<tr>
																								<td class="textblack">
																										<p>通过商业计划书，我们有可能说服投资人，且能让执行者看到实施措施。因此，需要有一整套结构，才能理清商业计划书的要点。 </p>
																										<table cellspacing="0" cellpadding="0" width="0" align="right" border="0">
																												<tbody>
																														<tr>
																																<td align="middle">
																																		<img src="http://www.zdnet.com.cn/ads/image/advertisement_e1.gif" />
																																</td>
																														</tr>
																														<tr>
																																<td>
																																		<!--start banner ad-->
																																		<!--ba-->
																																		<script language="JavaScript1.1" src="http://ad.cn.doubleclick.net/adj/messagingplus.zdnet.com.cn/techupdate/career/strategy;sz=1x1;ord=902336125?">
																																		</script>
																																		<noscript>
																																				<a href="http://ad.cn.doubleclick.net/jump/messagingplus.zdnet.com.cn/techupdate/career/strategy;sz=1x1;ord=902336125?">
																																						<img src="http://ad.cn.doubleclick.net/ad/messagingplus.zdnet.com.cn/techupdate/career/strategy;sz=1x1;ord=902336125?" border="0" />
																																				</a>
																																		</noscript>
																																		<!--end banner ad-->
																																</td>
																														</tr>
																												</tbody>
																										</table>
																										<p>本文所介绍的结构罗列了商业计划书最有可能提到的问题，请视情况择取对你有用的部分。在动手写计划书时，加以灵活运用。 </p>
																										<p>着手准备一份商业计划书时，通常情况下人们会首先收集他人已有的资料，然后在关键的问题上加入自己的资料，最后，是不可或缺的实地调查。 </p>
																										<p>
																												<span class="mdeck">
																														<b>商业计划书的结构</b>
																												</span>
																												<br />所有的商业计划书都应该从“摘要”开始，紧接着是产品理念，其他的部分就可视情况而定了。总之，你要选择最好的表达方式来证明此计划可以成功。 </p>
																										<p>商业计划书的结构包括以下这些： </p>
																										<p>摘要<br />产品及经营理念<br />市场机会<br />竞争分析<br />个人经历和技能<br />市场导入策略<br />市场发展措施、所需技术及设备<br />市场增长计划<br />市场退出策略<br />法律法规<br />资源配备<br />资金计划<br />近期规划 </p>
																										<p>
																												<b>前提部分</b>
																												<br />摘要如非特殊情况，不能超过一页。它的作用是简要阐述产品理念，但要注意，一定要非常简洁。要尽量使用*号来分列观点，而不用名字或段落来展开。越是扼要的观点，就越容易被理解与记住。 </p>
																										<p>同时，摘要是商业计划书中最重要的一部分。很多人通常在读完这一页就做出决定，而不费神去读后面更详细的东西。 </p>
																										<p>
																												<b>主体部分</b>
																												<br />商业计划的这一部分包括一系列可能要回答的问题。首先，你要检查每类问题，看看各类问题之间是否有关联性，是否存在明显的跳跃。很多情况下，一类问题只需稍作思考，用一句话就可表达清楚。检查每类问题时都可以遵循这样的顺序：信息量是否足够－是否需要进一步考虑－是否现实可行。以下将逐一阐述主体的各个部分。 </p>
																										<p>
																												<b>一、产品及经营理念</b>
																												<br />。这部分主要让读者清晰地看到你要进入的领域、所经营的产品，以及在整个商业背景下，该产品的定位。总的说来，它要回答若干个“为什么”。 </p>
																										<p>要点如下： </p>
																										<p>大致描述一下该产品； </p>
																										<p>指出要进入的领域； </p>
																										<p>满足顾客的什么需求； </p>
																										<p>顾客为什么有这些需求。 </p>
																										<p>公司是否有资源对该产品进行研发、推广、销售或物流运用？如果没有，如何才能有效地得到这些资源？ </p>
																										<p>如何把产品及其优势告诉潜在的用户？它有可能被视作珍品或易用的东西吗？ </p>
																										<p>与对手或其他能满足用户需求的东西比，该产品有何竞争优势：是技术优势、还是独特的定位？ </p>
																										<p>如何保持这种竞争优势，是否通过技术专利或排除其他竞争障碍； </p>
																										<p>至今为止，你在该领域的工作经验：与潜在客户沟通的本质和程度、是否了解他们对产品的看法； </p>
																										<p>其他可能存在的机会：是否能与已有业务共享设备及渠道。 </p>
																										<p>
																												<b>二、市场机会</b>
																												<br />这部分将回答产品有什么市场机会。即：有什么机会，机会有多大？它的生命周期是什么？ </p>
																										<p>1、如何评估产品（或服务）的市场前景： </p>
																										<p>（a） 描绘市场发展趋势，并分析；（b） 估计市场增长率，并分析。 </p>
																										<p>2、在既定的竞争态势和用户需求条件下，该产品能占多大的市场份额？ </p>
																										<p>此市场份额能为公司带来多少利润？ </p>
																										<p>3、你有何优势及资源给公司带来较明显的赢利？ </p>
																										<p>4、这个市场是否真有活力，它发展得快吗，前景广泛吗，是否有下降的趋势？ </p>
																										<p>5、该产品的生命周期是多长？ </p>
																										<p>在产品的既定生命周期内，如何有步骤地进行市场运作？ </p>
																										<p>如何打开市场缺口？ </p>
																										<p>6、产品（或服务）是否有扩展性，以便扩大市场前景，延长生命周期？ </p>
																										<p>7、能否通过技术、定位或细分市场，来挖掘非同一般的市场机会？ </p>
																										<p>8、进入市场难易程度如何？ </p>
																										<p>9、最关键的是：通过与顾客接触、访谈、实验或其他方法，收集销售信息及用户反馈。 </p>
																										<p>
																												<b>三、竞争分析</b>
																												<br />这部分主要让读者知道，此商业计划建立在现实的基础之上，因为它表明了计划成功的阻碍，并设计了克服它的方法。它实质上要回答这样一些问题：在业已存在的竞争环境中，该计划是否会泡汤；如果它成功地创造了一个市场，能否在这个市场中持久发展。千万要记住，有时候表面上看来没有明显的竞争，潜在的竞争其实是非常可怕的。 </p>
																										<p>既然存在竞争，就要指出竞争对手有多少，他们在这个领域里的地位。 </p>
																										<p>1、 直接竞争对手 </p>
																										<p>他们占有的市场份额；他们的优势与弱势；广告与促销；对新进入者可能采取的阻击措施。 </p>
																										<p>2、 间接竞争对手 </p>
																										<p>市场可能出现的追随者； </p>
																										<p>相关领域的合作者。 </p>
																										<p>3、 如何对产品进行差异化定位：与竞争对手有何不同、有何特点和优势、卖点是什么？ </p>
																										<p>4、 在提炼竞争性卖点时，能否进一步发展，使用户更明显的感知它的好处？ </p>
																										<p>5、 在满足用户的需求方面，有什么可替代产品？ </p>
																										<p>6、 与直接竞争对手或可替代产品相比，在价格上是否有优势？ </p>
																										<p>
																												<b>四、个人经历与技能</b>
																												<br />这部分主要告诉读者，你是否有能力使该业务获得成功。即：你能给新业务带来什么？ </p>
																										<p>1、 该产品与你的技能、过去的经历有何关系； </p>
																										<p>2、 你的团队对新业务有何助益； </p>
																										<p>界定新业务与旧业务是否存在竞争关系。如果新计划是为了拓展已有的业务，那么这部分将包括如何利用原有的条件使新业务获得成功。同时，这部分也应该包括新产品可能给旧产品带来的冲击，即：如果新业务取得成功，它会给旧业务带来不利影响吗？ </p>
																										<p>1、 描述新产品对旧产品战略及定位的影响； </p>
																										<p>2、 新产品与旧产品在几个方面是互补还是产生其他作用：如资产、渠道、人力资源、服务、产品、客户资源等； </p>
																										<p>如果以上几个方面对新业务至关重要，且对旧业务不产生负面影响的话，这部分还应该说清楚你将如何去发这些方面。 </p>
																										<p>
																												<b>五、市场导入策略</b>
																												<br />这部分将说明如何启动新计划。即：我们如何在市场上吸引首批客户？ </p>
																										<p>1、产品生产出来后，你将如何把它导入市场？以最快、最省钱、最小风险同时又能阻击对手的方式。 </p>
																										<p>3、 此阶段如何制定渠道政策、广告及促销方案？ </p>
																										<p>描述产品定位、对此定位时行可行性测试； </p>
																										<p>让客户在何时何地以何种方式获得产品信息？ </p>
																										<p>向客户传递什么信息？ </p>
																										<p>如何达到传播目标：引起受众趣味，刺激受众需求，还是细分受众群？ </p>
																										<p>4、 在产品导入阶段使用什么营销手段？这些手段如何实施？ </p>
																										<p>广告还是彩页？广播还是电视？ </p>
																										<p>区域宣传如何定位？ </p>
																										<p>宣传频次？ </p>
																										<p>试点计划如何开展？ </p>
																										<p>如何开展竞争性宣传？直邮效果如何？ </p>
																										<p>如何上广告黄页条目索引？ </p>
																										<p>电话营销方式； </p>
																										<p>培训计划； </p>
																										<p>促销活动； </p>
																										<p>商品秀； </p>
																										<p>研讨会； </p>
																										<p>公共关系； </p>
																										<p>媒体沟通； </p>
																										<p>新闻发布会； </p>
																										<p>行业关系建立； </p>
																										<p>细分市场、细分客户。 </p>
																										<p>
																												<b>六、市场发展措施、所需技术及其他设施</b>
																												<br />这部分表明落实计划所需要的技术及其他设施。 </p>
																										<p>1、 技术问题：描述产品所需要的技术。 </p>
																										<p>技术条件是否具备 </p>
																										<p>内部具备还是从供应商或合作伙伴处获得 </p>
																										<p>2、 渠道及客户关系： </p>
																										<p>渠道有哪些？渠道系统有何创新之处？ </p>
																										<p>销售队伍需要什么培训、物质刺激及其他支持？ </p>
																										<p>3、 招募销售队伍： </p>
																										<p>确定所需人员的资历、技能；薪酬；其他的激励手段；报销政策；队伍管理方法；他们可能扮演的角色：中间人、厂商代表及代理。 </p>
																										<p>4、 设施及行政： </p>
																										<p>办公用品清单；如果业务是全新的，基础设施清单； </p>
																										<p>如何支付这些清单； </p>
																										<p>采购或与供应商打交道时是否有特殊需求？ </p>
																										<p>5、 分销渠道： </p>
																										<p>用户在哪里能买到产品？产品如何才能到达用户手中？每年渠道流失率是多少？产品在途时间是多少？什么运输方式最经济？ <b>七、市场增长计划</b><br />这部分将表现如何使该业务持续发展。即：我们怎么做才可以不断获得增长，在市场中占有一席之地？ </p>
																										<p>1、 一旦进放市场，如何在一定的市场份额内，谋求最大的发展机会及最大的利润？ </p>
																										<p>2、 是否有潜在的机遇能给此业务带来新的增长点？如果有，如何将它变成现实？ </p>
																										<p>3、 为了获得持续发展，目标用户在哪里？ </p>
																										<p>4、 如何获得地域性扩张？什么时候开始？ </p>
																										<p>5、 市场导入期所利用的营销手段中，哪些还会在持续发展阶段使用？这些手段在质与量上会有什么突破？ </p>
																										<p>6、 是否有别的方法可助于持续增长？资金还是人力？ </p>
																										<p>
																												<b>八、市场退出策略</b>
																												<br />这部分是为了表明：一切都在我们的把握之中。它可以回答这样的问题：万一我们的计划失败，出现了我们不愿看到的局面以致于需要退出市场，我们也会尽量减少损失，不至于血本无归或名声扫地。 </p>
																										<p>1、 摆明你如何将损失最小化：如何处理积压品、已采购配件、已搭建的基础设施、已雇佣的员工。 </p>
																										<p>2、 如何最大限度地减少对公司形象及声誉的影响； </p>
																										<p>
																												<b>九、法律法规</b>
																												<br />这部分将关注：新业务是否在法律许可的范围内开展？ </p>
																										<p>我们的产品是否合法？在这个领域是否存在相关的规定？如果有，规定上有何限制？我们能否绕过这些限制？即使能，这个努力是否值得？ </p>
																										<p>政府对此类产品有何倾向？ </p>
																										<p>
																												<b>十、资源（人力及技术）配备</b>
																												<br />这部分回答开展新业务所需要的资源。即：我们在资源配备上要有多大的投入，如何得到这些资源。 </p>
																										<p>近期需要哪些人力资源？最终需求又怎样？ </p>
																										<p>谁将参与到新业务中来？他们的背景及资历如何？ </p>
																										<p>在市场导入及发展期各需要什么资源？ </p>
																										<p>需要什么技术资源？什么时候需要？ </p>
																										<p>开展此业务需要用到什么具体的技能？ </p>
																										<p>
																												<b>十一、资金计划</b>
																												<br />这部分将清晰说明新业务所需要的资金投入。它要回答这些问题：我们什么时候筹资？到底 需要多少钱？钱不够怎么办？什么时候还贷款，以什么方式？ </p>
																										<p>1、定价： </p>
																										<p>竞争对手如何定价；你如何定价；价格多长时间变更一次；竞争对手可能的反应（是否有可能导致价格战，是否能忍受价格战？） </p>
																										<p>2、 销售预测： </p>
																										<p>你打算卖多少； </p>
																										<p>增长速度； </p>
																										<p>最坏的情况； </p>
																										<p>类似的竞争故事； </p>
																										<p>市场份额定位。 </p>
																										<p>3、 资金： </p>
																										<p>需要多少资金，什么时候需要？ </p>
																										<p>计划开展所需费用的详细情况；利润预算；现金流。 </p>
																										<p>
																												<b>十二、近期规划</b>
																												<br />这部分关注：贷款获批后，接下来的几个月将做什么。 </p>
																										<p>1、 如果计划通过，贷款获得批准，未来90天内你将做什么？ </p>
																										<p>2、 为实施计划，近期需要什么资源、需要做什么决策？(</p>
																								</td>
																						</tr>
																						<p>
																						</p>
																				</tbody>
																		</table>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/wjw/aggbug/16137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjw/" target="_blank">i have only belief</a> 2006-08-29 18:49 <a href="http://www.cnitblog.com/wjw/archive/2006/08/29/16137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Delphi的Query控件使用（Open和ExecSQL方法的区别）</title><link>http://www.cnitblog.com/wjw/archive/2006/06/04/11539.html</link><dc:creator>i have only belief</dc:creator><author>i have only belief</author><pubDate>Sun, 04 Jun 2006 05:20:00 GMT</pubDate><guid>http://www.cnitblog.com/wjw/archive/2006/06/04/11539.html</guid><wfw:comment>http://www.cnitblog.com/wjw/comments/11539.html</wfw:comment><comments>http://www.cnitblog.com/wjw/archive/2006/06/04/11539.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjw/comments/commentRss/11539.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjw/services/trackbacks/11539.html</trackback:ping><description><![CDATA[
		<div align="justify">
				<table class="tableborder" style="BORDER-TOP: medium none; MARGIN-TOP: -1px; BORDER-BOTTOM: medium none" cellspacing="1" cellpadding="4" width="99%" align="center">
						<tbody>
								<tr class="altbg1" height="100%">
										<td style="WORD-BREAK: break-all" valign="top" width="21%">
										</td>
										<td valign="top" width="79%">
												<table style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
														<tbody>
																<tr>
																		<td valign="top">
																				<a href="http://www.51xbc.net.cn/bbs/misc.php?action=viewratings&amp;tid=425&amp;pid=1041" name="pid1041" alt="查看评分记录">
																				</a>
																				<strong>
																						<span class="smalltxt">
																								<span class="bold">Delphi的Query控件使用</span>
																						</span>
																						<br />
																						<br />
																				</strong>
																				<span style="FONT-SIZE: 12px">Delphi的Query控件<br /><br />第一点是：区分好Query控件的Open方法和ExecSQL方法。这两个方法都可以实现执行SQL语句，但要根据不同情况分别使用。如果这条SQL语句将返回一个结果集，必须使用Open方法，如果不返回一个结果集，则要使用ExecSQL方法。例如：<br /><br />  ……<br /><br />  Query1:Tquery<br /><br />  Query2:Tquery<br /><br />  ……<br /><br />  Query1.Close;<br /><br />  Query1.SQL.Clear;<br /><br />  Query1.SQL.Add('select * from AA');<br /><br />  Query1.Open;<br /><br />  ……<br /><br />  Query2.Close;<br /><br />  Query2.SQL.Clear;<br /><br />  Query2.SQL.Add('delete AA');<br /><br />  Query2.ExecSQL;<br /><br />  ……<br /><br />  上述的例子中，Query1所执行的SQL语句将返回一个结果集，因此必须用Open方法；而Query2所执行的是一条删除表记录语句，不返回结果集，因此用ExecSQL方法。<br /><br />  第二点是：如果Query控件用Open方法执行SQL语句，并且所用的SQL语句访问的是一张或几张频繁使用的表，在执行完SQL语句后，一定要调用SQL的FetchAll方法，能大大地减少死锁发生的概率。例如：<br /><br />  ……<br /><br />  Query1:Tquery<br /><br />  ……<br /><br />  Query1.Close;<br /><br />  Query1.SQL.Clear;<br /><br />  Query1.SQL.Add('select * from AA');<br /><br />  Query1.Open;<br /><br />  Query1.FetchAll;<br /><br />  ……<br /><br />在上述的例子中，如果AA是一张被频繁访问的表，在对这个表执行这一条select语句的同时，如果恰好有其他人对这张表执行删除或更新操作，便有可能发生死锁。Query1.FetchAll这条语句实现的功能是释放加在表AA上的锁，这样死锁的发生概率可以大大减少。避免死锁，对我们将来进行大型数据库开发尤为重要</span>
																		</td>
																</tr>
														</tbody>
												</table>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
<img src ="http://www.cnitblog.com/wjw/aggbug/11539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjw/" target="_blank">i have only belief</a> 2006-06-04 13:20 <a href="http://www.cnitblog.com/wjw/archive/2006/06/04/11539.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一名Delphi程序员的开发习惯(转)</title><link>http://www.cnitblog.com/wjw/archive/2006/06/04/11538.html</link><dc:creator>i have only belief</dc:creator><author>i have only belief</author><pubDate>Sun, 04 Jun 2006 05:16:00 GMT</pubDate><guid>http://www.cnitblog.com/wjw/archive/2006/06/04/11538.html</guid><wfw:comment>http://www.cnitblog.com/wjw/comments/11538.html</wfw:comment><comments>http://www.cnitblog.com/wjw/archive/2006/06/04/11538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjw/comments/commentRss/11538.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjw/services/trackbacks/11538.html</trackback:ping><description><![CDATA[
		<table class="tableborder" style="BORDER-TOP: medium none; MARGIN-TOP: -1px; BORDER-BOTTOM: medium none" cellspacing="1" cellpadding="4" width="99%" align="center">
				<tbody>
						<tr class="altbg1" height="100%">
								<td style="WORD-BREAK: break-all" valign="top" width="21%">
								</td>
								<td valign="top" width="79%">
										<table style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td valign="top">
																		<a href="http://www.51xbc.net.cn/bbs/misc.php?action=viewratings&amp;tid=149&amp;pid=299" name="pid299" alt="查看评分记录">
																		</a>
																		<span style="FONT-SIZE: 12px">         有关开发习惯的一些想法，如鲠在喉，不吐不快。究其发贴动机，当然不排除有骗取参与分的可能，但另一方面，也希望能给同行（念Xing）者提供一些建议，或者参考(希望不是误人子弟)。同时，也希望各位能够就我的这些陋习，发表一点看法，给出批评和指正的意见。谢谢。 <br />一．建立工程目录 <br />       首先，第一步要做的，当然是给新项目建一个单独的目录（别笑）。目录名称与项目名称同名，或者另取一个也可，只要清楚、简练。然后，在此目录中创建以下各个目录： <br />       &lt;Doc&gt;：用来存放该项目相关的开发文档（需求说明，概要设计，详细设计等等等等）； <br />       &lt;Source&gt;：用来存放Delphi源程序中的”.Dpr”,”.Pas”,”.Dfm”等文件； <br />       &lt;Dcu&gt;：该目录中存放”.Dcu”文件，将’.Pas’与’.Dcu’文件分开存放只是为了让Source目录的内容更加清楚一些； <br />       &lt;Bin&gt;：存放工程的输出文件，比如”.Exe”,”.Dll”或者”.Ocx”等等； <br />       &lt;Log&gt;：用来存放日志文件；通常在这个目录中我会放一个”&lt;项目名称&gt;程序员日志.Txt”文件。 <br />       &lt;Images&gt;：当然是存放工程中用到的图片的目录了。一般情况下，这个目录是少不了的。假如还用到其他资源，那么也一样建立各自的目录，比如Wav，比如Avi等等。 <br /><br />二．设置工程选项 <br />在Delphi中创建一个新的工程，将此工程保存到Source目录中，同时： <br />a.       选一个耐看的，与项目有些联系的图标作为这个工程的图标。当然，这个图标可能只是临时用用的，但是总要比Delphi默认的那个难看的要好才行，要不然，怎么对得起自己？ <br />b.       将Project Options -&gt; Directories/Conditionals页面中的Output Directory设置为Bin目录； <br />c.       将Unit output Directory设置为Dcu目录。 <br /><br />三．添加常量单元 <br />       添加一个新的Unit，另存为“unt&lt;工程名&gt; Consts.Pas”，用来保存工程中用到的常量。 <br /><br />四．有关窗体（Form）及单元(Unit)  <br />按照匈牙利命名法则给Form命名，则一个用来登录的窗体可以命名为’FrmLogin’，而其单元名可以为’untLogin’。通常，两个对应的Form和Unit的名称在除去’Frm’或’unt’的缩写后应当保持一致。 <br />在Unit的头部添加本单元的注释，注释的格式可以参照Delphi的源码，但是至少应当包含以下几项：功能描述；作者；版权；创建时间；最后修改时间；修改历史等等。 <br />将新创建好的Form的Caption设置为该Form类的名称，而不是使用Delphi默认的。比如，将Form1更名为FrmLogin后，此时我们获得了TFrmLogin这个新的窗体类，并且Delphi自动将窗体的Caption更新为’FrmLogin’。依我看，该Caption应当为’TFrmLogin’才是，因为我们在设计的是一个窗体类TFrmLogin，而不是仅仅对FrmLogin进行操作。 <br />向TFrmLogin这样功能明确的窗体类，许多人都有在设计期就将其Caption设置为诸如“操作员登录”这种名称的习惯。我的习惯是，象“操作员登录”这样的常量，通常存放在unt&lt;工程名&gt;Consts.Pas中，用ResourceString来定义，或者用Const来定义。至于窗体的Caption的命名，应当属于运行期的工作。所以，我往往在TForm.OnCreate事件触发之时才对Caption进行操作，比如： <br />procedure TFrmLogin.FormCreate(Sender: TObject); <br />begin <br />       Caption := csLoginTitle; <br />      .... <br />end; <br /><br />五．关于Format函数的使用 <br />       有iYear，iMonth，iDay三个数据，要显示诸如“生日：1976/3/18”这样的信息，你通常怎么做？使用s := ‘生日:’+IntToStr(iYear)+’.’+IntToStr(iMonth)+’.’+IntToStr(iDay); 吗？这样实在是太累了。我的习惯是，在unt&lt;工程名&gt;Consts.Pas中增加一个常量csBirthDayFormat = ‘生日：%d/%d/%d’来保存显示格式，然后使用s := Format(csBirthDayFormat, [iYear, iMonth, iDay])；这样的语句完成数据的拼装。这么做的好处显而易见，那就是你只需在一个地方维护数据的显示格式。 <br />       Format函数功能强大，我对它很是推崇，你呢？ <br /><br />六．关于注册表或者Ini文件的存储 <br />原先访问注册表我通常使用TRegistry，而访问Ini文件通常使用TIniFile。这两个类的使用方法各不相同，因此想要使用相同的代码既能访问注册表又能访问Ini文件几乎是不可能的。真头疼啊！ <br />终于我发现了救星!那就是TRegistryIniFile类。查看Registry单元，我们发现，TRegistryIniFile继承自TCusomIniFile。而TIniFile也是继承于TCusomIniFile。因此，使用抽象类TCusomIniFile来实现对注册表或者Ini文件的访问便是一举两得了。比如： <br />var <br />  csmIniFile: TCusomIniFile; <br />begin <br />  if blUseIniFile then//如果使用Ini文件 <br />    csmIniFile:= TIniFile.Create(csRootKey) <br />  else <br />    csmIniFile:= TRegistryIniFile.Create(csRootKey); <br />  //接着就可以使用csmIniFile对Ini文件进行访问， <br />//或者用类似访问Ini文件的方式访问注册表。 <br /><br />七．关于TStream流以及TFileStream，TMemoryStream等等 <br />       TFileStream和TMemoryStream都继承自抽象类TStream，这意味着我们可以使用一套代码完成对文件和内存的存取操作。因此，定义一些接口的时候，我往往倾向于将参数的类型定义为抽象类，而不是具体类。比如，要完成保存功能的一个函数，定义成 <br />function Save(AStream: TStream): Boolean； <br />就比定义成 <br />function Save(AStream: TFileStream): Boolean； <br />要灵活的多。 <br />前一个定义是具有前瞻性的，因为它可以适用于以后可能出现的新型态的流。而后一个定义只适用于TFileStream这种流（当然包括TFileStream的子类），呆板多了。 <br />我的习惯：如果存在抽象类，那么尽量将参数定义为抽象类的类型，毕竟，我们无法预见未来。 <br /><br />八．多使用TAction <br />       Delphi 4以后引入了Action的概念，并且在Standard组件栏中增加TActionList组件。使用Action的好处是，控件状态同步的烦恼从此一扫而空！</span>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/wjw/aggbug/11538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjw/" target="_blank">i have only belief</a> 2006-06-04 13:16 <a href="http://www.cnitblog.com/wjw/archive/2006/06/04/11538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>管理信息系统B/S结构相关知识</title><link>http://www.cnitblog.com/wjw/archive/2006/05/18/10692.html</link><dc:creator>i have only belief</dc:creator><author>i have only belief</author><pubDate>Thu, 18 May 2006 04:33:00 GMT</pubDate><guid>http://www.cnitblog.com/wjw/archive/2006/05/18/10692.html</guid><wfw:comment>http://www.cnitblog.com/wjw/comments/10692.html</wfw:comment><comments>http://www.cnitblog.com/wjw/archive/2006/05/18/10692.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjw/comments/commentRss/10692.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjw/services/trackbacks/10692.html</trackback:ping><description><![CDATA[
		<span class="bt">B/S结构 <br /><br /><br />　　B/S结构，即Browser/Server(浏览器/服务器)结构，是随着Internet技术的兴起，对C/S结构的一种变化或者改进的结构。在这种结构下，用户界面完全通过WWW浏览器实现，一部分事务逻辑在前端实现，但是主要事务逻辑在服务器端实现，形成所谓3-tier结构。B/S结构，主要是利用了不断成熟的WWW浏览器技术，结合浏览器的多种NULL语言(VBNULL、JavaNULL…)和ActiveX技术，用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能，并节约了开发成本，是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部，这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。 <br /><br />　　B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网（VPN）。前者的特点是安全、快捷、准确。后者则具有节省投资、跨地域广的优点。须视企业规模和地理分布确定。企业内部通过防火墙接入Internet，再整个网络采用TCP/IP协议。网络结构如图6所示： <br /><br /><br /><br />C/S 与 B/S 区别： <br />　　Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的. <br />１．硬件环境不同: <br />　　C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. <br />　　B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行 <br />２．对安全要求不同 <br />　　C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息. <br />　　B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群. <br />３．对程序架构不同 <br />　　C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑. <br />　　B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟. <br />４．软件重用不同 <br />　　C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好. <br />　　B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子 <br />５．系统维护不同 <br />系统维护是软件生存周期中,开销大, -------重要 <br />　　C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统 <br />　　B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. <br />６．处理问题不同 <br />　　C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统 <br />　　B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小. <br />７．用户接口不同 <br />　　C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高 <br />　　B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本. <br />８．信息流不同 <br />　　C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低 <br />　　B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心 </span>
<img src ="http://www.cnitblog.com/wjw/aggbug/10692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjw/" target="_blank">i have only belief</a> 2006-05-18 12:33 <a href="http://www.cnitblog.com/wjw/archive/2006/05/18/10692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>