Discover Classes. Earn Rewards.

TDD and Refactoring Legacy Code Using Java is unfortunately unavailable

Thankfully we have 3 other Java Classes for you to choose from. Check our top choices below or see all classes for more options.

Java Programming Level 1: Introduction for Programmers

ONLC Training Centers @ 2 Park Ave, New York, NY

Master Java programming with this live, instructor-led course. Ideal for programmers with prior experience in other languages, you'll learn how Java works, manipulate strings, perform math operations, work with Java operators and loops, and gain a deeper understanding of Object Oriented Programming concepts. Enhance your skills and expand your programming knowledge at ONLC Training Centers.

(7) Intermediate 18 and older
$1,195

3 sessions

Gift it!

Java Programming Level 2: Advanced Programming

ONLC Training Centers @ 2 Park Ave, New York, NY

Take your Java programming skills to the next level with advanced techniques in this comprehensive course. Learn encryption, regular expressions, functional programming with lambda expressions, processing data with streams, and unit testing. Enhance your expertise and become a proficient Java programmer.

(7) Advanced 18 and older
$995

2 sessions

Gift it!

Java Programming Level 1: Introduction for Non-Programmers

ONLC Training Centers @ 626 Reckson/RexCorp Plaza, Uniondale, NY & Virtually Online

Learn the fundamentals of Java programming and gain a strong foundation to further your skills in this introductory course for non-programmers. Explore Java syntax, control code, data types, and object-oriented principles, as well as GUI development and database connectivity. Ideal for new developers or those looking to transition to the Java platform.

(7) Beginner 18 and older
$1,595

4 sessions

Gift it!
See all Java classes NYC

TDD and Refactoring Legacy Code Using Java

  • All levels
  • 18 and older
  • $2,095
  • (Exact location to be announced), New York, NY
  • over 4 sessions

Start Dates (0)

  • $2,095
  • NY - Manhattan @ (Exact location to be announced), New York, NY 00000
  • over 4 sessions
Showing 10 of 0

Class Description

Description

What you'll learn in this java class:

All HOTT courses are available face-to-face, remote-live, or on-site at your facility.

This course provides students with hands on experience learning Test Driven Development (TDD) using JUnit. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems. Student will create tests and code that will be more likely to meet and exceed requirements. Code that receives “test coverage” will not break existing systems, because tests are passed before code is checked in.

Students will spend time working with the issues involved in refactoring legacy code, safely cutting into an already deployed system. Students will work on looking for, or creating “seams” to more safely improve code or add features, and work on identifying “code smells” that need attention in a productive system.

Finally, students will explore dependency issues as well as techniques to better understand and improve complex systems.

Students will also examine TDD and refactoring legacy code in other languages like C# to gain a broader view of options and issues working in a multi-language shop. Comprehensive labs using Java provide facilitated hands on practice crucial to developing competence and confidence with the new skills being learned.

Course Prerequisites: Java SE 5+ programming experience and an understanding of object-oriented design principles. HOTT's Java Programming course or equivalent knowledge provides a solid foundation.

Course Overview

Why TDD? Think Twice, Write Production Code Once

  • Utilizing a Safety Net of Automated Testing
  • Agile Development Concepts
  • Eliminating Bugs Early
  • Smoothing Out Production Rollouts
  • Writing Code Faster via Testing
  • Reducing Technical Debt
  • Practicing Emergent Design
  • Making Changes More Safe
  • The Importance of Regression Testing
Basic Unit Testing
  • JUnit
  • 3.x vs 4.0 JUnit Testing
  • Adding Complexity to Initial Simple Tests
  • Making Tests Easy to Run
  • The TDD Pattern: Red, Green Refactor
  • Using Methods of the Assert Class
  • Boundary Testing
  • Unit Test Limitations
Comprehensive Unit Testing Concepts
  • Using Declarative-Style Attributes
  • Using Hamcrest Matchers for More Complex Scenarios
  • Using Test Categories
  • Exception Handling in Tests
  • JUnit Test Initialization and Clean Up Methods
  • Writing Clean and Dirty Tests
  • Testing with Collections, Generics and Arrays
  • Negative Testing
Mocks, Fakes, Stubs and Drivers
  • TDD Development Patterns
  • Naming Conventions for Better Code
  • Using Mock Objects
  • Using Fakes
  • Using Stubs
  • Test Doubles
  • Manual Mocking
  • Mocking with a Mock Framework
  • Self-Shunt Pattern
Database Unit Testing
  • Mocking the Data Layer
  • Identifying what Should Be Tested in Databases
  • Stored Procedure Tests
  • Schema Testing
  • Using NDbUnit to Set Up the DB Test Environment
Refactoring Basics
  • Refactoring Existing Code
  • Restructuring
  • Extracting Methods
  • Removing Duplication
  • Reducing Coupling
  • Division of Responsibilities
  • Improving Clarity and Maintainability
  • Test First - then Refactor
  • More Complex Refactoring Considerations
Patterns and Anti-Patterns in TDD
  • The SOLID Principles
  • Factory Methods
  • Coding to Interface References
  • Checking Parameters for Validity Test
  • Open/Closed Principle: Open to Extension, Closed to Change
  • Breaking Out Method/Object
  • Extract and Override Call
  • Extract and Override Factory Method
  • Singleton Pattern
  • Decorator Pattern
  • Facade Pattern
  • State Pattern
  • MVP, MVC and MVVM Patterns
  • Finding and Removing Code Smells/Antipatterns
Refactoring Legacy Code
  • Reducing Risk of Change
    - Eliminating Dependencies
    - Characterization Tests as a Safety Net
    - Introducing Abstractions to Break Dependencies
  • Analyzing Legacy Code
    - Identifying Pinch Points with Effect Analysis
    - Identifying Seams for Expansion and Testing
    - Listing Markup
  • Minimizing Risk of Adding New Behavior
    - Sprout Method
    - Sprout Class
    - Wrap Method
    - Wrap Class
  • Dealing with Code that's Difficult to Test
    - Globals and Singletons in Tests
    - Inaccessible Methods and Fields
  • Using Smells to Identify What to Refactor
    - Dealing with Monster Methods
    - Dealing with Excessively Complex, Large Classes
    - Identifying and Eliminating Duplication
    - Other Smells
  • Dealing with Large Legacy Systems
    - Preserving Signatures
Code Coverage
  • White Box vs Black Box Testing
  • Planning to Increase Code Coverage Over Time
    - Goal 80% or More Test Coverage
    - Statement Coverage
    - Condition Coverage
    - Path Coverage
  • Test Harnesses
  • Unit-Testing Harnesses
System, Regression and Acceptance Testing
  • Statistical Sampling
  • Usability Testing
  • Test Protocols
  • Regression Testing
  • Acceptance Testing
Continuous Integration Servers/Automated Testing
  • Early Warning of Conflicts
  • Metrics and Tools
  • Checking into Repository
    - Team Foundation Server (TFS)
    - Subversion
  • Continuous Integration Servers
    - CruiseControl.NET
    - Hudson
    - Automating the Build/Deployment
Risks Changing Legacy/Production Systems
  • Refactoring
  • Coupling and Cohesion Issues
  • Taking Small Tested Steps
  • Anti-Pattern: Big Bang, Boom

Automating the Build/Deployment

Refund Policy

Tuition includes all course materials. Students may withdraw before the second day of class to receive a 100% refund, provided course materials are returned to the instructor. Prorated refunds may be granted for withdrawals after the first day.

Cancellations and Changes: There are no cancellation fees.

Attendance Requirements: Students must attend each day of a course and successfully complete hands on exercises in order to receive a certificate of completion. If a student wishes to retake any portion of a class that he or she completes, the student may do so within 12 months at no extra cost.

Intended Audience: Hands On Technology Transfer, Inc., provides IT training designed for technology professionals who wish to quickly upgrade their computer skills. In most states, the employer bears all training costs.

Reviews of Classes at Hands On Technology Transfer, Inc. (7)

(4.6-star rating across 7 reviews)
See reviews for other classes at Hands On Technology Transfer, Inc.
loading...
Hide Reviews

Review Summary by CourseHorse

Students who have taken classes at TDD and Refactoring Legacy Code Using Java have praised the instructors for their teaching abilities and comprehensive materials. They were impressed by the level of detail covered in the training exercises and found the infrastructure provided, including remote access, to be excellent. The training experience was described as useful, with instructors readily available to answer questions and provide assistance. Students were able to learn valuable skills in the classes and walk away with a deeper understanding of test-driven development (TDD) and refactoring legacy code using Java. Quotes: - "I highly recommend him for any technical course." - "I was impressed by the extent of the detail covered in the training exercise." - "The instructor made every attempt to answer questions and provide assistance when needed."

Similar Classes

Benefits of Booking Through CourseHorse

  • Booking is safe. When you book with us your details are protected by a secure connection.
  • Lowest price guaranteed. Classes on CourseHorse are never marked up.
  • This class will earn you 20950 points. Points give you money off your next class!

Questions & Answers (0)

Get quick answers from CourseHorse and past students.

Hands On Technology Transfer, Inc.

HOTT delivers instructor-led technical training across the United States, Canada and the United Kingdom. Whether you attend in person, remote-live or on-demand, our classroom-based training philosophy zeroes in on your ability to work more productively and with higher quality results after training....

Read more about Hands On Technology Transfer, Inc.

CourseHorse Approved

This school has been carefully vetted by CourseHorse and is a verified NYC educator.

Hands On Technology Transfer, Inc.

Hands On Technology Transfer, Inc.

All classes at this location

Google Map

Give This Course as a Gift Card

  • Thousands of classes
  • No expiration
  • Unique and memorable gifts for any occasion
  • Personalized
  • Explore a passion, gain a new skill, discover a new hobby, engage in a memorable experience
  • Instant delivery
  • Lock in a price with the Inflation Buster Gift Card Price Adjuster™

Buy a Gift Card

Book this Class as a Group Event

Booking this class for a group? Find great private group events

Or see all Coding Group Events

Explore group events and team building activities ranging from cooking, art, escape rooms, trivia, and more.

CourseHorse Gift Cards

  • Creative & unique gift for any occasion
  • Thousands of classes & experiences
  • No expiration date
  • Instant e-delivery (or choose a date)
  • Add a personalized message
  • Lock in a price with the Inflation Buster Gift Card Price Adjuster™
Buy a Gift Card
gift card with the CourseHorse logo gift card with the CourseHorse logo
Loading...