Clean Code
The craft of software development
| As presence and online training
The way to more professionalism in code creation
Nowadays, software development is increasingly perceived as a form of craftsmanship, which stands for a tradition of craftsmanship, cohesion, certain values and genuine quality. From this point of view, a professional software developer is a scholar who recurrently strives to improve his own skills.
In general understanding, seniority is based on the number of years spent in an industry. Seniority should be able to clearly answer and delineate the questions “Senior in comparison to Whom, in which technology, in which context?”.
Professionalism, on the other hand, is lived by a master craftsman: knowledge, a high awareness of quality, pragmatism, as well as desire, passion, fun and pride in one’s own work characterize a professional software developer.
In this seminar, you will learn the values, rules and principles on which the craftsmanship of software development is based, enabling you to develop high-quality, object-oriented code, following the adage “Like master, like work” (Karl Simrock).
Software should meet precisely this requirement: The feature should not only be executable, but should be implemented in such a way that the code (what is not seen) is understandable, changeable and testable, i.e. “clean”.
In this seminar, use practical examples to train precisely these guiding principles that the Manifests describes for the craft of software development. Extend your knowledge by applying meaningful design principles and patterns, identifying problematic code sections (code smells or antipatterns). Learn how to deal effectively with legacy code or its evolutionary development through targeted refactorings and use review techniques to transfer knowledge.
Are you interested in this training?
Please call us on +49 621 595702 41, write an e-mail to training@itech-progress.com or send us a written enquiry using the contact form.
We look forward to receiving your inquiry:
Who should attend:
Target audience
The seminar “The Craft of Software Development – Mastering the Art of Coding” is aimed at software architects, software developers, quality assurance experts and technical project managers.
Prerequisites
The seminar “The Craft of Software Development – Mastering Programming” requires programming skills in an object-oriented language (the examples and exercises are given in Java) as well as basic knowledge of UML or comparable knowledge.
Training program:
Foundations of professional software development
- Software development process
- Principles of “good” programming
- Quality characteristics (ISO 25010)
- Software entropy
- “Code Smells”
- causes of “bad” programming and bad habits
Software Craftsmanship
- professionalism and professional ethics
- agility, agile manifesto, agile hangover
- software craftsmanship manifesto
- Clean Code Initiative (Clean Code Developer)
Principles of good design
- Simplicity wins
- Specific decisions
- Explicit requirements
- Encapsulation, principle of secrecy
- Loose coupling
- High cohesion
- Consistency
- Object-oriented principles (SRP, DRY, SOLID)
- Separation of concerns
- Cross-cutting issues (logging, security)
Benefits of attending a seminar
- You will write more readable, maintainable, extensible and testable code.
- Compact training with a focus on professional software craftsmanship
- Up-to-date course materials (state-of-the-art)
- Review and consolidation of fundamental development aspects (design principles and patterns)
Good code
- Meaningful and understandable naming
- Functions, data types, arguments
- Query / command segregation
- “Stepdown rule”
- Recursions
- Error handling, null reference handling
- Comments
- Formatting
Effective development (including with Java)
- Design patterns
- Immutability and unchangeable data structures
- Special features of individual data types
- Function literals (lambda) and higher-order functions
- Reuse through composition
Code metrics
- Static code analysis
- Test-driven development (TDD)
- Continuous integration and delivery
- Code reviews
Working with “legacy code”
- Resolving dependencies
- Which tests are necessary / which methods should be tested / what about misleading parameters?
- Creating an understanding of the code
- Dealing with non-object-oriented code
Outlook
- Coding dojos and retreats
- Integration in agile approaches
- Modern software architectures (context)
What you should already bring with you
- Practical experience in software development, acquired through various projects or systems outside of education
- Knowledge and practical experience in at least one high-level programming language
- In addition, helpful for understanding some concepts are basics in modeling
These training courses may also be of interest:
CPSA-A IMPROVE (Improving Architecture):
Promotes clean code practices to improve architecture quality.
CPSA-A FUNAR (Functional and Reactive Architectures): Applies Clean Code principles to functional and reactive approaches.
CPSA-A SOFT (soft skills for architects): Clean Code improves team communication.
CPSA-A FLEX (flexible architectures): Clean code enables more flexible and maintainable systems.
Do you want customized in-house training?
You have an entire team that you would like to train, but none of our software architecture training courses meet the requirements? No problem! We would be happy to work with you to create a customized in-house training course, whether for beginners or advanced users. We are looking forward to your request!