Masterclass: React component patterns

Date: 9-10 May 2018, Iasi
Days: 2 (16 hours)

Target audience: Intermediate developers (basic React and Redux knowledge
required)

Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

 

AGENDA
1. Stateless functions
a. What are stateless functions?
b. When to use
c. Drawbacks
2. JSX spread attributes
3. Destructuring arguments
4. Conditional rendering
a. If
b. Unless
c. If / Else block
5. Arrays as children
a. Usage with functional methods (mapfilter, etc.)
b. Explanation of React keys
6. Controlled vs. uncontrolled components
a. What are controlled components?
b. What are uncontrolled components?
c. Dealing with controlled vs. uncontrolled
d. When to use controlled vs. uncontrolled
e. Drawbacks
7. Container vs. presentational components
a. What are container components?
b. What are presentational components?
c. Reasons behind the split
d. Practice with container vs. presentational in simple React
e. Practice with container vs. presentational in React + Redux
8. State hoisting
a. Advantages of hoisting state
b. Drawbacks and possible gotchas
9. Provider / Consumer pattern
a. New context API in React 16
b. When to use Provider / Consumer pattern
c. Drawbacks
10. Higher Order Components
a. What are HOCs?
b. Practice with HOCs
c. Example of HOCs in the wild (withRouter, connect, etc.)
d. When to use HOCs
e. Drawbacks
11. Functions as child components
a. What are functions as child components?
b. Practice with functions as child components
c. Differences between functions as child components and HOCs
d. When to use functions as child components
e. Drawbacks
12. Short recap

Mentions
This agenda represents the contents for a 2 days (16 hours) based training, covering a great number of React related concepts, knowledge and practical applications. Although the training content can be tweaked on a per case by case basis, for maximum results we recommend sticking with the complete agenda.

Prerequisites
1. Every student will have his/her own laptop. For best results, it is not advisable to multiple people working on the same machine
2. Node v8.9.4 or greater installed (https://nodejs.org/en/download/)
3. Git v2.16.0 installed (https://git-scm.com/downloads)
4. An IDE/code editor of choice (Sublime Text, Atom, Visual Studio Code,
WebStorm, etc.)

Expectations
This training assumes the participants are already familiar with ES6 concepts
(classes, destructuring, default parameters, arrow functions, let/const, etc.), basic JavaScript knowledge and syntax, npm (interacting with the npm ecosystem, package.json), Git (basic commands) and that they have basic React and Redux knowledge (JSX, VDOM, state, props, event management, component lifecycle hooks, actions, reducers, store, mapStateToProps, mapDispatchToProps etc.). Thus, the aforementioned concepts will not be discussed or detailed during the training.

This training targets intermediate developers who would like to upgrade their
React knowledge by finding out more about React component patterns, when
and how to apply them and gain architectural knowledge useful in scaling
applications based on this technical stack.

The trainer
Vlad is a pragmatic software engineer, Google Developer Expert and an avid caffeine consumer. He loves surrounding himself with ever smiling people and he’s constantly pushing his limits in order to become a better professional. He always keeps an eye opened to the ever-changing landscape of technologies he’s interested in. A true believer in the power of sharing your knowledge and becoming a better individual through collaboration and feedback, Vlad regularly speaks at conferences and meetups where he shares his passion for everything tech related.

Vlad is co-organizer of CluJSers, being actively involved in the development of several tech communities and acting as an advisor for a couple of well known
Romanian conferences such as Codecamp and JSHeroes. In October 2016 he
joined the Google Developer Experts group as the second professional in the world with knowledge revolving around the React ecosystem. Shortly after, he founded KRAK3N, his own consultancy company and has been, since then, helping clients and individuals build amazing products, deliver business value, solve complex JavaScript challenges, learn and apply React and embrace Agile methodologies in their work environments.

His teaching experience is vast, Vlad being responsible for mentoring over 100 people while working for companies such as Yonder, 3PillarGlobal or acting as a Fullstack JavaScript Instructor for Viking Code School. For more information about him, feel free to follow him on Twitter, read his personal website, consult his company website or explore a short list of talks he has given so far.

 

Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

 

Browse more masterclasses here.

See how Artificial Intelligence is changing the way we live our lives

AI as a strategic area of investment in order to stand out from the crowd. For instance, a survey conducted by Vanson Bourne, a research firm on behalf of Teradata on 260 IT and business decision-makers, reveals that more than 80% of companies are investing in AI.

Industries impacted by AI

Even if AI has an impact on all industries, there are several areas that will be revolutionized by it. The above-mentioned survey also shows that 59% of companies from IT and telecommunication expect to take advantages from AI, followed by 43% business and professional services and 32% of customer services and financial services.

AI will revolutionize medicine

2018 it’s considered the year when AI will expand more to medical diagnostics. “By the end of next year, I think around half of leading healthcare systems will have adopted some form of AI within their diagnostic groups. In 2018, we’ll begin the adoption of a technology that may truly transform the way providers work, and the way patients experience healthcare, on a global scale”, explains Mark Michalski, executive director, “Massachusetts General Hospital” and “Brigham and Women’s Hospital Center” for Clinical Data Science.

AI in everyday life

AI has changed so much our daily life that soon we will ask ourselves how we were able to live without it. 2018 is expected to be the year in which voice-based gadgets will work together and have personalized media – from reports to music playlists, according to our taste and interests.

AI will create new jobs

AI also seems to bring changes in the labor market. People are concerned that their jobs will be replaced with robots in the future. According to a Gartner report from December 2017, AI will replace only low-level, routine work. Besides this, AI is expected to generate more new jobs – 2.3 million by 2020, while eliminating only 1.8 million jobs.

Read this article and learn more about this topic.

How to create simple apps using Unity 3D and Parse Server

If you want to create an app faster, and you do not have knowledge from the backend area, but you require your app to interact with a database, one accessible solution is to use Parse Server. Parse Server is an open source Back-as-a Service (BaaS) framework initially developed by Facebook which uses web-based, all-in-one Dashboard. From here, you can create classes and manage your data, to view analytics, and send push notifications.

 

As you know, the Parse Service was shut down in January 30, 2017 (I hope you have migrated to other backend service you decided to).

An easy solution for this problem is using Back4app, which is an open source backend that already uses framework and helps developers to build their apps scalable and extensible at a much faster speed. Back4app is great for developers if they are looking for flexibility, customization on source code and the capability to integrate their app with other cloud services.

Read this article and learn how to create simple apps using Unity 3D and Parse Server.

About ASSIST Software

ASSIST Software is a software outsourcing company based in Suceava, the largest city in the North-East of Romania. Founded in 1992, ASSIST Software is present on the international market, as a supplier of innovative solutions, being a reliable and trustworthy outsourcing partner for more than 230 clients worldwide.

Focusing the activities toward developing complex software products, we provide consistent results in emerging fields such as mobile and web-based custom business applications, IoT, e-commerce, e-payment, e-security, e-health and enterprise & resource planning, entertainment and gaming industry

Our teams can adapt to our clients’ demands, being able to support complete software development life cycle (requirements-development-deployment-maintenance), project management, quality assurance and consulting services.

Our Microsoft Certified Partner status is recognition for our performances and competences. These competences are greatly supported by the software development team. The partnership with IBM, Intel, CISCO and HP are testament to our ability to design and deliver quality hardware and software solutions optimized for any platform.

 

Masterclass: Functional Programming on the JVM with Scala & Clojure

Most programming languages are gaining functional programming constructs, and the JVM remains a rock-solid base on which to build a wide variety of applications; however, the legacy ties to OOP in the Java programming language itself make many of the more interesting and useful aspects of functional programming difficult to achieve.

Date:

23 March 2018, IASI

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

In this course we’ll dive into two popular FP languages for the JVM: Scala and Clojure. You’ll learn about the critical features designed into these languages that can take your software to the next level. Both languages have great strengths, but we’ll also talk about the most significant problems that you’ll face when adopting either.

The hands-on portion of the course will concentrate on some of the most significant benefits of working with each.

Prerequisites

The content is approachable for all levels of developers. Experience working with Java, Javascript, or C# is recommended.

Course Outline

  • Scala 
    • First-class persistent data structures
    • Improved type system
    • Type inference, call-by-name, extended argument lists, implicits
    • Libraries of interest
    • Weaknesses and Challenges
    • Scala.js (browser-based scala)
    • Lab: Some tractable code examples you can run/modify
  • Clojure 
    • Dramatically simpler syntax
    • Language concerns at a library layer
    • Code as data
    • Ad-hoc polymorphism
    • First-class treatment of time as a programming concern
    • Spec vs Type systems
    • Dynamic development
    • Libraries of interest
    • Weaknesses and Challenges
    • Clojurescript (browser-based Clojure)
    • Lab: Some tractable code examples you can run/modify.
  • Summary
    • A review of pros/cons, naming specific use-cases for each language
    • Objective comparison: How to talk to others about the pros/cons

The trainer

Tony Kay is a seasoned developer with over 30 years of experience. He’s been working with Java since its initial public release, and designed and wrote curriculum for a company in the 90’s that was purchased by Sun Microsystems based on the quality of his Java courses. He spent many years refining his testing skills on the JVM platform, and has taught those techniques professionally for a number of years. He currently runs the consulting company Fulcrologic, LLC in the United States and does a lot of work using the functional programming language Clojure.

Date:

23 March 2018, IASI

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.

 

Masterclass – Effective Testing in Java

We all know that testing is important, but most of us have had little education about the different approaches to testing and are left to teach ourselves. Unfortunately, it takes most people years to learn good habits and techniques, and the mistakes we make when learning are often costly, frustrating, and counter-productive. We end up with slow tests, tests that break for bad reasons, and tests that are impossible to reason about when they fail.  In other words: useless tests.

Date:

22  March 2018, Iasi

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

Many people simply return to the well-known technique of our self-taught days: code it, play with it, move on. In this workshop we’ll concentrate on helping you create tests that are effective: test that run quickly, only fail for good reasons, give you clear information when they break, and are easy to understand when you have to read them (which should be rarely).

This is a hands-on workshop where we’ll actively work through the methods of testing using the Java programming language. If you complete the labs you will have a completely working application that is fully covered, and demonstrates most of the topics covered in the course.

Prerequisites

Participants should already know the Java programming language. At least a year of experience is recommend. The course contains material that even senior develops should find useful. Each participant that wishes to participate in the lab should come with a laptop that has their favorite IDE and git already installed and working. Labs will be done as a git fork of a maven-based Java project that participants will push to in order to share work. IntelliJ will be used by the instructor, but any IDE that can run JUnit tests and load Maven projects is fine.

Course Outline

Lecture 1 – The Basics

  • Demonstration of an effective test suite
  • Criteria of a good test
  • Identifying good tests
  • Why test coverage statistics are nearly useless
  • Test “code smells”: spotting bad tests
  • A summary of helpful rules

Lab 1 – Covering the Basics

  • In this lab you’ll write some simple unit tests that meet the criteria taught in the lesson.
  • Solutions to Lab 1 – Forum for discussion challenges and solutions.

Lecture 2 – The Spectrum of Tests

  • Cost/benefit analysis of manual vs. automated testing
  • Testing in the presence of side-effects
  • Dealing with I/O, Databases, and other “external” systems
  • System Integration Testing

Lab 2 – Dealing with I/O

  • In this lab you’ll write tests that cover the I/O concerns of the lab project.
  • Solutions to Lab 2 – Forum for discussion challenges and solutions.

Lecture 3 – Controlling the Layers

  • Writing Testable Code: Techniques that improve your ability to reason
  • The role of mocking and injection
  • An overview of injection techniques
  • Pros and Cons
  • Mocking code smells
  • Design patterns that can help
  • Language-specific workarounds

Lab 3 – Layered Testing

  • In this lab you’ll see how injection and mocking can make otherwise untestable things easy to test.
  • Solutions to Lab 3 – Forum for discussion challenges and solutions.

Lecture 4 – Managing Complexity

  • Design and Agile practices
  • Separating real complexity from incidental complexity
  • Techniques that leverage testing to enable evolving design over time
  • Some Case Studies as Examples

Lab 4 – Complete the Project

  • In this lab participants will complete the lab project.
  • Final Solution – Forum for discussion about the completed project.

Lecture 5 – Verification, Refactoring, and Code Hygiene

  • Spot-checking the test suite
  • When/why do you refactor?
  • Evolving the specification
  • Continuous Integration

Final Lab – Spot checking and CI

  • Get your tests running in CirclCI
  • Have another participant spot-check review your tests

 

The trainer

Tony Kay is a seasoned developer with over 30 years of experience. He’s been working with Java since its initial public release, and designed and wrote curriculum for a company in the 90’s that was purchased by Sun Microsystems based on the quality of his Java courses. He spent many years refining his testing skills on the JVM platform, and has taught those techniques professionally for a number of years. He currently runs the consulting company Fulcrologic, LLC in the United States and does a lot of work using the functional programming language Clojure.

Date:

22  March 2018, Iasi

Training fee: €250/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.

HARMAN – A Samsung Company

Were you aware that Harman designs, manufactures and markets a wide range of audio, lighting and infotainment solutions for the automotive, consumer and professional markets?
For example, did you know they engineer the infotainments systems for BMW (iDrive), Mercedes-Benz (COMMAND), Audi (MMI), Chrysler (Uconnect) and many more?
Harman is a recognized world leader across its customer segments with premium brands including AKG, Harman Kardon, Infinity, JBL, Lexicon and Mark Levinson.
The company is admired by audiophiles across multiple generations and supports leading professional entertainers and the venues where they perform.
More than 25 million automobiles on the road today are equipped with Harman audio and infotainment systems.
More than 80 percent of the world’s luxury cars are equipped with our premium audio and infotainment systems.
Your favorite music, movie or television show was likely recorded or broadcast with our help. We share the stage with talented performing artists from every genre, and we fill the world’s premier sporting and entertainment venues with great sound and light.
But HARMAN stands for more than just great sound. We help create great lifestyle experiences for today’s connected generation.
Updates and enhancements are automatically downloaded as they become available, and real-time diagnostics alert you when routing services or repairs are indicated.
For more about our automotive cloud offerings, visit the Connected Services section of our website.
HARMAN’s innovative and highly integrated infotainment technologies offer automakers the most complete solutions for advanced navigation, intuitive user interfaces, integrated audio, device connectivity, cyber security, and connected safety, just to name a few. From Boston to Berlin to Bangalore, HARMAN is delivering a dynamic in-car experience for an increasingly connected world.