资源详情
【课程内容】
Linux C++全科班课程,专注Linux/UNIX服务器端软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。课程涉及UNIX/Linux服务器端软件开发的各个方面:Linux/UNIX、C++、Boost、ACE、Oracle /MySQL、企业级的实战项目等。
课程模块
Linux C++全科班课程由以下模块组成:
[Module01 - Linux系统基础]
由于本系列课程基于Linux(或UNIX),熟悉Linux操作系统是必要的前提。 该模块的课程包含以下方面的内容:
常用Unix/Linux命令
熟悉文件管理、文本处理、进程管理、网络、系统管理等各个方面大约100个常用的命令。
深入了解bash
了解Linux默认shell: bash 的语法、命令执行、I/O重定向、任务控制等。
正则表达式基础
由于UNIX/Linux中很多强大的文本处理命令如:grep、awk、sed,还有vi编辑器等工具配合正则表达式将产生强大的威力,所以熟悉正则表达式语法是十分必要的。
四个强大的UNIX工具,特别是sed、awk在文本处理方面的能力非常强大,在Linux下工作应该掌握这几个命令。
[Module02 - Linux开发环境]
不同系统平台下的开发工具、开发环境各有不同。该模块课程关注的是Linux C++/C开发所必需的一系列工具:
vi(vim)文本编辑器
一个UNIX世界标准的文本编辑器,简约而强大,不论作为开发人员还是系统管理员,熟练使用vi是一项基本的、且不可或缺的技能。
gcc/g++ C/C++编译器
通过具体的示例讲解使用gcc/g++编译单个、多个文件、共享库、静态库等。
gdb 调试器
通过具体的示例来熟悉通过gdb来调试C/C++应用程序、修正应用程序运行期的错误。
make和makefile
学习编写makefile,使用make来构建一个完整的项目。
CVS - 版本控制
运用CVS来进行代码的版本控制。
一个非常强大的C/C++ IDE,强大的文本编辑器、与GCC工具链的无缝结合、方便的gdb前端、集成CVS/Subversion等版本控制等,提供众多的便利,大大减轻开发者的负担。
[Module03 - C++编程语言]
深入讲解C++编程语言的各个方面,即完整的C++语法讲解:
语言基础
详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。
抽象机制 - 面向对象编程
深入讲解C++的抽象机制,封装(类)、继承、多态;操作符重载、函数对象、异常处理等。
模板 - 泛型编程
详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。
[Module04 - C++标准库]
完整地讲解STL各大组件:容器、算法、函数对象、容器适配器、迭代器、迭代器适配器等;另外还包括string、I/O stream;为了更好地了解STL容器的特忄生、排序算法,额外安排:数据结构简介和常用排序算法简介2个部分的内容。
常用数据结构简介
介绍动态数组、linked-list、binary search tree、rb-tree、hash table、stack、queue、heap等常用的数据结构。
STL容器详细介绍
vector、list、deque、stack、queue、priority_queue、map、set等容器的特忄生和用法。
常见排序算法介绍
简要介绍各种常见排序算法的原理,及其实现。
STL算法和预定义函数对象
标准库提供了多达60多个算法函数,涉及排序、搜索、排列组合等多个方面,其中多数算法会使用如greater、less、binder2nd等函数对象,该单元的课程详细介绍了上述算法的使用和相关函数对象的具体作用。
迭代器
STL容器和算法高度解耦,而算法之所以能方便的作用于STL容器,维系二者的就是迭代器。
在这个单元的课程中讲介绍C++迭代器的类别、各类迭代器适配器的用法。
string - 字符串
相对于C风格的字符串处理,C++提供了更安全和方便的字符串类型 string,给class提供类众多的方法确保针对字符串处理的安全、便捷忄生。该单元的课程讲完整地介绍string的使用。
C++标准库提供的一个强大的I/O流框架。本单元详细介绍标准输入/输出、文件输入/输出、字符串输入/输出流的运用,利用操控符来控制输入/输出的格式。
数值
介绍C++数值运算的算法,如valarray、4组数值算法函数、随机数等方面的内容。
Boost是由C++标准委员会成员发起、众多C++业界高人参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中 TR1已经被纳入C++0x标准库。不论从风格和内容组织上讲,都可以认为Boost项目是C++标准库的延伸。截止到boost 1.43版本,boost项目拥有大约100个用途广泛的实用库。这部分课程将介绍服务器端开发所需要的几个组件:
容器与数据结构
介绍boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等组件。
字符串算法和文字处理
介绍boost.lexical_cast, boost.format, boost.string_algo等组件。
正则表达式
正则表达式语法(perl正则表达式语法)的讲解,boost.regex库的使用。
智能指针
详细介绍shared_ptr、scoped_ptr、weak_ptr等智能指针的使用。
函数对象相关
详细介绍boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等组件。
序列化
通过实例熟悉boost.serialization库的用法。
日期与时间
boost.date_time库的详细介绍。
多线程
作为服务器端开发必不可少的内容之一:多线程支持,boost提供了一个跨平台的线程库:boost.thread。
本单元的课程详细介绍boost.thread。
网络编程
boost.asio库,通过对各类操作系统原生的socket API以及事件多路分离、异步I/O API的封装,构成了一个忄生能优秀、便于编程的网络编程框架,使复杂的网络编程任务变得简单、安全、并且高效。
本单元的课程通过一系列的示例来展示:通过asio来构建TCP同步/异步服务器和客户端、UDP同步/异步服务器和客户端应用,从而熟悉asio的接口和编程套路。