Linux C++软件工程师全科班--课程概况 JPfNf3<@My
'<~rV
* 培养目标:Linux/UNIX C++高级软件工程师 kB1]_v/
专注Linux/UNIX服务器端的软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。 Ol H{!
;~T)pG8IS
课程概况 j}XTa[
一、Linux操作系统 Q1EY!AV8
#%z--xuJL
涉及技术:Ubuntu GNU/Linux、RedHat Linux AS5 #Z<pks2
y
D
7 l&L
课程要求:熟练使用常用的Linux/UNIX命令。 L>+g;GJ
rt$zM
时间:1周 pq_DYG]
二、Linux C++开发环境搭建、开发工具的使用 $l-|abLELz
{Uxah
涉及技术:vi、GCC、GDB、Make、CVS、Subversion、Eclipse CDT !3U1HS-i62
9XWF&6w6yf
课程要求: h
Vz%{R"
熟练使用vi文本编辑器; c:I1XC
yveyAsN`B
熟练使用GCC工具链进行编译、调试、构建可执行文件或共享库/静态库; H6E@C}cyM
,Hh7'`
熟练编写Makefile; lnL&v'{
9qD/q?Hh$
熟练配置、使用CVS和Subversion两种版本控制工具; vLn<=.
XSt5s06TM
熟练配置、使用Eclipse CDT开发工具 mNN,}nHu
>"?HbR9
时间:1周 $_ub.g|
三、C++语言(8周) BF8n: }9U
C++是一门多范型编程语言,相对于C、Java、C#等C系语言,复杂度高,但一旦领悟C++的精髓,则能发挥C++语言的强大威力,为了让学员掌握C++语言编程技术,我们将这部分的课程分为四大块: @_^QBw0
1、面向过程编程: Core C++ %Y%+K5;AZ
:,rD5aOQ
涉及技术:C++基础:类型和声明、指针与数组、表达式与语句、函数、名字空间、异常、代码文件的组织 4 q}1
1<A+.W
课程要求:掌握扎实的C++基础知识 WI9'$hB\
)?~3fb6^
时间:2周 y@]4xLB]
2、面向对象编程: 类与继承(Class & Polymorphism) sN|-V+7&j
zf$&+E-
涉及技术:类设计、运算符重载、继承与多态 Hb'fEo r
9(lIz{
课程要求:正确理解面向对象的概念,用面向对象的思维和方法构建软件,正确地设计和使用类以及继承体系。 lMAmico
!jY/}M~F1
时间:2周 +4\JY"oi
3、泛型编程: C++模板(Template) SFoF]U09
vM~/|)^0sW
涉及技术:类模板、函数模板、函数对象(Function object) (Tp+43v
RtH[OZu(8
课程要求:C++模板是C++强大威力的技术支撑,是构建C++标准库、Boost类库、ACE框架等的基础,必须熟练掌握C++模板技术。 %(;jx
8~RUYsg
时间:2周 ]W<E#^
4、C++标准库应用 I=D{(%+^d
Na: M1Uhb
涉及技术:标准容器(STL容器):vector、list、map、set等等;迭代器、算法库、IO流、C语言数学库等 -cyJjLL*
课程要求:对常用的部分如容器、迭代器、常用的算法、IO流,必须牢固掌握、熟练使用,对其它部分必须有认识,以免日后工作中频繁的编写标准库中存在的内容,重复制造轮子。 A>+5~u
$>v^%E;Y4
时间: 2周 q_>DX,A
四、C++ Boost模板库 ^!k^=ST1J
Boost是由C++标准委员会成员发起、众多C++界高手参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中TR1已经被纳入C++0x标准库。这部分的课程将涉及其中一些常用的类库。 S#0y\
jjBcoQU$o
涉及技术:Aiso、Thread、Interprocess、System、File System、Date Time、Format、Array、Lambda、Signals、TR1中的部分(Regex、Tuple、Smart Point、Hash Map、Hash Set等) gXI_S9z
v}A] R9TY
课程要求:必须掌握的类库有:Aiso、Thread、Date Time以及TR1中部分内容。 Y?%MPaN:
RBr
时间:2周 JfKhYRl
五、ACE框架 z/ T|
ACE是一个被广泛使用、设计优雅、高性能的C++通信框架(不仅仅是通信框架),其设计及实现被众多开源框架所借鉴。是构建稳定、高性能、高吞吐量、跨平台的服务器端程序的优秀框架。 _tL+39 u
S;NChu?8
涉及技术:ACE Reactor框架、ACE Proactor框架、MultiThread支撑、Timer(Scheduler)、ACE Service Configurator WhE5u&`
yGgHd=?
课程要求:以上列举的部分是服务器端编程必不可少的部分,均需熟练使用。 `}k!SqG
9pE)S^P
时间:2周 %8`zaa
六、数据库开发 M_MiY|%V/K
mmY~V:,Kd
专注Oracle 10g、MySQL5.0+。这部分的课程分为以下三大块: @
:Q];rc
1、SQL语言: 9;dP7o
(HLy;^#R
涉及技术:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL %#Wg>6
;w4rwL
课程要求:熟练使用SQL语言。 Xn.zN>mB
9Q=g]int u
时间:1周 OTtSMO
2、Oracle和MySQL存储过程、函数、触发器 z%ljEI"<C
kr8NKZ/
涉及技术:PL/SQL 6_;3
xp/u, q
课程要求:熟练编写Oracle和MySQL存储过程、函数、触发器 \s&w0V`Y
mDipP
时间:1周 RTA9CR)JP4
3、C++数据库开发 @SPmb o
<<(~'$~,L
涉及技术:OTL或DTL(两个高性能、易用的C++模板类,针对各大主流数据库如:Oracle、DB2、SqlServer、MySQL等) }llzO
yHQ.EZ~%
课程要求:熟练使用OTL和DTL进行数据库编程。 T7m rOp
5yp~PhHf
时间:0.5周 ;5my(J*b
七、软件工程 `h$6MFC/g
一个优秀的软件工程师不仅具备优秀的编码能力,更应该拥有优秀的软件设计思维和方法,以下课程也是轩辕学员必修的内容。 *[
Wh9 ,H
HT
A-L>Cee
涉及技术:数据库建模、软件建模、GOF设计模式、文档编写 OI %v>ns
课程要求:掌握数据库建模、软件建模的思想和方法,熟练使用建模工具,尝试用设计模式来思考软件的架构。至少学会编写《详细设计说明书》、《概要设计说明书》、《数据库设计说明书》。 @U;-5KYYi
A42At]
时间:1周 fouy??
八、项目实战 |:!#kA
-iBu:WyY$
轩辕提供多个企业级实战项目供学员选择,如:电信级IM Server、电信级Billing Server等基于UNIX或Linux下的高负荷、大压力的C++ Server端项目,同时提供Client端程序以便联调及测试。 mwbkXy;8
.^@+$}
涉及技术:本项目将涉及学习阶段所有内容。 WSDNTfpI
_<