📄 1.0 服务(service)开发的纪律.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0064)http://www.acejoy.com/Html/Article/network/4720061008125706.html -->
<!--ace website head--><HTML><HEAD><TITLE>Windows2000 服务器端应用程序开发设计指南-服务(Service)开发的纪律[ACE开发者-专注网络编程开发]</TITLE>
<META
content="Windows2000 服务器端应用程序开发设计指南-服务(Service)开发的纪律,Windows2000,服务器端,应用程序,开发,设计指南,服务,Service,Scalability,可伸缩性,ACE,编程,开发,程序员指南,VC,C++,网络编程,学习,入门,笔记,ICE,TAO,ACE框架,ACE开发论坛,高性能,服务器,服务器端,后台程序,中间件,网游,Server,IOCP,EPOLL,完成端口,设计模式,异步,socket,windows,linux,unix,Reactor,Proactor,日志,定时器,Thread,线程池,主动对象,ACE_Streams,ACE_Module,Configurator,ACE_Task,ACE_Message_Queue,ACE_Proactor,ACE_Reactor,ACE_Process,消息队列,命名服务,并发,同步,互斥,事件,面向对象,P2P"
name=keywords>
<META
content="Windows2000 服务器端应用程序开发设计指南-服务(Service)开发的纪律[我们都承认一个好的程序设计需要拥有许多能力。适当的执行错误检查、预先考虑系统上的可用资源以及预估来自不同使用者之所有可能输入情形-这就是程序可视为一种艺术形式工作的原因。编写服务必须完全精通这种艺术形式。就应用程序软件而言,忘了处理其细微差别的部份并不会造成很大的问题;因为这些疏忽通常只会影响到]"
name=description>
<META content=TRUE name=MSSmartTagsPreventParsing>
<META http-equiv=Content-Language content=zh-CN>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=MSThemeCompatible content=Yes><LINK title=""
href="http://www.acejoy.com/RssFeed.Asp?ChannelID=1" type=application/rss+xml
rel=alternate><LINK href="1. 服务(Service)开发的纪律.files/Css2.css" type=text/css
rel=stylesheet>
<SCRIPT language=JavaScript src="1. 服务(Service)开发的纪律.files/stm31.js"></SCRIPT>
<SCRIPT language=JavaScript src="1. 服务(Service)开发的纪律.files/Font.js"></SCRIPT>
<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY>
<DIV class=twidth4>
<DIV class=twidth3>
<DIV class=twidth2>
<DIV class=twidth1>
<DIV class=twidth>
<TABLE id=sitehead cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m>
<TABLE width="100%" align=center>
<TBODY>
<TR>
<TD align=middle width=200><A title=ACE开发者
href="http://www.acejoy.com/"><IMG height=60 alt=""
src="1. 服务(Service)开发的纪律.files/logo.gif" width=180 border=0></A></TD>
<TD align=middle><A href="http://shop34292573.taobao.com/"
target=_blank><IMG height=60 alt=贝贝花花包包店,精品555皮具,钱夹,皮夹
src="1. 服务(Service)开发的纪律.files/bao.gif" width=486 border=0></A>
<DIV align=center><BR></DIV></TD>
<TD style="LINE-HEIGHT: 120%" align=middle width=100><A
onclick='this.style.behavior="url(#default#homepage)";this.setHomePage("http://www.acejoy.com");'
href="http://www.acejoy.com/Html/Article/network/4720061008125706.html#">设为首页</A><BR><A
href='javascript:window.external.addFavorite("http://www.acejoy.com","ACE开发者")'>加入收藏</A><BR></TD></TR></TBODY></TABLE></TD>
<TD class=r></TD></TR></TBODY></TABLE>
<TABLE id=navbar cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m><A class=ochannel title=ACE网络编程开发论坛,专注网络软件的开发!
href="http://www.acejoy.com/Index.asp">首页</A><!-- 频道名称分隔 --> <IMG
src="1. 服务(Service)开发的纪律.files/navbar_separator.gif" align=absMiddle
border=0> <A class=nchannel title=关于网络开发的文章,涉及ACE的编程使用开发
href="http://www.acejoy.com/Article/Index.asp">文章</A><!-- 频道名称分隔 --> <IMG
src="1. 服务(Service)开发的纪律.files/navbar_separator.gif" align=absMiddle
border=0> <A class=ochannel title=资源,源码,软件,开发书籍,下载
href="http://www.acejoy.com/Soft/Index.asp">资料</A><!-- 频道名称分隔 --> <IMG
src="1. 服务(Service)开发的纪律.files/navbar_separator.gif" align=absMiddle
border=0> <A class=ochannel title=专注网络软件开发,ACE的使用,跨平台应用
href="http://www.acejoy.com/bbs/index.asp" target=_blank>论坛</A></TD>
<TD class=r></TD></TR></TBODY></TABLE>
<TABLE id=navsub cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"> 位置: <A
href="http://www.acejoy.com/">ACE开发者</A> >> <A
href="http://www.acejoy.com/Article">文章</A> >> <A
href="http://www.acejoy.com/Html/Article/network/5_Index.html">网络编程</A>
>> 正文</TD>
<TD class=r></TD></TR></TBODY></TABLE><!--网站头部结束--><!--acejoy.com栏目部分--><!--
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="1" align="left" bgcolor="#F0F0F0"></td>
</tr>
<tr><td align="left"><script language = "JavaScript" type="text/javascript" src="/Js/ClassMenu/ClassMenu_1.Js"></script></td>
</tr>
</table>
--><!--文章频道Show模块 -->
<SCRIPT language=JavaScript>
function fontColor(objname)
{
var arr = showModalDialog("/Editor/Dialog/selcolor.htm", "", "dialogWidth:18.5em; dialogHeight:17.5em; status:0; help:0");
if (arr != null) setColor(objname,arr);
}
</SCRIPT>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=tl></TD>
<TD class=tm>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="77%"><SPAN class=tt>阅读→</SPAN><FONT
color=#999999>Windows2000 服务器端应用程序开发设计指南-服务(Service)开发的纪律</FONT></TD>
<TD width="23%">
<DIV align=right><FONT color=#ff0033>热</FONT> <FONT
color=green>荐</FONT> <IMG alt=4星级
src="1. 服务(Service)开发的纪律.files/Star4.gif"
border=0></DIV></TD></TR></TBODY></TABLE></TD>
<TD class=tr></TD></TR></TBODY></TABLE>
<DIV id=printBody>
<TABLE id=middle
style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; TEXT-ALIGN: left"
cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=ml></TD>
<TD class=mm vAlign=top><BR>
<DIV align=center>
<H1 class=aTitle>Windows2000 服务器端应用程序开发设计指南-服务(Service)开发的纪律</H1></DIV>
<TABLE width="97%" align=center>
<TBODY>
<TR>
<TD width=502>
<DIV align=center>[日期:2006-10-8 来源:<A
href="http://www.acejoy.com/" target=_blank>ACE开发者</A><SPAN
id=SourceLabel></SPAN> 作者:Jeffrey Richter
Jason D. Clark<SPAN id=AuthorLabel>]</SPAN></DIV></TD>
<TD align=right width=209>
<DIV align=center>[字体: <INPUT title=把正文字体缩小 style="HEIGHT: 16px" onclick="fontSize('m','ArticleBody')" type=button value=小>
<INPUT title=把正文字体扩大 style="HEIGHT: 16px" onclick="fontSize('b','ArticleBody')" type=button value=大>
<INPUT title=转为简体中文模式 style="HEIGHT: 16px" onclick="bodytojt('ArticleBody')" type=button value=简>
<INPUT title=转为繁体中文模式 style="HEIGHT: 16px" onclick="bodytoft('ArticleBody')" type=button value=繁>
<A href="javascript:fontColor('ArticleBody')"><IMG alt=字体颜色
src="1. 服务(Service)开发的纪律.files/fgcolor.gif" align=absMiddle
border=0></A>]</DIV></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE cellSpacing=0 cellPadding=10 align=left border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE>
<DIV class=content id=ArticleBody
style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<DIV language=javascript id=tab1
style="MARGIN-LEFT: 20px; LINE-HEIGHT: 25px"
ondragover="return tab1_ondragover()">
<P align=center><B><FONT color=#3e80d7 size=5><SPAN
style="BACKGROUND-COLOR: #d7d7d7">1.
服务(Service)开发的纪律</SPAN></FONT></B></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>我们都承认一个好的程序设计需要拥有许多能力。适当的执行错误检查、预先考虑系统上的可用资源以及预估来自不同使用者之所有可能输入情形-这就是程序可视为一种艺术形式工作的原因。编写服务必须完全精通这种艺术形式。</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>就应用程序软件而言,忘了处理其细微差别的部份并不会造成很大的问题;因为这些疏忽通常只会影响到单一使用者,而不是整个企业。但「服务器」软件属于关键性的任务,因此需要严谨地注意所有的细节部份。遵守纪律的服务器开发者应设计出能够满足这些要求的软件。以下的章节会叙述一些服务器程序设计者必须加以注意的规则及纪律。</FONT></P>
<HR style="LINE-HEIGHT: 25px">
<P><FONT style="LINE-HEIGHT: 25px" face=Arial color=#3e77d7 size=3
Black><B style="LINE-HEIGHT: 25px">说明</B></FONT> </P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>在整本书中,频繁使用「服务器」和「服务」这二个术语。当使用「服务器」这个术语时,是指为客户端执行任务的机器或应用程序。使用「服务」这个术语时,是指一个特别的Microsoft
Windows应用程序,它为客户端执行任务,也包含经由作业系统使它能接受特别处理的额外基础建设。这些术语有些部份显然是重叠的,有时候会交替使用,假如很明确地在讨论某种Windows服务时,将使用「服务」这个术语来表示。</FONT></P>
<HR style="LINE-HEIGHT: 25px">
<A style="LINE-HEIGHT: 25px" name=201001>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#3e70d7
size=5><B style="LINE-HEIGHT: 25px">容错和整洁的程序代码<BR
style="LINE-HEIGHT: 25px"> </B></FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>现今的软件非常的复杂,以至于无法预先考虑到在每个环境下执行的情形。本书所说的「环境」是指您们的处理程序之位址空间内容、函数的参数值以及在同一个系统上执行其他处理程序的影响。因为非常错综复杂的缘故,需要连续不断执行好几个月的程序,且程序必须要有容错的机制。对于如何执行适当的错误检查以及如何从函数内部复原的方法,在我们的脑海中大概早已存有大学教授所坚决陈述的观点。编写可容错的程序代码是应该做的,然而我们仍然屡次地将必须注意的细节视为冗长乏味且省略不做。我们开始变得自满,认为作业系统会「照顾我们」。许多开发者竟然相信内存是无穷尽的,并认为泄漏各种资源是可行的,因为他们知道当处理程序死掉时,作业系统会自动地清理每件事。</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>许多应用程序确实是以这种方式执行,所导致的结果并不具破坏性,因为应用程序倾向在短时间的执行后就重新启动。然而,服务是持续地执行着;若是省略适当的错误复原机制和清理资源的程序代码会是悲惨的!</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -