Working with Legacy code training

Take control of your product

Working with Legacy code training logo

Information

16 hours

(2 days or 4 half days)

Remote or in-person

Java, Python, Js, PHP, C#, C++, Go...

Spanish, English, and Catalan

650 € + VAT per person

Eligible for FUNDAE funding

Testimonials

Find out what students have said about this course

The value of the training

Learn two essential pillars: to decouple your code and to test your product.

Training content

Block 1

Changing software in a hurry

  • What is legacy code and what causes it
  • How to add functionality without increasing complexity
  • Sprout method / Sprout class
  • Wrap method / Wrap class

Detecting and solving problems

  • Bad smells
  • How we define coding standards
  • How we improve team culture
  • Techniques to reduce complexity
  • Benefits of refactoring

Block 2

Decoupling our code

  • Coupling and cohesion
  • How to decouple from the framework
  • How to decouple from the database and libraries
  • Interfaces and dependency inversion
  • The Adapter pattern

Block 3

Writing the first tests

  • La importancia del testing
  • What is the test harness and coverage
  • Types of tests
  • Characterization tests

Testing coupled code

  • Understanding the problems of coupled code
  • How we test coupled code
  • Extract and override technique
  • Transforming integration tests into unit tests

Block 4

Testing complex code

  • How we test code without understanding it
  • Golden Master technique

Writing tests like a professional

  • What are they and what are double tests for
  • How and when to use test doubles
  • Mocks, spies, stubs, fakes, and dummies
  • Other testing techniques

Methodology

Nowadays, anyone can read a book or watch a video, but the really difficult part is putting what you've learned into practice. That's why, in our course, we want students to spend most of their time practicing and not listening to theory.

In pursuit of quality and satisfaction for all attendees, we believe it is essential to have two senior instructors. This allows us to have enough availability to provide personalized help while students program.

We strive to maximize learning. To achieve this, we create a dynamic environment (Flow) by working in pairs, short exercises, quickly resolving doubts, jointly discussing different solutions, and providing very close support.

From our experience as teachers, developers, and entrepreneurs, we understand the challenges of software development. Having taught over 60 courses to more than 800 students allows us to know the needs of the students and pay attention to every detail of the training.

All of the above guarantees our goal of ensuring you are satisfied, acquire the necessary skills to transform your way of developing, and start writing sustainable code.

Luis Rovirosa profile

Luis Rovirosa

Back-end Developer

Jordi Anguela profile

Jordi Anguela

Front-end Developer

Hugo Chinchilla profile

Hugo Chinchilla

Full-stack Developer

Jose Cabrera profile

Jose Cabrera

Front-end Developer

Summary in numbers

+105

Training sessions delivered

+1200

Professionals trained

+60

Companies that have trusted

Frequently asked questions

Who is it aimed at?

To teams where automated testing is not the usual practice.

To companies that add functionality very slowly and/or have many incidents.

To back-end, front-end, or mobile programmers who work with legacy code.

What is the level of the course?

The course level is intermediate. It is aimed at people who program professionally.

Being a very practical course with a lot of debate allows us to adapt to the level of the attendees.

This course will be less beneficial for those with good knowledge of object-oriented programming, clean code, and who write automated unit tests daily.

Can the course be subsidized by FUNDAE?

Yes, the course can be subsidized through FUNDAE.

Currently, 208 € can be subsidized per student.

We provide all the data for its online submission, but we do not process it.

Why should the whole team attend?

Bringing the whole team together, in addition to generating team building, allows people who usually don't work together to collaborate.

Throughout the days, we encourage dialogue and debates among the team, which help align their vision.

Nothing better than two days of training to motivate the team.

How is the course developed?

The course consists of several blocks of two hours.

Each block starts with a brief theoretical introduction.

This is followed by an exercise done in pairs where they put into practice what was covered in the theoretical part while the trainers provide constant feedback to the participants.

The block ends with a group debate, where the participants share what they have learned and we have discussions all together.

Can I sign up by myself?

The course is designed to be delivered in companies.

We also offer open courses where anyone can sign up.

Sign up and we will inform you about the upcoming courses near you.

What material do I need?

You only need to bring a computer with the development tools that each person uses installed. Ideally, the course should be taken on the same machines that the team uses in their day to day and Docker.

In person, a room with a projector or a large screen and a whiteboard for writing is needed. The ideal setup is to have a computer with two screens, two keyboards, and two mice for every two people.

Remotely, a microphone, headphones, and webcam are needed for each participant.

And after the course, what?

The exercises done in the course are specific for learning one concept at a time.

During our day-to-day, we face much more complex problems and with code in worse condition.

Therefore, after the course, we offer support to your company to help in transforming your legacy into something maintainable.

I would like to know more...

The best way to get more information is by talking to us. Fill out this form or send an email to info@codium.team and let's find a time to talk.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.