| Code: | Craft-practices-przybornik |
| Category: | Craftsmanship |
| Format: | 50% lecture / 50% workshop |
| Duration: | 3 days |
| Target audience: |
developerzy |
| Enrollment: | Groups, companies |
| Venue: | Client's office. |
The training is a synthesis of crucial elements of classic and modern software engineering.
It gives a general outlook on practical aspects of using discussed techniques in projects. Discussed issues are at the root of modern frameworks and technologies – which increases the level of their understanding and allows for a conscious use.
A professional in our approach:
- perfectly uses development techniques and architectural styles,
- can communicate with business using the DDD techniques,
- selects the right tool for the class of a problem provides a high quality code
The training is intended for programmers and designers who want to expand their competences in terms of professional techniques that increase the quality of code and design. Obtained knowledge translates in a practical way to the productivity, measured in a wider perspective of time.
It's all about the content.
- SOLID, GRASP and DDD techniques
- Setting techniques in application and system architecture
- All in the context of automatic testing
- Real-life examples
Training Program
The content of our program can be customised during pre-training analysis.-
Object Oriented techniques- Orienting the thinking in the OO style
- Code smell
- Traps of inheritance
- Closing the code for extension
- Replacing the inheritance with composition – practical benefits of changing approach
- Inheritance is not suitable for role modeling
- Liskov Substitution Principle
- Party pattern
- Role Object and Extension Object patterns
- Closing the code for extension
- GRASP - General Responsibility Assignment Software Patterns
- Practical use of SOLID
- Class cohesion
- How to achieve it
- How to detect code smell
- Openness for extension
- Strategy pattern
- 3 types of logic: stable, closure, selection of closures
- When inheritance has no use
- Range of interfaces
- Proper level of abstraction
- Striving for a code with readability close to the prose
- The subject.predicate(object, attribute) technique
- Invariant modeling technique
- Technique for determining class boundary based on the Use Case analysis
- Class cohesion
- Responsibility Driven Design
- Orienting the thinking in the OO style
-
Clean Code- Detecting Code Smells
- Selected implementation and design Patterns
- Detecting Code Smells
-
Techniques for arranging the logic and application architecture patterns- Division into the application and domain logic
- Application logic
- The Use Case/User Story modeling
- Stateful or stateless
- The Use Case/User Story modeling
- Domain logic
- DDD techniques - Building Blocks
- Model levels
- Capacity
- Operations
- Policy – tuning the model
- Decision Support
- DDD techniques - Building Blocks
- Division into the application and domain logic
-
System architecture patterns- DatAccess to data
- Repository
- ORM – range of applicability
- Traps of Lazy Loading – detection and fixing
- Optimistic locking, which will always work
- Repository
- Inversion of Control – tested concept of building frameworks and systems
- Dependency Injection – the basis of modern frameworks
- Support for testability
- Practical techniques of use in order to achieve a flexibility of design
- Event driven systems
- Plug-in architecture
- Separation of the modules
- Increasing the system responsiveness
- Scaling
- Aspect Oriented Programming
- Dependency Injection – the basis of modern frameworks
- Web application architectures
- Classic n-layer architecture (variants)
- Command-query Responsibility Segregation
- Architecture supporting Domain Driven Design
- Scalable systems
- Classic n-layer architecture (variants)
- DatAccess to data
-
Testability – designing for TDD support- The Specify First approach
- Behaviour Driven Development
- Designing for tests with the use of OO techniques
- Techniques for dependency reduction
- Use of the Dependency Injection
- Mapping a test pyramid on application layers
- Application of Stub and Mock
- Reducing the amount of testing accidents
- Separation of logic
- Functional objects
- Separation of logic
- The Specify First approach
Download PDF
Trainers
Meet the experts who will conduct your training.