【東京】JJUG x JJBUG共催ナイトセミナー「GoFデザインパターン / ルールエンジンDrools by Mario Fusco」

Wed, 23 Jan 2019 19:00 - 21:00 JST

レッドハット株式会社 3F セミナールーム

渋谷区恵比寿4-1-18 恵比寿ネオナート3階



Red HatのMario Fusco氏の来日を記念して、JJUGとJJBUGが共催でナイトセミナーを開催します。

GoFのデザインパターンといえば、登場以来開発者のためのバイブルとして参照されてきました。ところがJava 8でラムダ式が導入されたことによって、JavaエンジニアにとってのGoFパターンとの向き合い方に変化が生じていることがご存知でしょうか。『Java 8 in Action』や『Modern Java in Action』の著者であるMario Fusco氏が、モダンなJavaプログラムにおけるGoFパターンの実装方法について解説します。

後半は、Red Hatが提供するBRMS「Drools」に関するセッションです。一般的なルールエンジンがどのように機能し、Droolsではそれをどのように実装されているかなどを、プロジェクトリード自らが詳しく解説してくれます。



  • 場所がいつものオラクル社(外苑前)ではなく、レッドハット社のセミナールームになります。
  • 英語によるセッションです。通訳などはございません。


時間 内容
19:00~19:05 はじめに
19:05~19:55 Revising GoF Patterns with Modern Java
19:55~20:05 休憩
20:05~20:55 Introducing Drools 7 - Rule Engine in Java (Red Hat Decision Manager / BRMS upstream)
20:55~21:00 クロージング


Session 1 : Revising GoF Patterns with Modern Java

The book of design patterns known as Gang of Four has been a kind of Bible for all the developers of my generation. Its main pro has been giving us a common vocabulary: when a programmer says "here I used a strategy pattern" all colleagues know of what he is speaking about. Nevertheless the biggest issue with this is that almost all patterns listed in that book, especially the behavioural ones, are a only workaround for a missing abstraction: higher order functions. The introduction of lambda expressions in Java 8 finally allows all Java developers to remove this no longer necessary and cumbersome object oriented infrastructure from their code. The purpose of this talk is showing, through a series of live coding examples, how the most common GoF patterns can be rethought and reimplemented in a simpler and more concise functional way leveraging Java 8 lambdas.

Session 2 : Introducing Drools 7 - Rule Engine in Java (Red Hat Decision Manager / BRMS upstream)

In this talk I will present how a rule engine in general and Drools in particular work. After a quick introduction showing the main differences between imperative and declarative programming and describing the most common use cases when the second should be used or at least considered, I will delve in more details into how this concepts have been implemented in Drools and which are its characteristic features including: the Drools Rule Language, the possibility to combine forward and backward chaining, the Truth Management System and the temporal reasoning capabilities (Complex Events Processing). Finally I will illustrate the new features added to the version 7 of Drools including: the new multithreaded version of the rule engine; the new OOPath syntax to ease the navigation of graph of objects inside the working memory; the Rule Units that allow to partition a rules set into smaller units, binding different data sources to those units and orchestrate the execution of the individual unit; the executable model that provides a pure Java-based representation of a rule set, together with a convenient Java DSL to programmatically create such model.


Mario Fusco(@mariofusco

Mario is a principal software engineer at Red Hat, leading the development of the core of Drools, the JBoss rule engine. He has a huge experience as Java developer having been involved in (and often leading) many enterprise level projects in several industries ranging from media companies to the financial sector. Among his interests there are also functional programming and Domain Specific Languages. He is also a Java Champion, the coordinator of JUG Milano and the co-author of "Modern Java in Action" published by Manning.

About this community

日本Javaユーザーグループ/Japan Java User Group

日本Javaユーザーグループ/Japan Java User Group

日本におけるJavaユーザーグループです。 公式サイト/Official site

Join community