`
datoplay
  • 浏览: 1614951 次
文章分类
社区版块
存档分类
最新评论

介绍几本COM的书籍(韩少勇)(上)

 
阅读更多

介绍几本COM的书籍<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

韩少勇

最有效的获取知识的途径就是读书,当然要读好书。难怪古人把求学也称作“念书”。

引言

实际上,写一些介绍电脑图书的文章是我长久以来的愿望。一方面由于我的朋友们经常让我为他们推荐一些切实有用的书,另一方面的原因是我在早些时候的学习并不很顺利,面对书店里鱼龙混杂的“繁华”,真是不知所措。结果横下心来,只要觉得差不多,就买!结果买了很多本不必买的书,浪费了钱财、浪费了时间。数年下来,倒也对电脑图书市场有了一些看法,产生了一些感慨。

大多数世人都不是圣贤,因此往往听得赞美,对批评却很难接受。我的许多朋友担心我的安全,劝我多说好话。可是书有好有劣,说假话当然有违初衷,说真话又难免得罪人。于是我们共商了一个“安全政策”:以“扬善”为主,在详细地介绍了一本好书之后就算提了几点不足,我想作者和出版社还是会接受的吧。至于一些不负责任的出版,我只说现象,不提名字。(请大家理解,浮生在世,安全第一、安全第一。)

目前IT行业竞争激烈,市场风云变换莫测,为了生存,所有人都超负荷地承受着各方面的压力。当程序员或者经理们好不容易从一大堆烦琐的事务中探出头来,拿起一本向往已久的专业书籍来充实自己的时候,他们当然希望尽快的把书上的东西转化为自己的思想,从而利用这宝贵而短暂的缓冲期学到更多的东西。

但可惜的是有些书却不是为了这个目的来写的,书上的话象文言文一样难懂(也许有些作者觉得只有这样才能显示出他的水平深不可测,也许有些作者压根儿就没有理解所讲的内容,只好用一大堆云山雾绕的语言来“遮羞”)。不仅如此,还有更可怕的现象,当电脑图书开始呈现出强劲的销售势头的时候,无数的“专家”、“大师”就在一夜之间涌现了出来,各种名字“大气磅礴”的书籍、培训让人目不暇接,就象大街上穿梭不息的出租车一样多。且不说他们的水平究竟如何,我想,“多必滥”似乎是一个曾被验证了许多次的道理。我就在北京某大学的布告栏里看到了“Intermet培训”的宣传,实在让人哭笑不得。

现在,形形色色的电脑培训班已经成为了“IT文化的一大风景”。对于这种现象,外国人的评论似乎更能发人深省:“在美国,是没有这么多培训班的,但是一个小学生都可以熟练地操作电脑。”“在中国,电脑培训班到处都是,但计算机技术的普及却仍然是一个问题。”“中国的自行车很多,男女老幼都会骑,但是你见到过自行车培训班吗?如果到处都是自行车培训班,在不厌其烦地教你‘自行车的轮子直径多长、有多少根辐条’等等问题,那么相信会骑自行车的人会越来越少。”写书或者译书也是如此,电脑图书的空前繁荣是否表示我们的水平很高呢?我认为不然。有时为了解决个别问题去书店找找资料,结果往往是浪费了时间还徒留“天下文章一大抄”的感慨。题材和形式都很雷同的书籍的大量充斥市场,我称之为“爆米花现象”。典故是这样的:前些年,我家门前的大街上来了一家爆米花的,因为独此一家,所以生意红红火火。可是没过多久,又雨后春笋般地涌现了十几家,沿着大街一字排开,煞是壮观。现在大家的生意均不太好,但谁都没有意见,只是我家常年“米花飘香”。如果说中国人“跟风”的脾性是祖宗传下来的,因循守旧者把它奉若神明的话,我们的电脑作者们是否应该具有一些开创精神,静下心来想一想,市场上究竟缺些什么书,不要一味地“人云亦云”。

虽然好为人师者比比皆是,但是老师却不是那么好当的,因为你得对所讲述的知识有深刻的理解,并能够用深入浅出的语言来讲给别人听。态度当然是第一位的,但是书的神圣却被不少作者和出版社践踏着。一些出版社不顾质量,一味求出书快,结果商机有了,却倒了牌子。一本原先很不错的英文书被他们翻译得驴头不对马嘴,根本不能看。而由于版权卖给了他们,其他出版社有心重翻也无能为力了。一本好书甚至一套好书就此被糟蹋,而利益受损的当然是读者。除了态度,还要有水平,书不是随便一个人都可以写出来的。时下里许多书的名字起的要多吓人有多吓人,总是让我想起了街边卖大力丸的:“只要吃了我的药,就刀枪不入、百毒不侵”。可事实上许多作者本身功力薄弱,写不出架构与精神,于是入门书籍千篇一律就是教大家按下菜单,选择命令, 出现对话框,按下‘确定’ ...。 真正的老师不好找,但“二把刀师傅”却到处都是(就象现在一天到晚占着电视频道的歌星、影星一样让人眼花缭乱)。加上某些出版社把关不严,这才造成了是个人就可以出书的现象。

今天,我为大家介绍几本COM的书籍,希望能在COM的学习上助君一臂之力。

欲学COM之必读书籍---《COM技术内幕》

书名:《COM技术内幕》

英文原名:《Inside COM》

作者:(美)Dale Rogerson

Microsoft Press 1997

中文译者:杨秀章

清华大学出版社 1999年3月第1版

定价:50.00元(带光盘)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


Microsoft Press的《Inside ……》(翻译成中文就是《……技术内幕》)系列书籍似乎总保持着独到的权威性,很少让人失望。从《Inside OLE》到《Inside Visual C++》,都十分受到读者的欢迎,名声极好。《Inside Visual C++》称的上是深入浅出的典范,大师的语言以及清楚的思路都让人收益非浅。但是可能是由于名字的原因,很多想学Visual C++的人面对这本厚厚的大作的时候,多少总有些胆怯,担心自己看不懂。少勇认为,只要你具有了一些C++的基本知识(有WIN32的概念更好),学这本书就不难,当然毅力是克服困难的秘方。

Inside COM》也称的上是一本难得的上乘之作,这本书的最大特点在于语言轻松、循序渐进,在选材和结构组织上不难看出作者着实是煞费了一番苦心。为了把“门槛”设得低一些,作者在前几章尽可能地回避了很多诸如类厂、注册表等难点和细节问题,集中“优势兵力逐个歼灭敌人”,我不知道Dale Rogerson先生是不是从朝鲜战争中彭总司令的指挥艺术中得到的启示。在示例程序的安排上,每章都有一到两个独立于其他章节的程序,而且作者尽量使这些程序简短而完整。一方面短的例子阅读起来比较容易,另一方面读者可以将学习的重点放在COM组件的需求上,而无需费力去搞清楚复杂的例子中的那些不必要的细节及复杂的实际问题。于编程语言,作者采用的是传统的C++语言,没有涉及到任何WIN32以及MFC的知识,除了在第九章中用到了一些方便的接口指针类之外,书中的其他部分都没有用到模板类。总之作者尽可能地抛掉了一切累赘使读者能轻装前进,只要你学过标准C++,有面向对象编程的基本概念(封装性、继承性、多态性),就大可放心地读这本书了。

书的前五章讲的很明白,都是一些诸如组件、接口、引用计数、接口查询以及DLL等基本概念,无需少勇多费口舌。稍微有点美中不足的是书里边建立程序时都用如下命令:

cl Client1.cpp Create.cpp GUIDS.cpp UUID.lib”

cl/LD Cmpnt1.cpp GUIDS.cpp UUID.lib Compnt1.def”以及

nmake f makefile”。

问题是,现在有多少人能够很熟练地写makefile文件以及运用nmake和cl命令?恐怕很少吧。于是读者就得花很多时间来琢磨程序的编译过程,费时、费事、不打粮食!

当然,作为原理性的论述,这些东西还是要讲,但是至少应该告诉读者该如何操作才对。我拿第五章的例子来说,首先是建立组件DLL:由于有了VC++,我们大可不必用“cl/LD”来做了,只需要编辑好CMPNT1.CPP、CMPNT1.DEF以及IFACE.H、GUIDS.CPP后,在VC++的集成环境中选择建立一个空的WIN32 DLL工程,把这四个文件加入工程,编译连接后CMPNT1.DLL就生成了。然后是建立客户程序:很多人往往这样做:先建立一个空的WIN32工程文件,然后把编辑好的标准C++文件加入工程,可是却通不过连接。

于是不止一次的有人问我:在VC++下如何建立标准C++的工程?

(1)、随便写一个标准C的程序,越简单越好,如:

main(){return 1;}

把这个文件存入你希望的目录下,一定要与你想建的工程同名。(如果你希望的工名是APPLE,那么你应该把这个文件存为APPLE.CPP)。

(2)、编译APPLE.CPP,这时VC++会提示你没有建工程,是否需要他为你缺省地建一个,当然“是”。于是VC++就在存有APPLE.CPP的目录下创建了名字为APPLE的工程。

(3)、下一着就是“过河拆桥”,从工程里删除APPLE.CPP,加入或者编辑你希望的文件即可。

书的前六章讲的很明白,都是一些诸如组件、接口、引用计数、接口查询以及DLL、HRESULT、GUID、注册表等基本概念,大体上过得去,无需少勇多费口舌。

第七章讲述类厂,利用类厂来创建组件可能会让人迷惑:不用类厂,一样可以写出功能同样强大的组件来,为什么还要多此一举呢?少勇认为,如果您只想写一个进程内的组件,那么这句话一点没错,因为您完全可以写一个全局函数来创建所有的组件,这时,我们丝毫看不出类厂有什么存在的必要性。但是,如果您要跨进程来创建组件,则情况就不同了:您能写出在其他进程中创建组件并返回句柄的“全局函数”来吗?于是乎Microsoft就想出了创建一个特殊的组件,用这个特殊组件来创建其他的组件,这个特殊组件就是类厂。在进程外组件的创建过程中,类厂接口IClassFactory是第一个跨进程的连接。

第八章是至关重要的一章,讲述了组件的复用:包容和聚合。关于“COM是不是面向对象的”之类的讨论好象一直在进行着。COM曾经被指责是一项很差的技术,原因是COM不支持传统意义上的“继承”。这里我们得这样来看这个问题:组件具有“可独立发布特性”和“二进制特性”,既然可独立发布,就不应该依赖于某个基类,否则如果基类变了,那么组件也得跟着做变动,可独立发布也就无从谈起。而组件复用又是一个现实存在的问题,因为用现成的组件实现新组件的某些功能可以节约大量的时间,COM利用包容和聚合实现了组件的复用,这样既维护了组件的“可独立发布特性”,又变相实现了“继承”。嘻嘻!把“猫”叫了个“咪”。少勇认为,关于一些无碍全局的争吵越少越好,衡量一个技术好坏的标准是看它是不是确实好用,能不能解决我们的问题。

关于本章的示例程序作一点说明:

细心的读者可能都会提出这样的问题:在Cmpnt1.cpp的CA::Init()函数中有这么一句:

hr=m_pUnknownInner->QueryInterface(IID_IY,(void**)&m_pIY);

通过这句话,外部组件CA将得到指向内部组件IY接口的指针。但是问题就此产生了,是不是应该调用NondelegatingQueryInterface呢?种种迹象看来都应该是的,因为我们这里要得到非代理未知接口的指针。如果调用了代理未知接口的查询函数,情况会怎么样呢?代理未知接口又把请求转发给外部组件,而外部组件又把请求推回给内部组件,形成了死循环。但是运行一下例子程序,发现死循环并没有出现,一切正常!为什么?仔细一看方突然醒悟:追究一下m_pUnknownInner指针的由来,发现它是指向内部组件的非代理未知接口的,也就是说这里调用的实际上就是NondelegatingQueryInterface,当然不会出错(这也是面向对象多态性的一个体现)。

第九章除了智能指针之外,基本上没有新概念的提出(实际上智能指针也不是什么新东西,Visual C++本身就支持智能指针)。至于CUnknown和CFactory,只要前八章您切实看懂了,理解它们不是什么难事。

至于接下来的三章…………据说此书一出,从读者反馈的意见来看,对后几章批评颇多。少勇的观点如下:首先成绩是主要的,因为COM的跨进程调用的确很复杂,少勇也是花了九牛二虎之力才“拨云见日”,能讲成这个样子已经很不容易了。但是读者对书有意见主要是因为没有看懂,他们希望的是把一个复杂的知识用最通俗的语言讲出来,而且要严密。因此,这几章的语句和概念需要斟酌处还是很多,对于DCOM的论述应该加强(但是这确实会有一定难度)。

书的最后提供了一个七巧板的例子,有兴趣的读者可以研究一下,玩一玩,辛苦了半天,也该轻松片刻了。

书的结束语中写到:“在理解了本书介绍的所有内容之后,读者应该可以算得上是一个COM专家了”。但少勇以为,此言尚为时过早,如果把COM的知识比做一个“大树模型”,那么本书只是解决了最基本的问题,也就是大树的第一个树杈之下的主体部分。如果说完全了解COM,那么还应该了解COM这棵大树的每一个树枝、每一片树叶以及树叶上的虫子。

此书值得一看---《COM/DCOM编程指南》

书名:《COM/DCOM编程指南》

英文原名:《COM/DCOM Primer Plus》

作者:(美)Corry, Mayfield, Cadman

Sams Publishing 1999

中文译者:刘云 孔雷

清华大学出版社 2000年1月第1版

定价:52.00元(带光盘)


SAMS出版的书以它独到的视角占领着市场,在读者中名声还挺不错。看他们的书可能是一条快速入门的捷径。在现在COM书籍非常短缺的时候,《COM/DCOM编程指南》称得上是一本值得一看的书。少勇对此书的评价是:关于原理的论述中规中矩,无明显的破绽,而且对相关知识的涉及颇广,语言也还算流畅,倒也十分难得,只可惜火候尚欠,不够深入,因此,称不上是一本“COM专著”。读完此书,少勇闭目细品,就好象在满怀希望地吃了一顿大餐之后却没有哪道菜是上档次的“大厨手艺”,不免觉得有些美中不足。不过,从实用的角度来看,此书却也称得上是上乘之作了,不光给出了完整的例子,在第十章还给出了DCOMCNFG的配置示例,实为难得。读者如果把这本书和其他的一些书搭配着看,《指南》当之无愧是一个优秀的“二传手”(看得出译者在为本书取名字的时候确实花了一番心思,倒也十分得体)。

SAMS公司的书的一贯风格是门槛较底,学起来基本没有什么痛苦。但COM却是一种比较高级的技术,“零痛苦”的学习似乎不太可能,而且SAMS总是力求实用,于是免不了举一些实际的例子,因此所涉及的知识就比较多了。如果您对C++、事件驱动编程以及MFC还不够了解的话,则应该在阅读此书之前先去看一些相关知识的书籍。

书中关于接口定义语言(IDL)的论述可以算是一个闪光点。IDL最初并不是设计为描述COM类和接口的一种方法,而是开放软件基金会为分布式计算环境(DCE)规定的RPC IDL。微软最初把IDL设想为描述可用于Windows NT机器间通信的RPC接口的一种方法,后来逐步加入了许多专用于COM组件的关键字,用来描述COM接口以及COM对象。

谈到IDL和ODL,可能不少读者会感到很迷惑。不过没办法,这是一个历史遗留问题,书中第170页的论述相信会给您一个满意的答复。

分享到:
评论

相关推荐

    集团企业数字孪生平台信息化蓝图(应用系统架构、数据架构、IT基础设施与信息安全架构、信息化组织与管控.pptx

    集团企业数字孪生平台信息化蓝图(应用系统架构、数据架构、IT基础设施与信息安全架构、信息化组织与管控.pptx

    基于微信小程序的助农扶贫小程序

    大学生毕业设计、大学生课程设计作业

    node-v6.9.1.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

    基于matlab开发的多元散射校正和变量标准化Matlab处理程序,可以对建模前的原始数据进行校正、处理.rar

    吉林大学离散数学2笔记 自用.pdf

    吉林大学离散数学2笔记 自用

    MyBatis使用动态SQL的if标签

    mybatis动态sql

    信息办公淘客在线客服管理系统TaokeOCS v3.2 站点版-root.rar

    TaokeOCS v3.2 站点版_root.rar是一个专为淘客设计的在线客服管理系统的JSP源码资料包。这个系统是针对淘宝客服务的一个全面解决方案,它提供了一种高效、便捷的在线客服管理方式。该系统采用JSP技术构建,具有高度的可扩展性和稳定性。通过这个系统,淘客可以方便地管理和跟踪他们的客户,提供实时的在线客服支持。系统的主要功能包括客户信息管理、在线聊天、问题反馈处理、订单管理等。此外,TaokeOCS v3.2 站点版还具有强大的数据分析功能,可以帮助淘客分析客户行为,优化销售策略。系统还提供了丰富的报表和统计图表,让淘客可以直观地了解业务运行情况。总的来说,TaokeOCS v3.2 站点版是一款功能强大、操作简便的在线客服管理系统,是淘客提升服务质量,提高销售效率的得力工具。无论是对于新手还是有经验的淘客,都可以通过这个系统轻松地进行在线客服管理,提高工作效率,增强客户满意度。重新回答||

    hushubo.zip

    hushubo.zip

    node-v12.8.1-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v9.6.1-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    matlab实现遗传算法matlab源码.zip

    优秀源码设计,详情请查看资源内容

    3D模型004,可用于建模、GIS、BIM、CIM学习

    3D模型004,可用于建模、GIS、BIM、CIM学习

    毕业设计:基于SSM的mysql-口腔护理网站(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_口腔护理网站(源码 + 数据库 + 说明文档) 第二章 可行性分析 5 1. 业务流程描述 5 2. 经济可行性 5 3. 技术可行性 6 4. 运行可行性 6 第三章 需求分析 6 1. 健康管理系统的发展历史与现状 6 2. 健康管理系统的需求分析 7 3. 数据字典 7 第四章 总体设计 8 1.系统模块总体设计 8 2.数据库总体设计 9 3.数据库详细设计 9 第五章 详细设计与实现 11 1.运行环境 11 2.开发工具及技术介绍 11 3.系统界面设计 12 第六章 系统测试与性能分析 13 1.软件测试的概念 13 2.本系统的软件测试 13 3.本系统测试的总结 14

    基于matlab开发的单值分类,包括很多的工具函数,使用时直接调用就可,用起来相当方便的,欢迎大家下载.rar

    基于matlab开发的单值分类,包括很多的工具函数,使用时直接调用就可,用起来相当方便的,欢迎大家下载.rar

    毕业设计:基于SSM的mysql-在线考试系统(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_在线考试系统(源码 + 数据库 + 说明文档) 第2章 主要技术和工具介绍 1 2.1 SSM 框架 1 2.1.1. Spring 框架 1 2.1.2 SpringMVC 2 2.1.3. MyBatis 的选用 2 2.2 mysql数据库 2 2.3 eclipse与Tomcat简介 2 第3章 系统分析 1 3.1可行性分析 1 3.1.1经济可行性 1 3.1.2技术可行性 1 3.1.3操作可行性 1 3.2需求分析 1 3.3业务流程分析 2 3.4数据流程分析 3 第4章 系统设计 6 4.1系统结构设计 6 4.2功能模块设计 6 4.3数据库设计 7 4.3.1数据库设计概述 7 4.3.1概念设计 7 4.3.2表设计 8 第5章 系统实现 13 5.1基本任务 13 5.2登录模块的实现 14 5.2.1首页实现 14 5.2.2管理员后台登录 14 5.3教师用户模块的实现 17 5.3.1试题信息管理模块的实现 17 5.3.2试卷生成管理模块的实现 18 5.4管理员模块的实现 20 5.4.1系统用户管理模块的实现

    毕业设计:基于SSM的mysql-在线读书与分享论坛(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_在线读书与分享论坛(源码 + 数据库 + 说明文档) 2 系统需求设计 5 2.1 系统需求 5 2.2可行性分析 6 2.2.1技术的可行性 6 2.2.2经济的可行性 6 2.2.3操作可行性 7 2.2.4法律的可行性 7 2.4功能模块需求分析 7 3 系统设计 9 3.1系统结构设计 9 3.2 数据库设计 9 3.2.1 数据库实体 10 3.1.2 数据库表设计 12 4 系统的实现 13 4.1 主页的实现 13 4.2 章节信息界面 13 4.3 书籍信息界面 14 4.4 后台管理界面 15 4.6书籍添加管理界面实现 16 4.6书籍类别管理实现 17 5 系统测试 18 5.1 测试的目的及方法 18 5.2功能测试 18 5.3测试用例 19 5.4测试结果 20

    毕业设计:基于SSM的mysql-校园外卖管理系统(源码 + 数据库 + 说明文档)

    毕业设计:基于SSM的mysql_校园外卖管理系统(源码 + 数据库 + 说明文档) 二 关键技术介绍 3 2.1文件的上传和下载 3 2.2 echarts数据展示 3 2.3 MySQL数据库 4 2.4 java语言 5 2.5 MVC框架介绍 5 2.6 B/S结构 5 2.7小结 6 三 需求分析 7 3.1业务背景及需求分析 7 3.2业务建模 7 3.3系统角色分析 7 3.4系统用例分析 8 1、消费者用例图 8 2、 商户用例图 8 3、 管理员用例图 8 3.5非功能性需求 9 3.6小结 9 四 系统分析与设计 10 4.1系统架构 10 4.2系统功能设计 10 4.3数据库设计 12 4.3.1概念结构设计 12 4.3.2逻辑模型设计 13 4.3.3数据库物理模型设计 14 4.4系统界面设计 14 4.5小结 14 五 系统实现 15 5.1系统实现概述 15 5.1.1系统实现描述 15 5.1.2系统开发工具、语言、编码规范 15 5.2功能模块实现 15 5.2.1校园外卖订餐管理系统首页 15 5.2.2消费者会员登录的实现 15 5.2

    TypeScript-2.3.1.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Python和Flask实现的基于体检数据的城市公共健康可视分析系统源码+使用说明.zip

    优秀源码设计,详情请查看资源内容

    基于matlab开发的简单的TD-SCDMA通信系统仿真

    基于matlab开发的简单的TD-SCDMA通信系统仿真,包括由基本的上下行同步码得到传输用的上下行同步码,信号的调制,通过信道后的解调以及误码率分析。.rar

Global site tag (gtag.js) - Google Analytics