Current offers

Non-Agile Akadémia trainingleírások

 
 
 

* VAT is not included

The proposed prices are participant fees.


 
 

Application Development with Spring Framework

Objective

The Spring Framework is a well-known open source application framework and it is a perfect alternative of the Java Enterprise Edition. Majority of the java developers around the world use Spring Framework to create modular, easily testable and reusable code. Spring helps you to build applications from POJOs therefore creating services of enterprises are separable and dependency free. The core features of the Spring Framework can be used in developing many kinds of Java application, especially for building web applications and cloud based services.

The course is available in the following programming languages: Java.

Participants

Architects, software developers with minimum 1 year java background or years of practice in other programing languages. The participant may have initial Spring knowledge and also may have used a few modules of Spring for years. Experience shows that people with years of Spring usage also learn a lot during the course, because developers often use some modules without understanding the logic behind. The course is not recommended for software developers with advanced Spring knowledge who used and understand most modules below.

Content

This course is constructed for Java programmers who need to learn the Spring Framework in detail along with its architecture and actual usage. During each module of this workshop, the trainer will guide the participants through the theory behind the Spring Framework and gives them exercises that help them get practical experience.

Modules

Spring Introduction
During this module the participants understand why do enterprises need to use Spring Framework, and how it keeps their code manageable in the long run. Why is it the de-facto standard solution in the enterprise world and why is it inevitable to learn it.
Key topics during this section: Inversion of Control, Dependency Injection, Application Context, Configuration, Profiles, Component Scan, Lifecycle

Spring Data
With this module the participants learn how spring supports the standard persistence solution: JPA. Through exercises the trainer will show how to speed up the programing with Repositories, and how spring supports handling transactions. The trainer also shows how spring deals with the NoSQL databases like MongoDB and Redis.
Key topics during this module: JPA theory, Spring DATA, Repositories, Transaction handling, NoSql Theory, MongoDb Template

Spring MVC
In this module participants get to know how to build web applications with spring and how the Front controller design pattern works in Spring MVC. The participants acquire enough knowledge to build up a web module easily.
Key topics: MVC, Controllers, Web UI

Spring REST
The de-facto standard Representation State Transfer theory will be introduced and practice sessions will ensure that the participants get to know how to use REST in the spring environment.
Key topics: REST Theory, HATEOAS, Spring REST

Spring Boot
The new modern way of building green field projects will be shown. Boot became the new trend in the spring community, therefore it belongs now to the basics. Building up new applications is much faster with Boot, so it is necessary to reveal the power and useage of this new technology.
Key topics: Starters, AutoConfiguration, Actuator

Microservices
It is important to understand when to use microservice architecture and when to use monolith. This module makes clear statements and gives guidelines for participants to be able to decide later what microservices good for.
Key topics: Theory, pros and cons, communication patterns

Spring Cloud
When projects are using microservice architecture (also using Java), it is suggested to use some spring cloud packages, because it will ensure the clear and effective way of programming (especially when it is used together with Boot)
Key topics: Eureka, Ribbon, Hystrix, Feign, Zuul, Cloud Config

Spring Security
The participant learns basic security settings with spring using xml and java based config. The module also shows how easy it is to set up a spring based security for a web project.
Key topics: FilterChain of Spring, UserDetailService, types of user, password storage

Messaging
If projects need asynchronous communication between modules, then messaging is one of the available solutions. The participants will understand the basic architecture of Message Queues and Spring AMQP. Spring support will be shown through using spring template with RabbitMQ.
Key topics: Theory, RabbitMQ, Spring AMQP, Template

Cloud Foundry
This module introduces a PaaS, namely cloudfoundry, which is an alternative solution to AWS.
Key topics: Cloud Foundry, CLI,

Testing
In this module the trainer reveals advanced techniques of testing for MVC applications with Mocking. Writing tests for REST services, also using REST Docs which is a powerful tool for documenting REST Api-s.
Key topics: Unit Testing, Integration Testing, Mockito, REST Docs

Misc.

  • Duration: 8 Days.
  • Classroom with computers is required
  • English handout and the source code of the demo applications will be provided for the participants.
  • 2 whiteboards and a beamer with HDMI is required.

Exam

  • It is optional for participants to have an exam
  • Duration: 0,5 – 1 day
  • A certificate of the successful exam (or attendance on the course) can be handed out

 


 

Java Standard Edition (JSE) Programming

Objective

Nowadays Java is one of the most popular programming languages which is suitable for developing many kinds of applications: desktop, web, enterprise, mobile etc.
The JSE platform provides an object-oriented, portable and robust framework for application development. JSE 8 adds the strength of functional programming to the core java features.
The course is available in the following programming languages: Java.

Participants

Software developers.

Content

This training course covers the core language features and the Application Programming Interface of JSE that developers can use the create object-oriented application with Java.

Modules

  • Language fundamentals (1 day)
    • data types, variables, arrays, type conversion, promotion
    • operators, control statements
    • packages: importing, accessing
    • exception handling
    • annotations
    • autoboxing
  • Object oriented programming (1 day)
    • concept, constructor, this, attributes, methods
    • inheritance, super, abstract, final keywords, polymorphism
    • Interfaces
    • base design patterns
  • Generics and Collection framework  (0.5 day)
  • Functional programming (2 day)
    • Lambda
    • Streams
  • Java library (0.5 day)
    • Multithreaded applications
    • Java I/O
    • Localization
    • New Date/Time API

Misc.

  • Duration: 5 Days.
  • Classroom with computers is required
  • English handout and the source code of the demo applications will be provided for the participants.

 


 

C Programming

Objective

C is one of the most important programming language. It can be used to create desktop/embedded applications, compilers, tools, utilities and system level drivers. The C language is ultra fast, efficient, compact, portable but not easy to learn.
The course is available in the following programming languages: C.

Participants

Software developers who want to learn the fundamentals of C programming language.

Content

This course will guide you through how to program with C language from the ground up. You will learn everything from the fundamentals of programming to the complexities of pointers, addresses and file i/o.

Modules

  • Language basic (1 day)
    • Short Overview of the C Language history
    • Data types
      • Primitive data types
      • Enumerations
      • Unions
      • Structures
      • Bit fields
      • Arrays
    • Identifiers
      • Scope of identifiers
      • Linkage of identifiers
      • Storage duration of objects
    • Constants
    • String literals
    • Punctuation
    • Comments
    • Operators
    • Function calls
    • Keywords
    • Different standards
    • How the compiler tokenizes
  • Advanced topics (1 day)
    • Pointers
    • Pointer arithmetics
    • Incomplete types
    • Function pointers
    • Dynamic memory allocation
    • Linked lists
    • File I/O

Misc.

  • Duration: 2 Days.
  • Classroom with computers is required
  • English handout and the source code of the demo applications will be provided for the participants.

 


 

C Programming Style

Objective

C is one of the most important programming language. It can be used to create desktop/embedded applications, compilers, tools, utilities and system level drivers. Programming a good quality code is very important when we create maintainable application.
The course is available in the following programming languages: C.

Participants

Software developers who are familiar with the C language.

Content

This course will guide you through how to create well structured and good quality code with the C programming language.

Modules

  • Coding style
  • Phases of compilation
  • Compilation tool-chains
  • GNU Make in nutshell
  • Preprocessor language
  • How to write readable and good quality code
  • Quality assurance

Misc.

  • Duration: 1 Days.
  • Classroom with computers is required
  • English handout and the source code of the demo applications will be provided for the participants.

 


 

Design Patterns

Objective

Design patterns help developers to create software components that follow the designing for change rule. Nowadays design patterns are widely used among application developers so it is good to know the ideas, principles and strategies behind them.
The course is available in the following programming languages: C++.

Participants

Software developers

Content

This course will guide you through how to create well structured, easily maintainable software components based on the principles of design patterns.

Modules

  • Programming principles
  • SOLID
  • Creational patterns
  • Structural patterns
  • Behavioral patterns

Misc.

  • Duration: 3 Days.
  • Classroom with computers is required
  • English handout and the source code of the demo applications will be provided for the participants.