Linux C++软件工程师全科班--课程概况 /P"\+Qp
RZh)0S>J
* 培养目标:Linux/UNIX C++高级软件工程师 FYS83uq0
专注Linux/UNIX服务器端的软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。 N~J Eia%
[]3}(8yxGb
课程概况 +*{5ORq=
一、Linux操作系统 ;OJ0}\*iP8
dTQvz9 C
涉及技术:Ubuntu GNU/Linux、RedHat Linux AS5 V@'S#K#
j4r,_lH^r
课程要求:熟练使用常用的Linux/UNIX命令。 >b?)WNk
3(*s|V"
时间:1周 }F`2$Q+CW
二、Linux C++开发环境搭建、开发工具的使用 kD7(}N8YR
YY~=h5$
涉及技术:vi、GCC、GDB、Make、CVS、Subversion、Eclipse CDT F/>Pvq]
yZ0ZP
课程要求: (b}7Yb]#c
熟练使用vi文本编辑器; s;WCz
k+M-D~@5H
熟练使用GCC工具链进行编译、调试、构建可执行文件或共享库/静态库; VDY1F_Fk
.LR>&N _U
熟练编写Makefile; E"&9FxS]^
'k Z1&_{
熟练配置、使用CVS和Subversion两种版本控制工具; =T}uQ$X
t3g!5
熟练配置、使用Eclipse CDT开发工具 Z x%@wH~
{=7i}xY]T
时间:1周 mJR
T+SZ
三、C++语言(8周) 3F!+c 8e
C++是一门多范型编程语言,相对于C、Java、C#等C系语言,复杂度高,但一旦领悟C++的精髓,则能发挥C++语言的强大威力,为了让学员掌握C++语言编程技术,我们将这部分的课程分为四大块: f.^w/ GJO/
1、面向过程编程: Core C++ U/o}{,$A
P[ 8N58#
涉及技术:C++基础:类型和声明、指针与数组、表达式与语句、函数、名字空间、异常、代码文件的组织 Rj`Y X0?+
V<pjR@
课程要求:掌握扎实的C++基础知识 >{Z=cv/6o
a`Zf_;$@
时间:2周 %]oLEmn}y
2、面向对象编程: 类与继承(Class & Polymorphism) J3+8s[oJ>
M[_I16s
涉及技术:类设计、运算符重载、继承与多态 )6+W6:
3y ,?>-
课程要求:正确理解面向对象的概念,用面向对象的思维和方法构建软件,正确地设计和使用类以及继承体系。 mP[u[|]
cSk}53
时间:2周 SH|$Dg
3、泛型编程: C++模板(Template) 4HE4e
Q*(o;\s
涉及技术:类模板、函数模板、函数对象(Function object) {2@96o2}
BG=_i#V
课程要求:C++模板是C++强大威力的技术支撑,是构建C++标准库、Boost类库、ACE框架等的基础,必须熟练掌握C++模板技术。 .p>8oOp
JvaaBXkS\
时间:2周 5-^twXC&
4、C++标准库应用 u`|fmVI
hGV/P94
涉及技术:标准容器(STL容器):vector、list、map、set等等;迭代器、算法库、IO流、C语言数学库等 !F)oX7"
课程要求:对常用的部分如容器、迭代器、常用的算法、IO流,必须牢固掌握、熟练使用,对其它部分必须有认识,以免日后工作中频繁的编写标准库中存在的内容,重复制造轮子。 Kjw\SQ)2~
K^\9R
时间: 2周 V}qmH2h
四、C++ Boost模板库 UXHFti/A<
Boost是由C++标准委员会成员发起、众多C++界高手参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中TR1已经被纳入C++0x标准库。这部分的课程将涉及其中一些常用的类库。 *Fws]y2t~
IhLfuyFWu
涉及技术:Aiso、Thread、Interprocess、System、File System、Date Time、Format、Array、Lambda、Signals、TR1中的部分(Regex、Tuple、Smart Point、Hash Map、Hash Set等) j83
V$
Le
CI{x/ e^(
课程要求:必须掌握的类库有:Aiso、Thread、Date Time以及TR1中部分内容。 T1=M6iJ
uLF55:`<
时间:2周 Dzr5qP?#
五、ACE框架 e
AjtW qg
ACE是一个被广泛使用、设计优雅、高性能的C++通信框架(不仅仅是通信框架),其设计及实现被众多开源框架所借鉴。是构建稳定、高性能、高吞吐量、跨平台的服务器端程序的优秀框架。 F}>`3//u
2-84
涉及技术:ACE Reactor框架、ACE Proactor框架、MultiThread支撑、Timer(Scheduler)、ACE Service Configurator n TG|Isa
8t%1x|!
课程要求:以上列举的部分是服务器端编程必不可少的部分,均需熟练使用。 7ow1=%Q
7ZZt|bl
时间:2周 NY
x4&
*le
六、数据库开发 LKcrr;
GWKefH
专注Oracle 10g、MySQL5.0+。这部分的课程分为以下三大块: *en{pR'
1、SQL语言: jQ*Qh
*OiHrI9y
涉及技术:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL 2uVm?nm
soF ^G21N
课程要求:熟练使用SQL语言。 2+PIZ6=hN
{SV$fl;
时间:1周 pjFgIG2=9
2、Oracle和MySQL存储过程、函数、触发器 &kvVMnok
?3#X5WT
涉及技术:PL/SQL kWFR(J&R
yFG&Ir
课程要求:熟练编写Oracle和MySQL存储过程、函数、触发器 o;fQ,rP%
EX_&wep@1
时间:1周 Wm 61
3、C++数据库开发 F <(Y
^^#A9AM
涉及技术:OTL或DTL(两个高性能、易用的C++模板类,针对各大主流数据库如:Oracle、DB2、SqlServer、MySQL等) }R^{<{KVJ
N5^:2ag
课程要求:熟练使用OTL和DTL进行数据库编程。 !?{5ET,gtN
v;SJgZK
时间:0.5周
VMp6s%m
七、软件工程 lgl/|
^ Uw
一个优秀的软件工程师不仅具备优秀的编码能力,更应该拥有优秀的软件设计思维和方法,以下课程也是轩辕学员必修的内容。 v&Kw
3!X#E
!SnpesTn
涉及技术:数据库建模、软件建模、GOF设计模式、文档编写 _N6GV$Q
课程要求:掌握数据库建模、软件建模的思想和方法,熟练使用建模工具,尝试用设计模式来思考软件的架构。至少学会编写《详细设计说明书》、《概要设计说明书》、《数据库设计说明书》。 eIJQ|p<v
Mtu8zm
时间:1周 /-T%yuU
八、项目实战 Ch3##-
c!zu0\[Id
轩辕提供多个企业级实战项目供学员选择,如:电信级IM Server、电信级Billing Server等基于UNIX或Linux下的高负荷、大压力的C++ Server端项目,同时提供Client端程序以便联调及测试。 ~0L>l J
TO<