Crafted Code Training
This course is designed to help developers write code that is well-crafted. Meaning code that is clean, testable, maintainable, and an expression of the business domain.
The 2-day course is entirely hands-on, designed to teach developers practical techniques they can immediately apply to real-world projects.
Software Craftsmanship is at the heart of this course. Throughout, you will learn about the Software Craftsmanship attitude to development and how to apply it to your workplace.
Writing Clean Code is difficult. Cleaning existing code, even more so. You should attend if you want to:
- Write clean code that is easy to understand and maintain
- Become more proficient in Test-Driven Development (TDD): using tests to design and build your code base
- Focus your tests and production code according to business requirements using Outside-In TDD (a.k.a. the London School of TDD)
Clean code necessitates good design. In the process of driving your code through tests, you will learn how to:
- Understand design principles that lead to clean code
- Avoid over-engineering and large rewrites by incrementally evolving your design using tests
Once you have an understanding of the principles at work, we will apply them to Legacy Code to help you gain confidence in improving legacy projects through testing, refactoring and redesigning.
- TDD lifecycle and the Outside-In style of TDD
- Writing unit tests that express intent, not implementation
- Using unit tests as a tool to drive good design
- Expressive code
- Testing and refactoring Legacy Code
- Introduction to SOLID Principles and Domain-Driven Design
The course is fully hands-on and developers will be writing a lot of code.
Software developers that:
- are familiar with at least one Object-Oriented language
- are able to understand Java or C#
- can write and execute unit tests using a framework (such as JUnit, NUnit, etc.)
- have a basic understanding of mock objects
- bring their own laptops
- have a development environment consisting of:
- their favourite Object-Oriented language
- a unit test framework
- a mocking library
- be able to create projects, build source code and run test cases in their development environment
In addition, a distributed version-control system such as Git is desirable.
Sandro Mancuso, Software Craftsman
Software craftsman, author, and founder of the London Software Craftsmanship Community (LSCC). Sandro has been coding since a very young age but only started his professional career in 1996. He has worked for startups, software houses, product companies, international consultancy companies, and investment banks.
During his career Sandro had the opportunity to work in a good variety of projects, with different languages, technologies, and across many different industries. Sandro has a lot of experience in bringing the Software Craftsmanship ideology and Extreme Programming practices to organisations of all sizes. Sandro is internationally renowned by his work on evolving and spreading Software Craftsmanship and is frequently invited to speak in many conferences around the world. His professional aspiration is to raise the bar of the software industry by helping developers become better at and care more about their craft.
"I had a chance to see benefits of applying Scrum in a small project during training. As a result it is time to apply to the real life. I am grateful to our trainers for his effective education, support and patience."
Project Manager, Türk Telekom
"I had previously attended Scrum training given by another training company. Even though the content of the class was very logical to me I had hard time applying in real life. Because class was lack of practical knowledge. However when I attended ACM's training I learnt how to use Scrum in a project and we discussed about the most common problems. Now I am able to confidently suggest applying Scrum in all our projects to our management."
Core Banking Business Development, Denizbank
"Our entire IT team was trained 2 years ago. The course met our training expectations. We had sufficient knowledge for beginning process transition.."
Proje Manager, Yemeksepeti