Course: Defensive C++
duration: 10 hours |
Language: English (US) |
access duration: 180 days |
Details
Using high-quality code in any programming language involves writing code that is clear, comprehensible, and maintainable. This means that your code needs to follow sound software engineering principles, and it is also important to know and deal with the different kinds of errors that might occur in code. Use this course to explore key principles of software engineering and learn how the preprocessor, compiler, and linker come together to build your C++ executable. You’ll learn more about avoiding fatal coding errors, adopting defensive coding techniques, and following best practices and other code niceties. You will also examine different kinds of errors in code, including compiler, linker, runtime, and logic errors. You'll explore the most important features released in C++20, including the ranges library, coroutines, concepts, and modules. Next, you’ll discover the role of defensive programming and defensive design and the implementation of a defensive barrier in your code. You’ll also learn how to use preconditions to check for inputs to your code and postconditions to verify the final results returned by your code. Next, you'll explore how to automate the management of resources that need to be explicitly acquired and reduce resource management issues through the RAII technique. Finally, you’ll examine the technical specifications of design by contract and the role of its key components - preconditions, invariants, and postconditions.
Result
After completing this course, you are ready to work with C++ in a defensive way.
Prerequisites
You have some basic programming knowledge.
Target audience
Software Developer, Web Developer
Content
Defensive C++
Defensive C++: Software Engineering Principles & Types of Errors
Using high-quality code in any programming language involves
- writing code that is clear, comprehensible, and maintainable. This
- means that your code needs to follow sound software engineering
- principles, and it is also important to know and deal with the
- different kinds of errors that might occur in code. Use this course
- to explore key principles of software engineering and learn how the
- preprocessor, compiler, and linker come together to build your C++
- executable. You will also examine different kinds of errors in
- code, including compiler, linker, runtime, and logic errors. When
- you are finished with this course, you will have the skills and
- ability to implement software engineering principles to write clean
- and comprehensible code.
Defensive C++: Defensive Programming & Defensive Design
While defensive design involves planning for contingencies that
- might occur in a software development life cycle, defensive
- programming entails writing code such that it continues to function
- predictably in the presence of unforeseen circumstances. Through
- this course, explore the role of defensive programming and
- defensive design and the implementation of a defensive barrier in
- your code. You'll investigate various error reporting techniques,
- recognize scenarios for implementing a technique rather than
- exceptions, and distinguish between using exceptions and assertions
- to raise errors. The course will also help you discover how to use
- preconditions to check for inputs to your code and postconditions
- to verify the final results returned by your code. At the end of
- this course, you will have the skills and ability to follow a
- defensive approach to your software development and use exceptions
- and assertions to flag preconditions and check for
- postconditions.
Defensive C++: Writing Defensive C++ Code
Writing good, robust, and maintainable C++ code involves
- understanding the intricacies of the language and avoiding common
- pitfalls. Use this course to learn more about avoiding fatal coding
- errors, adopting defensive coding techniques, and following best
- practices and other code niceties Examine some common coding
- errors, the correct way to set up constructors in code, and the
- pitfalls of overriding non-virtual functions. You will also explore
- object slicing errors, how to cast objects to other types, and the
- use of smart pointers to manage resources in C++. Finally, you will
- understand the implications of the static initialization order
- fiasco in C++ and how you can avoid it. At the end of this course,
- you will have the knowledge and skills to write robust, defensive
- C++ code.
Defensive C++: Managing Memory
Modern C++ offers the use of smart pointers in the C++ standard
- library, which uses the resource allocation is initialization
- (RAII) technique to free programmers from the burden of resource
- management. Take this course to discover the various pitfalls
- involved in manually managing memory on the free store in C++.
- Through this course, you'll explore how to automate the management
- of resources that need to be explicitly acquired and reduce
- resource management issues through the RAII technique. When you are
- finished with this course, you should be able to manage memory and
- other resources in your C++ code using smart pointers from the
- standard library.
Defensive C++: Design by Contract & Features in C++
Design by contract (DbC) involves two parties, a client and a
- supplier, collaborating based on mutual obligations and benefits.
- DbC was intended to be released as a part of the C++ language in
- C++20, but will now be part of the C++23 release. Use this course
- to examine the technical specifications of design by contract and
- the role of its key components - preconditions, invariants, and
- postconditions. You'll explore the most important features released
- in C++20, including the ranges library, coroutines, concepts, and
- modules. You'll also discover the weaknesses in defensive
- programming and when to implement offensive programming techniques
- in your code. When you are finished with this course, you will be
- able to tackle complex projects built using C++ and write code for
- them using software engineering principles and defensive
- programming techniques.
Course options
We offer several optional training products to enhance your learning experience. If you are planning to use our training course in preperation for an official exam then whe highly recommend using these optional training products to ensure an optimal learning experience. Sometimes there is only a practice exam or/and practice lab available.
Optional practice exam (trial exam)
To supplement this training course you may add a special practice exam. This practice exam comprises a number of trial exams which are very similar to the real exam, both in terms of form and content. This is the ultimate way to test whether you are ready for the exam.
Optional practice lab
To supplement this training course you may add a special practice lab. You perform the tasks on real hardware and/or software applicable to your Lab. The labs are fully hosted in our cloud. The only thing you need to use our practice labs is a web browser. In the LiveLab environment you will find exercises which you can start immediately. The lab enviromentconsist of complete networks containing for example, clients, servers,etc. This is the ultimate way to gain extensive hands-on experience.
Sign In
WHY_ICTTRAININGEN
Via ons opleidingsconcept bespaar je tot 80% op trainingen
Start met leren wanneer je wilt. Je bepaalt zelf het gewenste tempo
Spar met medecursisten en profileer je als autoriteit in je vakgebied.
Ontvang na succesvolle afronding van je cursus het officiële certificaat van deelname van Icttrainingen.nl
Krijg inzicht in uitgebreide voortgangsinformatie van jezelf of je medewerkers
Kennis opdoen met interactieve e-learning en uitgebreide praktijkopdrachten door gecertificeerde docenten
Orderproces
Once we have processed your order and payment, we will give you access to your courses. If you still have any questions about our ordering process, please refer to the button below.
read more about the order process
Een zakelijk account aanmaken
Wanneer u besteld namens uw bedrijf doet u er goed aan om aan zakelijk account bij ons aan te maken. Tijdens het registratieproces kunt u hiervoor kiezen. U heeft vervolgens de mogelijkheden om de bedrijfsgegevens in te voeren, een referentie en een afwijkend factuuradres toe te voegen.
Betaalmogelijkheden
U heeft bij ons diverse betaalmogelijkheden. Bij alle betaalopties ontvangt u sowieso een factuur na de bestelling. Gaat uw werkgever betalen, dan kiest u voor betaling per factuur.
Cursisten aanmaken
Als u een zakelijk account heeft aangemaakt dan heeft u de optie om cursisten/medewerkers aan te maken onder uw account. Als u dus meerdere trainingen koopt, kunt u cursisten aanmaken en deze vervolgens uitdelen aan uw collega’s. De cursisten krijgen een e-mail met inloggegevens wanneer zij worden aangemaakt en wanneer zij een training hebben gekregen.
Voortgangsinformatie
Met een zakelijk account bent u automatisch beheerder van uw organisatie en kunt u naast cursisten ook managers aanmaken. Beheerders en managers kunnen tevens voortgang inzien van alle cursisten binnen uw organisatie.
What is included?
Certificate of participation | Yes |
Monitor Progress | Yes |
Award Winning E-learning | Yes |
Mobile ready | Yes |
Sharing knowledge | Unlimited access to our IT professionals community |
Study advice | Our consultants are here for you to advice about your study career and options |
Study materials | Certified teachers with in depth knowledge about the subject. |
Service | World's best service |
Platform
Na bestelling van je training krijg je toegang tot ons innovatieve leerplatform. Hier vind je al je gekochte (of gevolgde) trainingen, kan je eventueel cursisten aanmaken en krijg je toegang tot uitgebreide voortgangsinformatie.
FAQ
Niet gevonden wat je zocht? Bekijk alle vragen of neem contact op.