Linux C + + training hairCourse Modules
The Linux C + + course consists of the following modules:
Module01-linux System Basics
Since this series of courses is based on Linux (or Unix), familiarity with the Linux operating system is a prerequisite. The module's courses include the following:
- Common Unix/linux Commands
Familiar with the file management, text processing, process management, network, System management and other aspects of about 100 commonly used commands.
- Learn more about Bash
Learn about the Linux default shell:bash syntax, command execution, I/O redirection, Task control, and more.
- Regular Expression Basics
Since many powerful text processing commands in unix/linux such as grep, awk, sed, and vi editors, and other tools with regular expressions will have powerful power, it is necessary to familiarize yourself with regular expression syntax.
- Find, grep, sed, awk
Four powerful UNIX tools, especially SED and awk, are very powerful in text processing, and these commands should be mastered when working in Linux.
Module02-linux Development environment
The development tools and development environment under different system platforms are different. This module course focuses on a range of tools that are necessary for Linux C++/C development:
- VI (VIM) text editor
A UNIX world-standard text editor, simple and powerful, skilled use of VI is a basic and indispensable skill, both as a developer and as a system administrator.
- gcc/g++/C + + compiler
Use gcc/g++ to compile individual, multiple files, shared libraries, static libraries, and more with specific examples.
- GDB Debugger
Use specific examples to familiarize yourself with debugging a C + + application through GDB and fix the application run-time error.
- Make and Makefile
Learn to write makefile and use make to build a complete project.
- CVS-Version Control
Use CVS for version control of your code.
- Eclipse CDT
A powerful, C + + IDE, a powerful text editor, seamless integration with the GCC toolchain, easy gdb front end, integrated cvs/subversion, and more, provide many conveniences that greatly reduce the burden on developers.
Module03-c++ programming language
In-depth explanation of all aspects of the C + + programming language, namely the complete C + + syntax:
- Language Basics
Details about variables, expressions, statements, pointers, arrays, process controls, functions, file organization, and more.
- Abstract mechanism-object-oriented programming
An in-depth explanation of C + + abstraction mechanisms, encapsulation (class), inheritance, polymorphism, operator overloading, function objects, exception handling, and so on.
- Templates-Generic programming
This paper introduces the template mechanism of C + +, the content of class template, function template, template special and so on.
Module04-c++ Standard Library
A complete explanation of STL components: containers, algorithms, function objects, container adapters, iterators, iterator adapters, and so on, including string, I/O stream, for better understanding of STL container characteristics, sorting algorithms, Additional arrangements: A brief introduction to the data structure and a summary of common sorting algorithms 2 sections of the content.
- Introduction to commonly used data structures
This paper introduces the commonly used data structures such as dynamic array, linked-list, binary search tree, rb-tree, hash table, stack, queue, heap, etc.
- STL Container Detailed description
Vector, list, deque, stack, queue, priority_queue, map, set and other container characteristics and usage.
- Introduction to common sorting algorithms
The principle and implementation of various common sorting algorithms are briefly introduced.
- STL algorithms and pre-defined function objects
The standard library provides up to 60 algorithmic functions, involving sorting, searching, permutation, and so on, most of which use function objects such as greater, less, binder2nd, which details the use of the above algorithm and the specific role of the related function object.
- Iterators
STL containers and algorithms are highly decoupled, and the algorithm is convenient for the STL container, which is the iterator that sustains both.
In this module, we introduce the categories of C + + iterators and the usage of various types of Delle adapters.
- String-strings
In contrast to C-style string processing, C + + provides a more secure and convenient string type, providing class with a variety of methods to ensure the security and convenience of string processing. This module provides a complete introduction to the use of string.
- I/O stream
The C + + standard library provides a powerful I/O flow framework. This module details the use of standard input/output, file input/output, string input/output streams, and controls the input/output format using the operator.
- value
This paper introduces the arithmetic of C + + numerical operation, such as Valarray, 4 sets of numerical algorithm function, random number and so on.
Module05-c++ Boost
Boost is a wide-ranging, high-quality, widely used standard library of C + + that has been designed and implemented by a group of C + + Standards Board members, including TR1 has been incorporated into the C++0X standard library. The boost project is an extension of the C + + standard library, both in terms of style and content organization. As of the boost 1.43 release, the Boost project has approximately 100 useful libraries for a wide range of applications. This section introduces several components that are required for server-side development:
- container and data structure
Introduction boost.any, Boost.tuple, Boost.array, boost.unordered ( Based on hash table, i.e. Hash_map and hash_set) components.
- string arithmetic and word processing
describes components such as Boost.lexical_cast, Boost.format, Boost.string_algo, and so on.
- Regular expression
Regular expression syntax (Perl regular expression syntax), Boost.regex the use of libraries. The
- smart pointer
details the use of smart pointers such as shared_ptr, Scoped_ptr, weak_ptr, and so on.
- Function Object related
Details boost.bind, BOOST.MEM_FN, Boost.function, Boost.ref, BOOST.LAMBDA, and other components.
- Serialization
is familiar with the use of the Boost.serialization library through an instance. A detailed description of the
- date and time
Boost.date_time Library.
- Multithreading
is one of the essential components of server-side development: Multi-threaded support, Boost provides a cross-platform line libraries: Boost.thread.
The courses in this module are detailed in Boost.thread. The
- network programming
Boost.asio Library provides an excellent, easy-to-program network programming framework through the encapsulation of native socket APIs for various operating systems, as well as event multiplexing and asynchronous I/O APIs. Make complex network programming tasks simple, secure, and efficient.
The course of this module is presented through a series of examples: Build TCP synchronous/asynchronous servers and clients, UDP synchronous/asynchronous servers, and client applications with ASIO to familiarize yourself with ASIO interfaces and programming routines.
Module06-c++ ACE
ACE is a widely used, elegantly designed, high-performance C + + communication framework (not just a communication framework), and its design and implementation are referenced by many open source frameworks. is an excellent framework for building stable, high-performance, high-throughput, cross-platform server-side programs. The course of this module covers the following aspects:
- Ace Base Network I/O related objects
The use of Ace_sock, Ace_sock_acceptor, Ace_sock_connector, ace_inet_addr and other classes is introduced in detail.
- Reactor frame
The ACE reactor framework simplifies the development of event drivers, and event-driven is a fundamental feature of many networked applications where common event sources include I/O events, POSIX signals or windows handle firing, and timer expiration.
This module introduces the use of Ace_event_handler, Timer, Ace_reactor and other classes, and uses the framework to build a simple multiplayer chat room application.
- Task Framework
The ACE task framework provides powerful and extensible object-oriented concurrency capabilities, such as deriving threads in object-based contexts (context), and passing messages and queuing messages between objects executing in different threads.
- Acceptor-connector Frame
The ACE Acceptor-connector Framework implements the Acceptor-connector pattern by releasing the activity, 2, and the activities required for the connection and initialization of peer services in networked applications, and the coupling of the processing that they perform once they are connected and initialized, by lifting: 1. , which enhances software reuse and scalability.
- Proactor Frame
The Proactor framework introduces the asynchronous I/O mechanism, which preserves the event multiplexing of the reactor framework, avoids the overhead of multithreading, and alleviates the bottleneck effect of reactive synchronous I/O.
MODULE07-Database development
As the most important part of server-side application data persistence, database occupies a very important position in server-side application development. This module is mainly for Oracle 10g and MySQL 5.1 relational database management system. This module contains the following content:
- SQL language
Provides details of the syntax and use of DML, DDL statements.
- Oracle PL/SQL
Provides a comprehensive overview of Oracle PL/SQL syntax, as well as writing stored procedures, functions, and triggers using PL/SQL.
- MySQL stored procedures
Write MySQL stored procedures, functions, triggers.
- C + + OTL
Otl:oracle, ODBC, and Db2-cli Template Library. Through the OTL, it is convenient and efficient to communicate with all kinds of mainstream relational database such as DB2, Oracle, Infomix, Sybase, MySQL and so on.
MODULE08-Project Combat
Project combat can choose one of the following items:
- Project 1:x-messenger Servers
IM (Instant Messaging) server farm, similar to MSN, QQ and other IM servers. Can be implemented based on Boost.asio or ACE.
- Project 2:x-messenger client
im (instant messaging) clients software, similar to MSN, QQ and other IM tools. Modern IM client features such as contacts management, peer-to file transfer, one-to-one text chat, group chat, etc. can be implemented based on Boost.asio or ACE.
- Project 3:x- Crawler
A web crawler, the front end of a search engine, collects data on the Web (Web content, parsing URLs) for use by search engines.
- Other Items , which can be defined by the learner.