Clean Code Training Course
Why do we need Clean Code? Programs evolve, therefore the code is continuously updated it can be very, very difficult to go back through unclean code to find and update the source code on average, the cost of writing the original code is only 40% of the total cost of a system; 60% of the cost, on average, is spent maintaining and updating code. Bad code dramatically increases that 40/60 ratio, bordering on 20/80 in the worst cases; the more unclean the code is, the more time we just spend updating it.
Course Outline
Day 1
Introduction
Good and standardized naming
-names of packages, files, classes, voids and functions as well as variables need to have meaningful names derived from their purpose
-should be readable
-should be searchable
-consider the namespace we're generating; does it make sense?
Classes, objects and data structures
-there's a difference between objects that do something and structures that simply contain data
-when to use data structures, and why
-when to use objects, and why
-OOD and abastraction
-getters/setters and why
-better to have many small classes, with many small voids and functions
Good comments
-there are good and bad comments;
-we need to know how to generate good comments and forget about the rest
Day 2
Functions
-one thing only
-small
-arguments (good and bad)
-unintended side effects
Error handling
-when to handle errors, when to let them bubble up
-if we handle an exception, what do we do with it and why
-custom error handling classes
Code Formatting: how can we better format the code
Test-Driven Design: Open discussion of Uncle Bob's idea that programs should be TDD
Requirements
There are no specific requirements needed to attend this course.
Need help picking the right course?
china@nobleprog.com or 400 6116 540
Clean Code Training Course - Enquiry
Clean Code - Consultancy Enquiry
Consultancy Enquiry
Testimonials (2)
The teacher addressed many relevant topics for clean coding with practical examples.
Ben van Oeveren - Movella
Course - Clean Code
I really liked that there were a lot of practical exercises in which you could put the learned immediately into action.
Daniel Bubla
Course - Clean Code
Upcoming Courses
Related Courses
Ant Design
7 HoursThis instructor-led, live training in China (online or onsite) is aimed at developers who wish to use Ant Design to enhance the User Experience for their React application.
By the end of this training, participants will be able to implement Ant Design's React components to develop beautiful enterprise-class web applications.
Data Analysis with Python, Pandas and Numpy
14 HoursThis instructor-led, live training in China (online or onsite) is aimed at intermediate-level Python developers and data analysts who wish to enhance their skills in data analysis and manipulation using Pandas and NumPy.
By the end of this training, participants will be able to:
- Set up a development environment that includes Python, Pandas, and NumPy.
- Create a data analysis application using Pandas and NumPy.
- Perform advanced data wrangling, sorting, and filtering operations.
- Conduct aggregate operations and analyze time series data.
- Visualize data using Matplotlib and other visualization libraries.
- Debug and optimize their data analysis code.
Mathematica - Introduction, Visualization, and Data Presentation
14 HoursThe "Mathematica - introduction, visualization and presentation of data" training is aimed at participants with basic mathematical knowledge. Mathematica, as a powerful mathematical engine, enables effective calculations, creating text documents, building charts and presenting data. Participants will gain practical skills in working with Mathematica, used, among others, in mathematics, physics, biology, financial analysis and other fields.
Mathematica for Machine Learning
14 HoursThis instructor-led, live training in China (online or onsite) is aimed at data scientists who wish to use machine learning in Mathematica for data analysis.
By the end of this training, participants will be able to:
- Build and train machine learning models.
- Import and prepare data for machine learning.
- Separate training data from test data.
- Explore deep learning and neural network applications in data analysis.
Building Web Apps using the MEAN stack
35 HoursCourse Objective:
MEAN stack is a full-stack JavaScript solution that helps you write scalable, robust, and maintainable web applications quickly and easily using MongoDB, express, AngularJS, and Node.js.
By the end of this hands-on intensive training course, the students will be able to:
- Store the data in NoSQL, document-oriented MongoDB database that brings performance and scalability.
- Use Node.js, the server-side platform built on Google V8’s runtime for building fast, scalable network applications.
- Use Express, a simple yet powerful web application development HTTP server framework built on top of Node.js.
- Use AngularJS framework that offers declarative, two-way data binding for web applications.
- Take advantage of the ‘full-stack JavaScript’ paradigm i.e. store documents in JSON-like format in MongoDB, author JSON queries in Node.js/Express.js, and forward these JSON documents back to an Angular-based frontend.
- Get acquainted with the latest web application development trends in the IT industry.
NestJS: Beginner to Advanced
14 HoursThis instructor-led, live training in China (online or onsite) is aimed at web developers who wish to use NestJS to create easily maintainable and scalable web applications.
By the end of this training, participants will be able to:
- Build a back-end application using NestJS.
- Test back-end services with Postman.
- Implement authorization and authentication in back-end applications.
- Deploy back-end applications.
Next.js 14 Advanced Development
21 HoursThis instructor-led, live training in China (online or onsite) is aimed at intermediate-level to advanced-level web developers and technical architects who wish to explore the advancements of Next.js 14 and gain the knowledge to build cutting-edge web applications.
By the end of this training, participants will be able to:
- Leverage the full potential of Next.js 14 for building complex applications.
- Utilize the latest features such as Middleware, React Server Components, and Edge Functions.
- Implement best practices for performance, scalability, and SEO.
- Troubleshoot common issues in Next.js applications effectively.
Node.js & Express.js Basics, working with PM2 & WebStorm
21 HoursAudience:
Typically, a Project Manager, Aanalyst, Developer or anyone who needs:
- Explore the node.js framework and architecture
- Explore Express.js as a solution for web development
- Assess Node.js & Express.js as solutions for web development
- Advantages and disadvantages over Java
- To have a good understanding of an application’s structure and deployment mechanisms
- To carry out Installation / production environment / architecture tasks and configuration
- To be able to assess code quality, perform debugging, monitoring
- To implement advanced production like Logging
Objectives:
- Explore the advantages and characteristics of Node.js (In comparison with Java)
- Explore Express.js: Architecture, administration (In comparison with Java EE)
- Explore and apprehend all the features and functionalities of the webstorm platform for Node.js
- Explore and apprehend all the features and functionalities of the pm2 production process manager
- Explore and apprehend advanced logging with Winston.js
Description:
The course is normally 3 days (7 hours a day) and has a heavy emphasis on hands on practice. Most of the concepts are discovered through code readings, exercises and labs.
Next.js 14 - Advanced
21 HoursThis instructor-led, live training in China (online or onsite) is aimed at advanced-level developers who wish to master the latest features in Next.js 14, optimize performance, and implement modern React techniques.
By the end of this training, participants will be able to:
- Implement advanced React hooks and concurrent features.
- Understand and utilize Next.js routing strategies effectively.
- Leverage Server Components, Server Actions, and hybrid rendering approaches.
- Optimize data fetching, caching, and incremental static regeneration.
- Use Next.js as a backend solution with Edge Functions and Edge Runtime.
- Manage state using React Context, Redux, and atomic state libraries.
- Optimize application performance for Web Core Vitals.
- Test, monitor, and deploy Next.js applications efficiently.
Qt Quick and QML
7 HoursThis instructor-led, live training in China (online or onsite) is aimed at web designers who wish to build cross platform and dynamic UIs using Qt Quick and QML.
By the end of this training, participants will be able to:
- Design prototypes for application UIs using QML.
- Create and implement an application's UI elements using QML.
- Implement animations, transforms, and transitions to create a more responsive experience for users of the application.
Building Interactive Applications with React, Redux and GraphQL
28 HoursIn this instructor-led, live training in China, participants will learn how to build React applications using Flux and GraphQL. The course covers installation, setup, integration, testing, deployment and best practices as it walks participants through the creation of a series of sample applications that demonstrate how to add additional levels of complexity and "coolness" to an application using the most advanced toolkits and techniques.
Developing applications with React requires a different kind of thinking, compared to what some developers are accustomed to, especially when coming from the mindset of other MVC frameworks such as AngularJS and Bootstrap.
This training covers the fundamentals behind of the technologies used each step of the way so that participants are not only able to build a functional application, but also understand why a particular approach is used. This lays the groundwork for thinking independently and creatively about the design and the desired results for building their own applications in the future.
React with Next.js
14 HoursThis instructor-led, live training in China (online or onsite) is aimed at web developers who wish to use Next.js to create React applications.
By the end of this training, participants will be able to:
- Develop server-side web applications and static sites in Next.js.
- Handle and store data with MongoDB.
- Secure a web application with AuthO authentication.
Spring Boot, React, and Redux
14 HoursThis instructor-led, live training in China (online or onsite) is aimed at web developers who wish to build functional front-end and back-end web applications with Spring Boot, React, and Redux.
By the end of this training, participants will be able to:
- Build a front-end application with React and Redux.
- Create RESTful APIs with Spring Boot.
- Secure web services with Spring security and JWT web tokens.
Managing Vue JS State with Vuex
7 HoursThis instructor-led, live training in China (online or onsite) is aimed at developers and programmers who wish to create, manage, and update Vue applications using Vuex.
By the end of this training, participants will be able to use Vuex for building adaptable and maintainable single-page applications.