Overview:
Anyone can write code a computer can understand, but professional developers write code *humans* can understand. Clean code is a reader-focused development style that produces software that’s easy to write, read and maintain. This Clean Code workshop alternates between lectures and exercises so that you can experience, first-hand, the practices and disciplines of the following topics:
Objective:
Upon completion of this course, students should be able to
- Professionalism, Craftsmanship, and Clean Code.
- Choosing Meaningful Names
- Writing Clean Functions
- The Proper Use of Comments
- Coding Style and Formatting
- Object-Oriented Programming vs. Procedural Programming vs functional programming.
- Error Handling Boundaries between Subsystems
- Writing Clean Classes Systems
- Plan vs. Emergence
- Concurrency
- Smells and Heuristics.
- Develop an attitude of professional craftsmanship.
- Tell the difference between good and bad code.
- Create and write good code and transform bad code into good code.
- Create good names, good functions, good objects, and good classes.
- Format code for maximum readability.
- Implement complete error handling without obscuring code logic.
- Apply effective unit testing and refactoring techniques.
- Spot the smells in your code
- Refactor your code using safe and fast refactoring techniques
- Write clean code that is more readable and maintainable
- Break long methods into smaller, more maintainable ones
- Simplify nested / complex conditional blocks
- Design the proper signature for your methods
- Remove duplicated code
- Refactor long switch/case blocks into an object-oriented design using polymorphism
Audience:
This course is for Java/C#/C++ developers who want to improve their ability to contribute to their company and their team by writing better code.
Pre-Requisite:
Object-Oriented Programming basics (inheritance; encapsulation; polymorphism; interfaces; abstract classes; virtual methods; overriding; overloading).
Course Curriculum
Why Code Quality and Code Design | |||
Activities in software development Details | 00:00:00 | ||
Code Design Details | 00:00:00 | ||
Functions, Classes, Modules Details | 00:00:00 | ||
Total Cost of Owning a Mess Details | 00:00:00 | ||
Technical Debt and Refactoring Details | 00:00:00 | ||
What is a Good Design Details | 00:00:00 | ||
Clean behaviour | |||
Meaningful Names Details | 00:00:00 | ||
The Boy Scout Rule Details | 00:00:00 | ||
Coding Standards Details | 00:00:00 | ||
Comments Details | 00:00:00 | ||
Error Handling Details | 00:00:00 | ||
Refactoring Details | 00:00:00 | ||
Object Oriented Programming | |||
The Newspaper Metaphor Details | 00:00:00 | ||
Solid principles Details | 00:00:00 | ||
GRASP principles Details | 00:00:00 | ||
Smells Within Classes Details | 00:00:00 | ||
Coupling Code smells Details | 00:00:00 | ||
Inversion of Control Details | 00:00:00 | ||
Structural Code smells Details | 00:00:00 | ||
Behavioural Code smells Details | 00:00:00 | ||
Anti patterns Details | 00:00:00 | ||
Refactoring Details | 00:00:00 | ||
Functional Programming | |||
Pure Functions Details | 00:00:00 | ||
Side effects Details | 00:00:00 | ||
Referential transparency Details | 00:00:00 | ||
Internal Iterator vs External Iterator Details | 00:00:00 | ||
Declarative Programming Details | 00:00:00 | ||
Refactoring Details | 00:00:00 | ||
Reactive Programming | |||
Streams Details | 00:00:00 | ||
Observables Details | 00:00:00 | ||
Hot vs Cold observables Details | 00:00:00 | ||
Functional reactive programming Details | 00:00:00 | ||
Design by contract | |||
Pre Conditions Details | 00:00:00 | ||
Post Conditions Details | 00:00:00 | ||
Invariants Details | 00:00:00 | ||
Interface Contracts Details | 00:00:00 | ||
Test Driven Development (TDD) | |||
Three Laws of TDD Details | 00:00:00 | ||
Reduce Coupling using Mock Objects Details | 00:00:00 | ||
Static and Dynamic Mock objects Details | 00:00:00 | ||
Using Static Analysis Tools Details | 00:00:00 | ||
Code Coverage Details | 00:00:00 | ||
Cyclometic Complexity Details | 00:00:00 |
Course Reviews
No Reviews found for this course.