$1,529.15 – $1,950.75

Multiple Dates

Functional Scala Megapack (3 workshops) by John A. De Goes

Event Information

Share this event

Date and Time

Location

Location

Online Event

Refund Policy

Refund Policy

Contact the organizer to request a refund.

Eventbrite's fee is nonrefundable.

Event description
3 Functional Scala workshops with John A. De Goes in a heavily discounted package!

About this Event

This is a package of 3 workshops:

  1. Functional Design by John A. De Goes (10/20/2020 - 10/22/2020)
  2. Functional Data Modeling by John A. De Goes (11/18/2020 - 11/19/2020)
  3. Scala 3 for Scala 2 developer by John A. De Goes (12/08/2020 - 12/10/2020)

* PLEASE NOTE! Once selecting the option - you will have one ticket with the December date - although you will be forwarded joining details to all 3 workshops!)

Functional Design by John A. De Goes

Although functional programming theory is useful, most day-to-day functional programming does not require any category theory or even any type classes. Most problems can benefit from a domain-specific model, constructed using immutable data types and operators. Such functionally-oriented solutions are simple, composable, type-safe, and testable.

In this course, developers will learn how to write simple functional solutions to everyday business problems, without jargon and without type classes. Developers will learn how to construct type-safe and composable solutions to domain-specific problems, and how the single responsibility principle of object-oriented programming translates into orthogonality. When developers leave, they’ll have a newfound ability to directly benefit from functional programming techniques across their whole application, in a way that’s highly accessible to the whole team and new hires.

Who Should Attend

Scala developers who would like to apply functional programming to any code base, on any problem, without type classes or jargon.

Prerequisites

Good working knowledge of Scala, including familiarity with immutable data, pattern matching, basic recursion, and algebraic data types. Developers who have attended Functional Scala Foundations and Functional Data Modeling will be well-prepared for this course.

Topics

  • Functional domain modeling
  • The essence of composability
  • Measuring the orthogonality of operators
  • Achieving both minimalism and expressiveness
  • Using types to enforce business constraints
  • Generalized algebraic data types for advanced modeling
  • Principle of least power applied to functional design
  • Design techniques used in the ZIO library and a broader ecosystem
  • Functional approaches to internal domain-specific languages
  • Translating between different domain-specific languages

Functional Data Modeling by John A. De Goes

Data modeling is a critical skill of modern application development, determining how easy it is to write application logic, how easy it is to update the application in response to changing requirements, and how many failure scenarios are caught at compile-time versus runtime. Although most Scala developers are familiar with object-oriented data modeling, many do not have a deep understanding of functional data modeling and how it differs from the former.

In this course, developers will learn how to use functional Scala to construct simple, precise, and flexible models of any business domain. Along the way, they will explore functional concepts like algebraic data types, and techniques like smart constructors. Developers will leave with excellent skills for fully utilizing Scala’s functional data modeling capabilities inside their applications.

Who Should Attend

Scala developers who want to use the functional side of Scala to create simpler, more precise, and more flexible data models than traditionally possible with object-oriented data modeling.

Prerequisites

Good working knowledge of Scala, including familiarity with immutable data, pattern matching, and basic recursion. Developers who have attended Functional Scala Foundations will be well-prepared for this course.

Topics

  • Sealed traits and case classes
  • Algebraic data types
  • Polymorphic algebraic data types
  • Generalized algebraic data types
  • Smart constructors and refined types
  • Phantom types
  • Declaration-site variance
  • Existential types
  • Throwing away irrelevant details
  • Creating precise domain models
  • Making illegal states unrepresentable

Scala 3 for Scala 2 developer by John A. De Goes

Scala 3 represents the single largest revision to the Scala programming language in more than a decade. While anticipated to be mostly backward compatible, the language is getting a host of new features, deprecating other features, and ripping out some features entirely (like Scala 2.x macros). Without knowledge of the ways in which Scala 3 is different, organizations may struggle to make forward-looking technology decisions and properly prepare for the inevitable migration to Scala 3.

In this course, developers who are already familiar with Scala 2.x will get a high-speed introduction to all the changes coming in Scala 3, including semantic changes, syntactic changes, new features, and dropped features. Upon completion of the course, developers will be empowered to make better technology decisions in the present and be comfortable with taking the first steps toward the migration of codebases to the new version of the language.

Who Should Attend

Scala developers who are anticipating working on applications that have to be maintained for longer than 12 months, and who need a quick immersion in Scala 3.

Prerequisites

Good working knowledge of Scala 2.x.

Topics

  • Enumerations
  • Intersection, union, match, and dependent function types
  • Given instances & using clauses
  • Given imports
  • Extension methods
  • Type class encoding
  • Type lambdas
  • Implicit conversions
  • Inlining, macros & staging
  • Trait parameters
  • Export
  • Syntactic changes
  • Dropped & deprecated features

About the author

A mathematician by training but a software engineer by vocation, John A. De Goes has been professionally writing software for more than 25 years. John has contributed to dozens of open source projects written in functional programming languages, including ZIO, a library for asynchronous and concurrent programming in functional Scala. In addition to speaking at Strata, OSCON, BigData TechCon, NEScala, ScalaWorld, Scala IO, flatMap, Scalar Conf, LambdaConf, and many other conferences, John also published a variety of books on programming. Currently, John heads Ziverge Inc, a company committed to solving hard business problems using the power of functional programming.

Venue

The training course will take place online.

Attendance

Attendance to all 4 workshops is remote. Attendees will be provided with a link to a remote meeting session the day before the event, in which they can see and hear the workshop, ask the instructor questions, and chat with other attendees.

Materials

Attendees will be provided with example code, a course outline, and exercises in electronic form. The workshop is not recorded and recording is strictly prohibited.

Daily Structure - the UK, London time

11:00 - Begin Instruction

12:25 - Break

12:45 - Resume Instruction

14:00 - Lunch Break

14:45 - Resume Instruction

16:00 - Break

16:10 - Resume Instruction

17:45 - Break

17:55 - Resume Instruction

19:30 - End of Day

Share with friends

Location

Online Event

Refund Policy

Contact the organizer to request a refund.

Eventbrite's fee is nonrefundable.

Save This Event

Event Saved