Best Practices for Writing Clean Code

This ninety-minute free webinar (with an optional thirty minutes at the end for Q&A) will help you quantify software qualities and understand the meaning of CLEAN code. Quality in delivered software is intangible and very different from quality in physical goods. Some external attributes of quality software—free from defects and easy to maintain—reflect the code’s internal qualities. When classes and methods are cohesive, non-redundant, well-encapsulated, assertive, and explicitly coupled, they are less prone to mistakes and far easier to debug, test, and maintain. David Bernstein asserts that paying attention to code quality helps us focus on the key principles, patterns, and practices used by expert developers. If you ignore critical code quality attributes, iterative development practices can quickly degrade code into a maintenance nightmare. Join me and deeply dive into the code qualities that make software more maintainable and less bug friendly. Create software that provides value now and is easy to change and extend so it can continue delivering value far into the future.

Benefits

Attending this webinar will show you how to create higher-quality software that will enable you to:

  • Employ techniques that reduce defects.
  • Quickly implement effective design alternatives.
  • Collaborate more smoothly with other team members.
  • See how testability directly reflects software quality.
  • Establish standards and practices for building software.
  • Avoid upfront overdesign and build just in time.
  • Support an iterative process without excessive rework.
  • Support collaborative code ownership and embrace a common aesthetic.

Who Should Attend

This training is for all team members and will benefit architects; designers and developers; development and product managers; software engineers/programmers; testers and QA engineers; and technical analysts, leads, and writers. Familiarity with basic Object-Oriented (OO) concepts and terminology is recommended.

Agenda

  • What is Quality?—Quality in Goods and Services; Software Quality is Different; Correctness Isn’t Enough; Maintainability; Change Happens; Dealing with Change; Changeable Code; Code Pathologies; Larger Projects are Harder; Quality in Software; Six Specific Code Qualities.
  • Cohesive—What is Cohesion? Language and Software; Class Cohesion; Method Cohesion; Pathologies of Poor Cohesion.
  • Non-Redundant—Finding Redundancy; Type is Redundancies; Can Non-Identical Code be Redundant? Can Identical Code be Non-Redundant? Redundant Intent; Code Investment or Code Debt; Pathologies of Redundancy.
  • Encapsulated—What Can Be Encapsulated? What You Don’t Know Can’t Hurt You; Encapsulate by Policy; Optimizing for Performance; Can You Encapsulate it? Many Ways to Encapsulate; Pathologies of Poor Encapsulation.
  • Assertive—Being Assertive; Assertive or Inquisitive; Prefer Assertiveness; Pathologies of Inquisitiveness.
  • Testable—Code Must Be Testable; Testability Guiding Design; Pathologies of Poor Testability.
  • Explicit—What are Explicit Relationships? Good Coupling and Bad Coupling; Kinds of Coupling; Coupling Example; Pathologies of Bad Coupling.
  • Conclusion—The Six Code Qualities; CREATE Quality Software; Code Qualities Guide Us; Thank You!

Your Instructor, David Bernstein

David BernsteinMy continuing passion for software design and construction has led me to train more than 10,000 developers since 1990 for clients including Microsoft, IBM, Yahoo, Boeing, AT&T, Sprint, Medtronic, SunGard, State Farm, MetLife, and Weyerhaeuser. As a longtime IBM consultant, I trained software engineers around the globe, giving them the skills to write the next generation of applications and operating system software while earning one of the highest satisfaction ratings in the history of IBM education. Since 2006, I’ve devoted my consulting practice to providing organizations with training and coaching for software developers and teams transitioning to Agile and Scrum.

See the Training Schedule for upcoming classes and webinars or contact me for onsite training at your organization.

View a PDF of this description.