Ygnnetns4njqwg2cnjil
23 DAY COURSE

Custom Skills Transfer Program on Crafted Design and Advanced Technology

Topics covered at CRAFTED-DESIGN-ADVANCED-TECHNOLOGY

Dates coming soon

This course is designed to help enterprise developers write code that is well-crafted; code that is clean, testable, maintainable, and an expression of the business domain. The 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. You will also learn how to design and develop testable and secure web applications and microservices in Java and Scala.

Learn how to:

Writing Clean Code is difficult. Cleaning existing code, even more so. Join this course and learn how 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 also 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.

Understanding different approaches to Enterprise Architecture is paramount. In this course you will gain an understanding of:

  • Relational, SQL and No-SQL databases
  • Messaging, XML & JSON and API design
  • Different Architectural flavours
  • Deployment
  • Operations

How to create production ready web applications? Learn how to:

  • Create a Java web application with Bootstrap, CSS, HTML5, Jade and JavaSpark
  • Automated Testing
  • MVC, Angular and REST
  • Domain Driven Design
  • Persistence

Microservices and DevOps play an essential role in modern enterprise development. Join this course and learn:

  • Microservice Design
  • Creating Microservices in Java
  • DevOps, Infra as Code and how and why to Automate Everything

Bringing it all together. Learn how to:

  • Design and Develop testable, production ready web applications and microservices in Scala

About the Author

Sandro Mancuso

Sandro Mancuso is a software craftsman, author of SOftware Craftsmanship: Professionalism Pragmatism Pride, and co-founder of the London Software Craftsmanship Community (LSCC)

Thanks to our partners

WEEK 1 - SOFTWARE DESIGN

Day 1

  • Designing code through tests
  • Expressing Behaviour
  • Matchers
    • Hamcrest
    • Creating your own matchers

Day 2

  • Tell, Don't Ask
  • Introduction to Test Doubles and Outside-In TDD using Mockito
    • Dummy
    • Fake
    • Stubs
    • Spy
    • Mock

Day 3

  • SOLID Principles
  • Outside-In TDD – A complete example

Day 4

  • Domain Driven Design
  • Interaction Driven Designing

Day 5

  • Testing and Refactoring Legacy Code

WEEK 2 - ENTERPRISE ARCHITECTURE

Day 1

  • Relational DBMS
  • SQL
  • NoSQL Databases

Day 2

  • Messaging
  • Working with XML / JSON
  • API Design

Day 3

  • Architectural Flavours
    • Layered
    • Hexagnoal
    • Client Server
    • Microservices
    • CQRS
    • Event Sourcing

Day 4

  • Deployment
    • Release
    • Deployment pipeline
    • Deployment tools - Brief examination of available tools
  • Operations
    • 12 Factor App
    • Monitoring
    • Alerting

Day 5

  • Operations
    • System Diagnostics
    • Profiling
    • Logging

WEEK 3 - WEB APPLICATIONS

Day 1

  • Creating a simple Java Web app with JavaSpark
  • Creating a view layer with Jade
  • HTML & CSS 3
  • Bootstrap

Day 2

  • Automated Testing
    • Behavior-Driven Development
    • Specification by Example
    • Acceptance Tests
    • Cucumber-JVM

Day 3

  • MVC
  • Detaching presentation from Data – AngularJS
  • REST Services
    • REST Basic Principles
    • JSON

Day 4

  • Designing the domain layer
  • Introduction to Domain-Driven Design

Day 5

  • Persistence with relational databases – PostgreSQL
  • Transactions

WEEK 4 - MICROSERVICES AND DEVOPS

Day 1

  • Introduction to Microservices
    • Key Benefits
    • Microservice Design
    • Autonomous / Small / Focused / Composable
    • REST Api Design
    • Service Security
  • Introduction to DevOps
    • Infra as Code
    • Automate Everything
  • Creating Microservices in Java

Day 2

  • Developing Microservices
    • Git Flow
    • Jenkins
    • Continuous Integration

Day 3

  • Deploying Microservices
    • Docker
    • AWS Elastic Beanstalk

Day 4

  • Continuous deployment
    • Automated testing refresher
    • Blue / Green Deployment

Day 5

  • Operating Microservices
    • Monitoring
    • Logging
    • Problem Diagnostics

WEEK 5 - SCALA

Day 1

  • Web app in Scala with Scalatra

Day 2

  • Web app in Scala with Scalatra

Day 3

  • Creating microservices in Scala

Audience

To benefit from this 5-week program, attendees should have have a computer science degree and some experience in software development with Java. An openness to learn and a passion for engineering excellence is essential.

Prerequisites

Overview

This course is designed to help enterprise developers write code that is well-crafted; code that is clean, testable, maintainable, and an expression of the business domain. The 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. You will also learn how to design and develop testable and secure web applications and microservices in Java and Scala.

Learn how to:

Writing Clean Code is difficult. Cleaning existing code, even more so. Join this course and learn how 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 also 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.

Understanding different approaches to Enterprise Architecture is paramount. In this course you will gain an understanding of:

  • Relational, SQL and No-SQL databases
  • Messaging, XML & JSON and API design
  • Different Architectural flavours
  • Deployment
  • Operations

How to create production ready web applications? Learn how to:

  • Create a Java web application with Bootstrap, CSS, HTML5, Jade and JavaSpark
  • Automated Testing
  • MVC, Angular and REST
  • Domain Driven Design
  • Persistence

Microservices and DevOps play an essential role in modern enterprise development. Join this course and learn:

  • Microservice Design
  • Creating Microservices in Java
  • DevOps, Infra as Code and how and why to Automate Everything

Bringing it all together. Learn how to:

  • Design and Develop testable, production ready web applications and microservices in Scala

About the Author

Sandro Mancuso

Sandro Mancuso is a software craftsman, author of SOftware Craftsmanship: Professionalism Pragmatism Pride, and co-founder of the London Software Craftsmanship Community (LSCC)

Thanks to our partners

Program

WEEK 1 - SOFTWARE DESIGN

Day 1

  • Designing code through tests
  • Expressing Behaviour
  • Matchers
    • Hamcrest
    • Creating your own matchers

Day 2

  • Tell, Don't Ask
  • Introduction to Test Doubles and Outside-In TDD using Mockito
    • Dummy
    • Fake
    • Stubs
    • Spy
    • Mock

Day 3

  • SOLID Principles
  • Outside-In TDD – A complete example

Day 4

  • Domain Driven Design
  • Interaction Driven Designing

Day 5

  • Testing and Refactoring Legacy Code

WEEK 2 - ENTERPRISE ARCHITECTURE

Day 1

  • Relational DBMS
  • SQL
  • NoSQL Databases

Day 2

  • Messaging
  • Working with XML / JSON
  • API Design

Day 3

  • Architectural Flavours
    • Layered
    • Hexagnoal
    • Client Server
    • Microservices
    • CQRS
    • Event Sourcing

Day 4

  • Deployment
    • Release
    • Deployment pipeline
    • Deployment tools - Brief examination of available tools
  • Operations
    • 12 Factor App
    • Monitoring
    • Alerting

Day 5

  • Operations
    • System Diagnostics
    • Profiling
    • Logging

WEEK 3 - WEB APPLICATIONS

Day 1

  • Creating a simple Java Web app with JavaSpark
  • Creating a view layer with Jade
  • HTML & CSS 3
  • Bootstrap

Day 2

  • Automated Testing
    • Behavior-Driven Development
    • Specification by Example
    • Acceptance Tests
    • Cucumber-JVM

Day 3

  • MVC
  • Detaching presentation from Data – AngularJS
  • REST Services
    • REST Basic Principles
    • JSON

Day 4

  • Designing the domain layer
  • Introduction to Domain-Driven Design

Day 5

  • Persistence with relational databases – PostgreSQL
  • Transactions

WEEK 4 - MICROSERVICES AND DEVOPS

Day 1

  • Introduction to Microservices
    • Key Benefits
    • Microservice Design
    • Autonomous / Small / Focused / Composable
    • REST Api Design
    • Service Security
  • Introduction to DevOps
    • Infra as Code
    • Automate Everything
  • Creating Microservices in Java

Day 2

  • Developing Microservices
    • Git Flow
    • Jenkins
    • Continuous Integration

Day 3

  • Deploying Microservices
    • Docker
    • AWS Elastic Beanstalk

Day 4

  • Continuous deployment
    • Automated testing refresher
    • Blue / Green Deployment

Day 5

  • Operating Microservices
    • Monitoring
    • Logging
    • Problem Diagnostics

WEEK 5 - SCALA

Day 1

  • Web app in Scala with Scalatra

Day 2

  • Web app in Scala with Scalatra

Day 3

  • Creating microservices in Scala
Audience

Audience

To benefit from this 5-week program, attendees should have have a computer science degree and some experience in software development with Java. An openness to learn and a passion for engineering excellence is essential.

Prerequisites