征服C/C++企业软件开发核心技术
基本信息
编辑推荐
汇聚15年开发经验,深度解析C/C++企业软件核心技术
跨越Unix、Linux、Solaris、Windows操作系统
深入多线程、进程通信、网络通信
剖析Oracle、Mysql、内存排错、性能调优、中间件
解决企业迫切需要的高性能、高稳定性等问题
推荐阅读
内容简介回到顶部↑
本书介绍如何在pc系统下搭建linux+oracle企业软件开发环境,并以此为基准平台,介绍用c/c++语言开发企业应用程序。.
本书结构合理,步步为营,兼顾linux/unix/windows操作系统,内容包含:基础环境搭建、开发和调试方法、常用集成开发环境(ide)、linux/unix/windows跨平台软件开发、进程通信、守护进程和windows服务程序开发、多线程环境下的网络通信、oracle数据库数据的主流操作方法、mysql数据库操作方法、内存排错、性能分析、corba程序设计、visibroker中间件的使用等。各章环环相扣,由浅到深、厚积薄发,涵盖企业软件开发的所有关键性步骤,用最简练的方法阐述企业软件开发的核心技术。..
本书来源于软件公司研发部和测试部的正规培训资料,适用于企业软件开发的初、中级人员,尤其是有c/c++语言及数据库基础的高等院校学生、培训学校软件开发方向的学员、有志从业的编程爱好者,也是从业余开发者进阶为专业程序员的高效的cookbook。...
本书结构合理,步步为营,兼顾linux/unix/windows操作系统,内容包含:基础环境搭建、开发和调试方法、常用集成开发环境(ide)、linux/unix/windows跨平台软件开发、进程通信、守护进程和windows服务程序开发、多线程环境下的网络通信、oracle数据库数据的主流操作方法、mysql数据库操作方法、内存排错、性能分析、corba程序设计、visibroker中间件的使用等。各章环环相扣,由浅到深、厚积薄发,涵盖企业软件开发的所有关键性步骤,用最简练的方法阐述企业软件开发的核心技术。..
本书来源于软件公司研发部和测试部的正规培训资料,适用于企业软件开发的初、中级人员,尤其是有c/c++语言及数据库基础的高等院校学生、培训学校软件开发方向的学员、有志从业的编程爱好者,也是从业余开发者进阶为专业程序员的高效的cookbook。...
目录回到顶部↑
第1章 企业软件开发概述. 1
1.1 企业软件特点 2
1.1.1 什么是企业软件 2
1.1.2 企业软件的特性 2
1.1.3 企业软件是中国软件行业发展的主要方向 3
1.1.4 企业软件开发人员缺乏 3
1.2 企业软件开发的生产线和职责定位 4
1.3 c/c++程序员的特殊要求 7
1.4 编程——简单而复杂的任务 8
1.5 英语——永不放弃的工作语言 8
1.6 关于这本书 9
第2章 基础环境 11
2.1 c/c++程序员必备的基础知识 12
2.2 虚拟机软件 13
2.2.1 vmware server/workstation 13
2.2.2 vmware esx server 14
2.3 vmware server下安装linux 14
2.3.1 安装vmware server 15
2.3.2 增加linux虚拟机 16
2.3.3 安装linux 20
1.1 企业软件特点 2
1.1.1 什么是企业软件 2
1.1.2 企业软件的特性 2
1.1.3 企业软件是中国软件行业发展的主要方向 3
1.1.4 企业软件开发人员缺乏 3
1.2 企业软件开发的生产线和职责定位 4
1.3 c/c++程序员的特殊要求 7
1.4 编程——简单而复杂的任务 8
1.5 英语——永不放弃的工作语言 8
1.6 关于这本书 9
第2章 基础环境 11
2.1 c/c++程序员必备的基础知识 12
2.2 虚拟机软件 13
2.2.1 vmware server/workstation 13
2.2.2 vmware esx server 14
2.3 vmware server下安装linux 14
2.3.1 安装vmware server 15
2.3.2 增加linux虚拟机 16
2.3.3 安装linux 20
前言回到顶部↑
计算机是二十世纪最伟大的发明之一,其广泛的应用彻底改变了人们的生活。到了二十一世纪,几乎所有的行业都离不开它了。.
我们肉眼看到的计算机是都是一个个的硬件设备,如果不能有效地控制,那么,这些或大、或小、或廉价、或昂贵的计算机系统全都是无用的废铁。计算机系统的灵魂是什么?是控制、是数据、是软件。计算机系统早就从科研教育部门走向了各行各业,需要大量的软件。
软件行业现状
计算机可以干很多事情,可惜,它并不知道自己要干什么,需要告诉它该干什么,这些都是由软件来控制。每个行业都有自己的业务规则,其软件一般不具备通用性,需要定制。加上行业的业务也是在不断地发展和变化的,软件也会不断地更新。因此,软件行业的需求是非常旺盛的,需要有大量的人员投入。
相对传统行业来讲,软件行业的门槛比较高,英语和数理逻辑这两个方面的要求就将把很多人挡在门外。早期的软件开发还需要有操作系统、编程语言、数据结构、数据库等各方面的基础,软件开发是件非常专业的事情。Windows的广泛采用以及VB/Delphi等快速开发工具的推出,加上更简单且不易犯错的Perl/Java等语言的兴起,程序开发不再是少数精英的专利。
降低从业难度本来是件好事情,但也是把双刃剑。很多软件开发者并不具备专业的技能,只不过是普通票友的技术水准。但是,在人才匮乏的条件下,被迫充当了软件开发的主力。很多企业使用的行业软件都要求高稳定性、高性能,但目前的现状是大量的企业软件系统大都是豆腐渣工程,漏洞百出,比较业余。
如何成为C/C++软件人才
专业的软件人才从哪里来?新鲜的血液从哪里输入?我们的高校培养的人才,过于理论化,知识也比较陈旧,和企业实际需要有很大的差距。培训机构的讲师大多是已转行做管理的技术人员,远离软件开发第一线,也很难把握软件行业的实时脉搏,培养出来的人员依然大多是门外汉,甚至是不着调。另外,也不能怪软件企业过于现实,特别强调实践经验。培养人才要成本,而且不一定能培养成可用的人才,培养成功的说不定又另攀高枝了,企业风险比较大。于是,强烈的矛盾冲突发生了,有志从业者无机会进入此行业,而需要人才的企业又找不到人。
人才不是没有,大多数有志从业者是有准备的,他们可能受过科班教育,可能受过培训机构的针对性培训,可能下苦功自学过编程语言等科目。然而,他们为什么离软件企业的要求还是那么远?很大一个原因是,他们不知道哪些技能必须掌握,重点在哪里,胡须眉毛一把抓必然会变成泛泛之辈。另外,还有一些基本的行业基础知识他们完全没有听说过,不可能重点去学习。..
C/C++的软件开发者则面临更大的困境,因为界面开发及普通的应用方面,Java/C#/ASP/Delphi(Pascal)等语言侵占了他们原来的空间,把他们挤到了更为关键的、特别看重稳定性和高性能的领域,对从业者的专业技能要求更高,很难有更多人才进入此领域。
本书的特点
本书正好是为C/C++开发人员准备的,以Linux/Unix下的C++企业软件开发技术为核心,主要面向有一定C/C++语言基础和数据库基础、即将从事软件开发行业的高校毕业生,以及培训机构的学员或自学者。目标是让读者学完本书后,具备基本的企业开发理念和技能,可以从事程序员甚至是高级程序员的工作。同时,对已经从业的软件工程师和高级软件工程师也有借鉴的价值。
软件工程师要具备的技能非常多,要全面掌握则需要精读专业书籍,本书不可能也不打算全面讲述。本书以导读的方式介绍这些基本的技能,并打包式地介绍一些实用的方法。古诗《木兰辞》里,木兰“东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。”我们这里则不用跑来跑去,全都有,而且全是行货,且比较好用,但肯定不是最优秀的,并且选择性很少。但拥有这些装备对普通的战士来说,已经足够可以上前线了。
本书和任何专业程序设计书籍、资料完全不同的地方是:各方面技术的全面融合。
·操作系统的书籍重点一般是针对网管的,而本书讲操作系统时,着眼点是与程序运行相关的系统参数、环境变量等。
·数据库书籍的重点绝对不是如何用C/C++语言操作数据库,而本书则是,而且特别关注批量数据操作,因为这在实际企业软件系统中是较常见且重要的。
·本书在介绍多线程编程后,介绍网络通信及数据库操作时,全部考虑到多线程环境下的表现,这在一般书籍中也是不多见的。
因为企业软件开发的客观现状就是这样,所以我们的着眼点就是:遵从现状,关注企业软件开发所必需的技能。
本书是作者长期企业软件开发经验的结晶,同时也得到了一些大中型软件企业里朋友的大力支持,在此深表感谢。同时,在软件开发行业对各领域的知识和技能进行融合,这是作者大胆的尝试,疏漏和错误之处,欢迎广大读者和同行业从业者批评指正。有下列方式可以联系到我们:
访问技术支持网站: ...
我们肉眼看到的计算机是都是一个个的硬件设备,如果不能有效地控制,那么,这些或大、或小、或廉价、或昂贵的计算机系统全都是无用的废铁。计算机系统的灵魂是什么?是控制、是数据、是软件。计算机系统早就从科研教育部门走向了各行各业,需要大量的软件。
软件行业现状
计算机可以干很多事情,可惜,它并不知道自己要干什么,需要告诉它该干什么,这些都是由软件来控制。每个行业都有自己的业务规则,其软件一般不具备通用性,需要定制。加上行业的业务也是在不断地发展和变化的,软件也会不断地更新。因此,软件行业的需求是非常旺盛的,需要有大量的人员投入。
相对传统行业来讲,软件行业的门槛比较高,英语和数理逻辑这两个方面的要求就将把很多人挡在门外。早期的软件开发还需要有操作系统、编程语言、数据结构、数据库等各方面的基础,软件开发是件非常专业的事情。Windows的广泛采用以及VB/Delphi等快速开发工具的推出,加上更简单且不易犯错的Perl/Java等语言的兴起,程序开发不再是少数精英的专利。
降低从业难度本来是件好事情,但也是把双刃剑。很多软件开发者并不具备专业的技能,只不过是普通票友的技术水准。但是,在人才匮乏的条件下,被迫充当了软件开发的主力。很多企业使用的行业软件都要求高稳定性、高性能,但目前的现状是大量的企业软件系统大都是豆腐渣工程,漏洞百出,比较业余。
如何成为C/C++软件人才
专业的软件人才从哪里来?新鲜的血液从哪里输入?我们的高校培养的人才,过于理论化,知识也比较陈旧,和企业实际需要有很大的差距。培训机构的讲师大多是已转行做管理的技术人员,远离软件开发第一线,也很难把握软件行业的实时脉搏,培养出来的人员依然大多是门外汉,甚至是不着调。另外,也不能怪软件企业过于现实,特别强调实践经验。培养人才要成本,而且不一定能培养成可用的人才,培养成功的说不定又另攀高枝了,企业风险比较大。于是,强烈的矛盾冲突发生了,有志从业者无机会进入此行业,而需要人才的企业又找不到人。
人才不是没有,大多数有志从业者是有准备的,他们可能受过科班教育,可能受过培训机构的针对性培训,可能下苦功自学过编程语言等科目。然而,他们为什么离软件企业的要求还是那么远?很大一个原因是,他们不知道哪些技能必须掌握,重点在哪里,胡须眉毛一把抓必然会变成泛泛之辈。另外,还有一些基本的行业基础知识他们完全没有听说过,不可能重点去学习。..
C/C++的软件开发者则面临更大的困境,因为界面开发及普通的应用方面,Java/C#/ASP/Delphi(Pascal)等语言侵占了他们原来的空间,把他们挤到了更为关键的、特别看重稳定性和高性能的领域,对从业者的专业技能要求更高,很难有更多人才进入此领域。
本书的特点
本书正好是为C/C++开发人员准备的,以Linux/Unix下的C++企业软件开发技术为核心,主要面向有一定C/C++语言基础和数据库基础、即将从事软件开发行业的高校毕业生,以及培训机构的学员或自学者。目标是让读者学完本书后,具备基本的企业开发理念和技能,可以从事程序员甚至是高级程序员的工作。同时,对已经从业的软件工程师和高级软件工程师也有借鉴的价值。
软件工程师要具备的技能非常多,要全面掌握则需要精读专业书籍,本书不可能也不打算全面讲述。本书以导读的方式介绍这些基本的技能,并打包式地介绍一些实用的方法。古诗《木兰辞》里,木兰“东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。”我们这里则不用跑来跑去,全都有,而且全是行货,且比较好用,但肯定不是最优秀的,并且选择性很少。但拥有这些装备对普通的战士来说,已经足够可以上前线了。
本书和任何专业程序设计书籍、资料完全不同的地方是:各方面技术的全面融合。
·操作系统的书籍重点一般是针对网管的,而本书讲操作系统时,着眼点是与程序运行相关的系统参数、环境变量等。
·数据库书籍的重点绝对不是如何用C/C++语言操作数据库,而本书则是,而且特别关注批量数据操作,因为这在实际企业软件系统中是较常见且重要的。
·本书在介绍多线程编程后,介绍网络通信及数据库操作时,全部考虑到多线程环境下的表现,这在一般书籍中也是不多见的。
因为企业软件开发的客观现状就是这样,所以我们的着眼点就是:遵从现状,关注企业软件开发所必需的技能。
本书是作者长期企业软件开发经验的结晶,同时也得到了一些大中型软件企业里朋友的大力支持,在此深表感谢。同时,在软件开发行业对各领域的知识和技能进行融合,这是作者大胆的尝试,疏漏和错误之处,欢迎广大读者和同行业从业者批评指正。有下列方式可以联系到我们:
访问技术支持网站: ...
书摘回到顶部↑
第1章 企业软件开发概述
1.1 企业软件特点
1.1.1 什么是企业软件
什么是软件?很多人立即脱口而出:不就是程序吗?应该说,只说对了一部分,通常认为,软件由程序和数据构成的。很多程序的目的就是要处理数据,尤其是转换和保存数据。比如电脑绘图、制作Flash动画等,这些可能并不生成任何程序代码,但也称为软件产品,其数据可能比生成数据的工具重要得多。一个游戏公司里的美工,可能比主程序师的薪水要高很多。一款游戏里,可执行文件及动态库可能只有几十兆,但各种数据可能有几张DVD,这些数据都是游戏软件的骨干组成部分。
从用户的角度来区分,软件可以分为通用软件和企业软件两种类型。
通用软件一般是给广大普通用户个人使用的,也可能是特定用户群,对用户具有通用性。比如Windows操作系统、MS Office办公系统、MacAfee反毒软件、AutoCAD制图软件、Photoshop图像处理软件等,基本上是买一套软件个人使用。
企业软件则是给特定企业定制、或者由企业内部人员自行开发的专用软件系统,其用户是一个或一类特定的企业,每套软件可能都是唯一的,满足企业生产、管理、分析等用途,常常是行业软件。比如为银行开发的营业系统、电信运行商定制的计费系统等。它们会用到大量的通用软件,例如Unix和Windows操作系统、Oracle数据库系统,CORBA中间件、WebLogic Web服务器等。但是,更有生命力的软件是为企业定制的专用业务处理系统,因为每个企业的业务流程、管理方法都可能是不一致的,从通用软件公司无法购买到合适的软件,必须由软件开发人员为企业定制。
说得更形象一点,通用软件产品就好比是批量生产的商场里出售的衣服,而企业软件则可能是件皇袍,适用的对象完全不同。
……
1.1 企业软件特点
1.1.1 什么是企业软件
什么是软件?很多人立即脱口而出:不就是程序吗?应该说,只说对了一部分,通常认为,软件由程序和数据构成的。很多程序的目的就是要处理数据,尤其是转换和保存数据。比如电脑绘图、制作Flash动画等,这些可能并不生成任何程序代码,但也称为软件产品,其数据可能比生成数据的工具重要得多。一个游戏公司里的美工,可能比主程序师的薪水要高很多。一款游戏里,可执行文件及动态库可能只有几十兆,但各种数据可能有几张DVD,这些数据都是游戏软件的骨干组成部分。
从用户的角度来区分,软件可以分为通用软件和企业软件两种类型。
通用软件一般是给广大普通用户个人使用的,也可能是特定用户群,对用户具有通用性。比如Windows操作系统、MS Office办公系统、MacAfee反毒软件、AutoCAD制图软件、Photoshop图像处理软件等,基本上是买一套软件个人使用。
企业软件则是给特定企业定制、或者由企业内部人员自行开发的专用软件系统,其用户是一个或一类特定的企业,每套软件可能都是唯一的,满足企业生产、管理、分析等用途,常常是行业软件。比如为银行开发的营业系统、电信运行商定制的计费系统等。它们会用到大量的通用软件,例如Unix和Windows操作系统、Oracle数据库系统,CORBA中间件、WebLogic Web服务器等。但是,更有生命力的软件是为企业定制的专用业务处理系统,因为每个企业的业务流程、管理方法都可能是不一致的,从通用软件公司无法购买到合适的软件,必须由软件开发人员为企业定制。
说得更形象一点,通用软件产品就好比是批量生产的商场里出售的衣服,而企业软件则可能是件皇袍,适用的对象完全不同。
……
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
评论交流
共有34人开贴评论 49人参与评论 30人参与打分 查看
评价等级:





发表于:2008-9-9 14:00:00
这本书看内容,是比较实用的,作者是很用心的,提炼出很多经验。
我下面说的是写给准备学习C 的人看的。看了作者前言,随便说几句:
就目前人才市场而言:
大部分GUI开发中,使用C 的MFC已经没落
UNIX与DB结合,也就是企业开发,或者是各种信息系统,例如彩票计算,使用C居多
嵌入式,以C居多。
C 是一个面向应用的语言,相对于C面向机器。
但是应用这个东西,很广泛,企业计算WEB方面,JAVA占据江山,UNIX上有部分用C的。
C 更适合象AUTOCAD PHOTOSHOP这类,被孟岩称作“高性能复杂应用程序”,例如国内的金山,这类软件目前市场很小
在嵌入式,用C居多。
总得来讲,国内嵌入式,和UNIX用C居多
当年MFC火热时培养出的C 高手大多成了经理或者老程序员
目前很多人失业,因为前些年大量人涌入JAVA,造成JAVA过剩。
手机业因为山寨机冲击,大量手机程序员在找工作,他们大多只会C。
通信业其实用C居多,包括华为,虽然在转向C ,但是很缓慢
虽然银行业,也就是企业计算,如作者说的,用UNIX C DB,但是用OO的很少。虽然编译器本身都支持C
其实国外C 很普及,但是中国UNIX程序员大多在C这个水平,OO水平比较低。
这本书可以看出来,讲的很多API,都是C的。包括中国嵌入式程序员,大多也是C的水平,OO概念很浅
我同意作者看法,这本书是使读者进入职业程序员,但是,如果你仅仅会C,不会JAVA 或者C /OO,或者数据库,
那么,未来是不具备竞争力的。如作者说,C 程序员被挤入很窄的就业空间。
那些竞争力的领域不是这本书的主题,这本书讲了你要上手,需要的一些common skills。
我想说的是,如果你想进入企业计算,你应该在JAVA 、DB上下功夫,而不是C 。如果你在C 上下了很多功夫,工作时发现用不太上,而你在DB OO/JAVA上的欠缺会阻碍你的发展
我下面说的是写给准备学习C 的人看的。看了作者前言,随便说几句:
就目前人才市场而言:
大部分GUI开发中,使用C 的MFC已经没落
UNIX与DB结合,也就是企业开发,或者是各种信息系统,例如彩票计算,使用C居多
嵌入式,以C居多。
C 是一个面向应用的语言,相对于C面向机器。
但是应用这个东西,很广泛,企业计算WEB方面,JAVA占据江山,UNIX上有部分用C的。
C 更适合象AUTOCAD PHOTOSHOP这类,被孟岩称作“高性能复杂应用程序”,例如国内的金山,这类软件目前市场很小
在嵌入式,用C居多。
总得来讲,国内嵌入式,和UNIX用C居多
当年MFC火热时培养出的C 高手大多成了经理或者老程序员
目前很多人失业,因为前些年大量人涌入JAVA,造成JAVA过剩。
手机业因为山寨机冲击,大量手机程序员在找工作,他们大多只会C。
通信业其实用C居多,包括华为,虽然在转向C ,但是很缓慢
虽然银行业,也就是企业计算,如作者说的,用UNIX C DB,但是用OO的很少。虽然编译器本身都支持C
其实国外C 很普及,但是中国UNIX程序员大多在C这个水平,OO水平比较低。
这本书可以看出来,讲的很多API,都是C的。包括中国嵌入式程序员,大多也是C的水平,OO概念很浅
我同意作者看法,这本书是使读者进入职业程序员,但是,如果你仅仅会C,不会JAVA 或者C /OO,或者数据库,
那么,未来是不具备竞争力的。如作者说,C 程序员被挤入很窄的就业空间。
那些竞争力的领域不是这本书的主题,这本书讲了你要上手,需要的一些common skills。
我想说的是,如果你想进入企业计算,你应该在JAVA 、DB上下功夫,而不是C 。如果你在C 上下了很多功夫,工作时发现用不太上,而你在DB OO/JAVA上的欠缺会阻碍你的发展
评价等级:







发表于:2008-9-4 16:10:00
感谢这位朋友的批评。
代码质量一般,这一点也许您写的更好些,但这种质量不差,够用了。因为这本书的读者主要是入门和初级者。
如果您看了前言,一定会知道,这是一本横向的书,不是专门领域的书,所以把数据库和网络多线程要糅合在1一起,因为实际上的程序是多方面都会涉及到的。这里只是一个入门的敲门砖。要深入有专门的厂家文档。
书中有代码,是给初级人员用的,注释不少,适合在床上甚至在车上看。
对于中高层人员,我建议您去看更专业的书籍,或厂家文档。cookbook方面的书可能不合您的胃口。
我相信读者在入门后,会知道看那方面的专业资料。
代码质量一般,这一点也许您写的更好些,但这种质量不差,够用了。因为这本书的读者主要是入门和初级者。
如果您看了前言,一定会知道,这是一本横向的书,不是专门领域的书,所以把数据库和网络多线程要糅合在1一起,因为实际上的程序是多方面都会涉及到的。这里只是一个入门的敲门砖。要深入有专门的厂家文档。
书中有代码,是给初级人员用的,注释不少,适合在床上甚至在车上看。
对于中高层人员,我建议您去看更专业的书籍,或厂家文档。cookbook方面的书可能不合您的胃口。
我相信读者在入门后,会知道看那方面的专业资料。
| 我要写评论 |
| 查看所有评论交流(共34条) |


点击看大图





加载中...