Sessions JJUG CCC 2016 Spring

InformationTimetableSessionSpeaker

Registration

keynote-1 基調講演1: JJUG運営の戦略と戦術
初心者向け / BeginnerCommunity

鈴木 雄介
JJUGメンバーは昨年の3300人から4500人超に増加しました。イベントをやればすぐに席はうまり、多くのスポンサーが応援をしてくれています。
若者、女子部、地方など参加者の幅もひろがってきました。
オワコンといわれて久しいJavaのコミュニティが、なぜ成長し続けているのでしょうか?
ナイトセミナー、1日イベント、スポンサー募集、幹事運営など、この3年間の取り組みについて会長が語ります

発表資料


keynote-2 基調講演2: Raspberry Pi with Java
中級者向け / IntermediateJava ME or Embedded Java

Stephen Chin(Oracle Corporation)
セッションでは、「レトロ・ハンドヘルド・コンソール」をどうやって作るか、から話を始めます。
このデバイスは3Dプリンタで作ったボックス の中の Raspberry Pi上でJavaが動作します。これを使ったいくつかのトピックをご紹介していきます:
• Raspberry Pi上へのJava実装
• Pi4Jによる入力デバイス装備
• JVMパフォーマンスチューニング
• なぜあなたの上司に3Dプリンタを買ってもらう必要があるのか?!
そして、もちろんあなたのレトロゲームへの(過去の)情熱を持ってテストを行えます。
8ビットや16ビットのコンソールのホコリをはらって準備運動しておいてください。
このプレゼンテーションは、セッションとして”work”することを合理的に理解してもらえるでしょう。
このセッションによって皆さんが、皆 さん自身 の”work”するものを現実の世界の中でJavaとRaspberry Piを使って実現されることを期待しています。


E-1 テスト自動化のまわりみち
中級者向け / IntermediateJava SE

irof

Javaでの自動テストをあたりまえにしたいと思って、いちプログラマがやってきたあれこれ。

主にテストコーディングについて。使用しているツールやライブラリの紹介や個人的な感想、困ったことやつまづいたこと、うまくいっていないことを話そうと思います。
「まわりみち」と題している通り、成功事例やうまくいく方法ではありません。

– 対象
– 自動テストに取り組もうとしている
– 自動テストで試行錯誤している
– 対象外
– JUnitを触ったことがない
– 現場で自動テストがうまくできている

参考)前回のセッションで「踏み込まない」としていた部分になります。


F-1 広告システム刷新の舞台裏ーPHPからJavaに変えてみました
中級者向け / IntermediateJava EE or Server Side Java

森下 大介

ビジネスの成長と共に、当初の道具が合わない規模になっていったプロモーション広告業務系プラットフォーム。
大規模システムが売上を支えつつも改修コストや技術負債を増やしていく現実を前に、
今のままではテストも満足にしかけられないと危機感をもった開発部門がプログラミング言語、
アプリケーション・アーキテクチャ、ツール、開発の進め方など色々変えてみた事例をお話します。

発表資料


GH-1 Type Annotation for Static Program Analysis
中級者向け / IntermediateJava SE

櫻庭 祐一

Java SE 8ではProject LambdaやDate & Time APIが注目されていますが、アノテーションも大きく変化しました。最も大きな変化は、型に対してアノテーションが書けるようになったことです。たとえば、ジェネリクスの型パラメータなどにもアノテーションが書けるようになったのです。
型に対するアノテーションを導入することで、プログラムにさまざまな制約を記述することができるようになりました。これを利用したのが静的コード解析ツールです。本セッションでは静的コード解析ツールのChecker Frameworkを題材に、新しいアノテーションの活用方法をご紹介します。

発表資料


E-2 ブラウザテストをサクサク進めるためのGeb実践入門
初心者向け / BeginnerJVM Languages

@PoohSunny(高橋 陽太郎)

本セッションでは、Gebを業務のプロジェクトで利用できるようにする、というのをテーマに、
・導入前の試用する際
・実際に導入する際
・導入してから
それぞれで気をつけるべきポイントと、その対処法を私の経験を交えてご紹介します。

Gebとは、Groovy製のブラウザオートメーションツールで、
ソフトウェアテストに多く利用されています。同様のツールとしてSeleniumが有名ですが、
GebはSeleniumに比べ簡潔な記述が可能です。
ただし、Gebを実際に利用する際には気をつけるべきポイントがあり、それが業務プロジェクトへの導入を妨げることがあります。
本セッションで気をつけるべきポイントへの対処法を知ることで、
「Gebの業務利用(実践)待ったなし!」という状態になっていただけると思います。

発表資料


F-2 Thymeleaf 3 を使ってみよう!
初心者向け / BeginnerJava EE or Server Side Java

椎葉 光行

Thymeleaf(タイムリーフ)はJava用のテンプレートエンジンです。ナチュラルテンプレートという手法を採用していて、
テンプレートをそのままブラウザで表示することができるので、
プロトタイプとして見せることができたり、デザイナーさんとの作業をスムーズに進めることができたりします。

2016年2月にThymeleaf 3.0.0の最後のBETA版である3.0.0.BETA02がリリースされ、
ついに3.0.0の機能が出揃いました!なんか色々変わってるみたいですね。

このセッションではThymeleafの基本的な機能の紹介と、3.0.0の新機能の紹介をしたいと思います。
Thymeleafを使ってみたいなと思っている方も、既に2.xを使ったことがある方も、Thymeleaf 3を使ってみましょう!

発表資料


GH-2 Eclipse Collectionsで学ぶコード品質向上の勘所
中級者向け / IntermediateJava SE

伊藤 博志

昨年サンフランシスコで開催されたJavaOne 2015、続いて日本のJJUG CCC 2015 Fallにて、
GS CollectionsがEclipse Foundationへ移行しEclipse Collectionsとして生まれ変わることが発表され、
2016年の1月に公式リリース(https://www.eclipse.org/collections/ja/)されました。

Eclipse Collectionsのコードベースには、コードの品質について学べるベストプラクティスがたくさんつまっています。
本セッションでは、実際のEclipse Collectionsのコード例やビルドの構成、
コードレビューのワークフローを紹介します。Java開発における高品質なコード、
高パフォーマンスな実装を保つ秘訣とコードレビューの実践方法について学び、皆さんの開発に生かしてみてください。

本セッションでは、下記のポイントをカバーする予定です。
– Eclipse Collectionsのコレクション実装から学ぶ実装パターン
– プリミティブコレクションの自動コード生成
– Findbugs, Checkstyle, IDEA inspectionによるコード品質の静的解析
– JMHによるパフォーマンス解析
– コレクションのテストを容易にするeclipse-collections-testutilsの紹介
– コードレビューのプラクティス

発表資料


AB-3 Javaでつくる技術ドキュメントのバリデーション環境
初心者向け / BeginnerJavaを利用したアプリケーション

伊藤敬彦(株式会社リクルートテクロノジーズ)
RedPen という弊社で開発中しているオープンソースのドキュメントlintingツールとそのエコシステム(IntelliJ IDEA 、WordPress プラグインなど)、
および関連ツールについて紹介します。

発表資料


CD-3 ローカルでの ID 管理は大丈夫 ?! よりセキュアでモダンな Java の多要素認証

中級者向け / IntermediateJava EE or Server Side Java

寺田 佳央(日本マイクロソフト株式会社)
企業アプリケーションにおいて、ID 管理はとても重要です。企業で個人情報を取り扱うためには細心の注意を払わなければなりません。仮に情報漏洩が発生すると企業に与えるダメージは計り知れません。エンタープライズ向けの Java Web アプリの開発においては、よりセキュアな Web アプリの開発が求められます。そして、今ベストプラクティスとして、多要素認証の利用がオススメです。IDとパスワードに加え、個人が所有する携帯電話のような外部デバイスを認証に利用することで、ID, パスワードだけの認証システムに比べよりセキュアなアプリケーションを実装することができます。スクラッチで多要素認証機能を実現するには大変な労力がかかりますが、本セッションでは簡単に多要素認証を実現するための方法、RBAC ベースの認可の実装方法についてもご紹介します。さらには認証モジュールを独自に作成したい方のために JAAS, JASPIC を利用した認証モジュールの作り方の概要も紹介します。
本セッションは、既存の Web アプリに極力手を加えず強固な認証・認可を実現するための方法をご紹介します。

発表資料


E-3 Spring Boot で Boot した後に作る Web アプリケーション基盤
中級者向け / IntermediateJava EE or Server Side Java

吉田 朋也(エムスリー株式会社)

Spring Boot の登場から早2年が経過し、様々な企業・プロダクトで
Spring Boot を利用した Web アプリケーションが開発されています。

しかし、Spring Boot で Boot した後、
「さぁ設定は一瞬で済んだ、具体的な機能を作る前に土台となるコードを書かないと・・・」というところはなかなか形式化されていません。
例えば、例外ハンドリングはどうする?DBトランザクションはどう処理する?キャッシュしないと・・・などなど。

そこで、本セッションでは、Spring Boot を利用した Web アプリケーションで、
上記のような基盤となる機能を Spring でどう書いているかを弊社の事例を踏まえながら紹介します。

発表資料


F-3 Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」
中級者向け / IntermediateJava EE or Server Side Java

倉元 貴一(株式会社エヌ・ティ・ティ・データ)

株式会社NTTデータでは、「TERASOLUNA Server Framework for Java 5(以下、TERA5)」の本格展開を2016年2月24日から開始しました。
「どうせデータさんの独自フレームワークなんでしょ?」「重厚長大なんだろうな…」というイメージがあるかもしれませんが、それは少し違います。
TERA5では、従来のNTTデータ独自のフレームワークから脱却し、OSSを極力そのまま活用するための開発ガイドラインとサポートの提供に注力することとなりました。
TERA5はSpring Frameworkをベースにおきつつ、一部JavaEEの技術とも連携する、サーバーサイドJavaアプリ開発のノウハウが詰まっています。まさに、Springアプリ開発の教科書と言えるでしょう。
本セッションではTERA5が提供する開発ガイドラインの中身をご紹介します。TERASOLUNAに興味を持っていただくきっかけになればと思います。

発表資料


GH-3 Jenkins 2.0
中級者向け / IntermediateDevelopment and operations

川口 耕介

Jenkinsプロジェクトでは、継続的デリバリなどのより大規模な自動化を手間なく実現するために、バージョン2.0を公開しました。
「Pipeline as Code」と呼ばれるパイプラインの設計をDSLで行う機能や、
多数のリポジトリを効率的に取り扱う「Organization Folder」の機能や、
また従来のフリースタイルプロジェクトの機能にも幾つかの改善が加えられています。
本発表では、プロジェクト初のメジャーアップグレードとなる2.0の狙いや、主な機能、また今後の計画などについて紹介します。

発表資料


I-3 Elasticsearchハンズオン
初心者向け / BeginnerElasticsearch

樋口 慎

注目度急上昇中のJavaベースの全文検索エンジン、 Elasticsearchを使ったデータ分析ハンズオンです。
Elasticsearch/Logstash/Kibanaのインストールから、ログの投入、データの可視化、分析を行います。

※このセッションに参加するには準備が必要です。必ず事前にこちらのページをご確認ください:事前準備


M-3 Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
初心者向け / BeginnerJava EE or Server Side Java

Java女子部

普段使っているwebがどんな仕組みで動いているか気になったことはありませんか?

このワークショップではSpring Bootでチャットツールを作成しながら、Webの仕組みをわかりやすく説明します。

また、チャットツールの仕組みとしてWebSocketを採用しており、通常のWebの仕組み(HTTP通信)とリアルタイム通信の違いについても解説します。

・普段Java書いているけど、Webの仕組みがよくわからない
・いつもバッチ系のシステムばかりだから、Webの開発してみたい
・よくわからないけどJavaでチャットツール作ってみたい
・WebSocket触ってみたい
という方々、是非参加してみませんか?

開発環境の準備手順も事前に案内するので、心配せずに参加してください!

※このセッションに参加するには準備が必要です。必ず事前にこちらのページをご確認ください:事前準備


AB-4 Introduction to JShell: The Java REPL Tool
初心者~中級者向け / BeginnerJava SE

bitter_fox (吉田真也)

REPL(Read-Eval-Print Loop)というツールをご存知でしょうか?
式や文を一行づつ実行し,評価結果を確認できるツールで,RubyやPythonなどのスクリプト系の言語環境では当たり前のツールです.

OpenJDK(Java9)ではJava言語のREPLツールであるjshellが実装され,利用できるようになります.
jshellを使えば,なんとpublic class Hoge{public static void main(String[] args){}}を書かずともJava言語のコードを実行できるのです!
jshellはAPIの挙動の検証,確認や言語構文の確認など,簡単なプログラムの記述を支援し,開発効率を向上させます.
また,実行結果がすぐに分かるためプログラマの教育用途にも有用に利用することが出来ます.

本セッションでは,デモを交えてjshellの使い方を紹介します.
また,どのようにしてREPL機能が実現されているのかというjshellの裏側もお伝えします.

(REPLの説明は初心者向けですが, 裏側の話や,デモでラムダ式やJavaFXなど中級者向けの内容を一部含みます)

発表資料


CD-4 ネクストStruts/Seasar2としてのJava EEアクションベースMVC入門 – MVC 1.0、Jersey MVC、RESTEasy HTML –
中級者向け / IntermediateJava EE or Server Side Java

多田 真敏

今、Java界隈での大きな話題は「Struts 1やSeasar2の移行先としてどのフレームワークを選ぶべきか?」でしょう。
そんな中でJava EEは、標準技術であることや、サーバーベンダーのサポートがあることから、注目度が高くなっています。
本セッションでは、主にStruts 1と比較しながら、Java EE 8の目玉機能であるアクションベースフレームワーク「MVC 1.0」を紹介します。
また、EE 7時代の現在において、MVC 1.0の代替技術として使える「Jersey MVC」「RESTEasy HTML」を紹介し、
MVC 1.0への移行コストが最小限になるように、Jersey MVCやRESTEasy HTMLでどう作るべきかを論じます。

発表資料


E-4 テストゼロからイチへ進むための戦略と戦術
中級者向け / IntermediateJava SE

渡辺 祐

テスト、書いてますか?はい、我々は書いていませんでした。
しかし今は違います。

将棋の駒を動かすかのように一手ずつテストを書き進めるための戦術と戦略のようなものを、お話しできればと思います。
このセッションは同じチームの同僚による昨年秋のセッション「JJUG-CCC 2015 Fall CD-2 Java8移行から始めた技術的負債との戦い」の続編のようなものです。


F-4 セットアップをスマートにすればJava開発はもっと速くなる!
中級者向け / IntermediateDevelopment and operations

桑原 雄一

ava Webアプリの実行環境、セットアップするのしんどくないですか?
DBMS、APサーバーをインストールしてDB作ってデータソース作って、、、
しかも巷では「DevOps来てるし自動テストもCIも当然やるでしょ」みたいな風潮があるし。。。

そこで、SIに必要な道具一式の開発を目指すSIToolkitプロジェクトでは、自動テスト・CI環境が簡単にセットアップできるMavenアーキタイプを作りました。
アーキタイプを展開してMavenコマンドを実行すると、Java EEで作ったサンプルWebアプリを自動テストします。
この間には、ミドルウェアのインストールからDBマイグレーション、テストエビデンスの取得等を全て自動で行っています。

E2E自動テストがCIで動く状態から始めたら、Java開発はもっと速くなると思いませんか?

セッションでは、デモを交えてセットアップをシンプルにする仕組みと工夫したポイントを紹介します。

関連技術:
Maven、Derby、Flyway、Hibernate Tools、WAS Liberty、Selenium 、Jenkins、SIToolkit for Application Develpment, SIToolkit for Web Testing

発表資料


GH-4 春だからJavaプログラミング再入門
初心者向け / BeginnerJava SE

きしだなおき

Javaの文法を勉強して、基本ライブラリの使い方を覚えたら、あとはフレームワークの使い方やアプリケーションの作り方を覚えていきます。
そうするといつのまにか、Javaのプログラムを勉強するということが、ライブラリを組み合わせたり、新しいフレームワークの使い方を覚えたり、環境の設定方法を覚えたりすることになっていくことも多いのではないでしょうか。
しかし、Javaプログラミングというからには、Javaでのプログラムの組み方そのものの勉強もやっておいたほうがいいのではないかと思います。
このセッションでは、改めてJavaの文法に立ち戻って、Javaの値や条件分岐、メソッド、型などを見直し、どのようにプログラムを組み上げていくかということを考えていきたいと思います。


AB-5 Apache Apexとインメモリー最適化による超高速処理の世界
中級者向け / Intermediateシステムアーキテクチャ

漆原 茂(ウルシステムズ株式会社 代表取締役社長 兼 エンジニア)

これからのアーキテクチャは「インメモリー×ストリーミング」が当たり前。
もはやDB中心は時代遅れかも?
本セッションではJavaのメモリー使用効率を大幅に高めるミドルウェアやApache Apexによる分散ストリーミング処理などの最先端技術を紹介。
完全なプッシュ型アーキテクチャによる未来の超高速処理をチラ見せします。


CD-5 Java EE Web Profileを活用しよう!
中級者向け / IntermediateJava EE or Server Side Java

蓮沼 賢志

Java EE 6からWeb Profileという概念が導入されましたが、皆さん活用されていますか?
このセッションではJava EE 7 Web Profileの概要について振り返り、Web Profileの主な活用シーン、Full Profile との比較などについて考えてゆきたいと思います。

発表資料


E-5 Docker on A.* 〜開発から運用まで〜
中級者向け / IntermediateDevelopment and operations

高橋裕也(株式会社オープンストリーム)

「Dockerって流行ってるみたいだけど使ったことない」
「Docker使っているけどイマイチ本システムとして開発・運用が上手くいかない」
などなどDocker利用において困ったことはありませんか。本セッションでは、今流行りのAWS / Azure とDockerを用いたシステムの設計・開発から運用までのヒントを事例を交えてお話しします。


F-5 Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Java EE or Server Side Java

田中 孝清(日本IBM)

変化の早いモバイルやモダンブラウザに対応するため、またビジネスの変化に迅速に対応するため、マイクロサービスの考え方が広く支持されるようになっています。比較的変化が遅く、モノリシックなWebアプリケーションが多かったサーバーサイドJavaの世界も、そのトレンドから逃げられなくなりつつあります。このセッションでは改めてマイクロサービス・アーキテクチャーが評価されている理由を掘り下げると共に、Javaの世界でAPIとサービスを実現する方法についてご紹介します。また、IBMのAPIエコノミーへの取り組みについてもお知らせします。

発表資料


GH-5 Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ
中級者向け / IntermediateJava EE or Server Side Java

槙 俊明 (Pivotalジャパン株式会社)

月間300万以上ダウンロードされている大人気フレームワークのSpring Bootのバージョン1.4のリリースが近づいています。
本セッションの前半では、Spring Boot 1.4および、それと対応するSpring Framework 4.3の新機能をいち早く解説します。
また、2017年頭にメジャーバージョンアップ予定のでSpring Framework 5で計画されている魅力的な新機能についても一部紹介します。

後半ではPivotalが推進するクラウドネイティブアプリケーションとは何か、何がメリットなのかをお伝えし、
Spring Boot、Spring CloudやCloud Foundry、Concourse CIがどのようにこのアプローチを支えるかをご紹介します。

時間が残れば、紹介したテクノロジーを使ったデモでクラウドネイティブなメリットをお見せします。

発表資料


I-5 JavaデスクトッププログラムをふつーのWindowsプログラムのように配布・実行する方法とPCの動きが重くならないよう気を付けること
初心者向け / BeginnerJava SE

高橋 徹

Windows OS上で、Javaで作ったプログラムをJDK標準搭載ツールjavapackagerを使って、
Windowsインストーラ(MSIファイル)として作成し、
ふつうのプログラムのようにインストールし、
メニューやショートカットから実行し、アンインストール・アップデートが簡単にできるようにする方法を紹介します。
また、多数のJavaプログラムを同時に動かした際に、
Javaが使用するCPU・メモリリソースを控え目にするよう設定をすることで「JavaのせいでPCが重い!」と言われないようにするコツを合わせて紹介します。

発表資料


M-5 Python + GDB = Javaデバッガ
上級者向け / AdvancedJava VMs

数村 憲治

Javaコードのデバッグは、jdbのようなラインデバッガから
NetBeansのようなGUIデバッガまで、さまざまなツールを使うことができます。
一方で、Java VM自身はC++等で書かれているため、
そのデバッグは、GDB等のネイティブ言語用デバッガを使う必要があります。

しかし、実際にデバッグする際に、Javaコードのデバッグツールと
JVMのデバッグツールを別々に用意して、同時に使用することは実用的ではありません。

本セッションでは、一つの解決方法として、Python-enabled GDBを紹介します。
Python-enabled GDBでは、Pythonスクリプトを使用しGDBを拡張することで、
Javaコード、ネイティブコード、JVMコードを透過的にデバッグできるようになります。

また、拡張用スクリプトを書くにあたって必要となる、
Java VMの構造や、コーリングコンベンション、
Javaオブジェクトの内部データ構造等、
HotSpot VMの実装解説もあわせて行います。

発表資料


AB-6 ビッグデータじゃなくても使えるSpark☆Streaming
初心者向け / BeginnerDevelopment and operations

島本 多可子(株式会社ビズリーチ)

Apache Sparkって聞いたことありますか?
最近話題でキラキラしていて使いたいと思ったことはありませんか?
中でもSpark Streamingは「手軽に」ストリーム処理を実現できるとして注目を集めており、弊社のサービスでも利用しています。

一方でSparkのアーキテクチャはいわゆる大規模クラスタを想定したものとも言われており、
弊社のように中・小規模には過剰であるのも事実です。

では、なぜSpark Streamingを使っているか?どんなところに利用できるのか?

このセッションでは、弊社の求人検索サービス「スタンバイ」での利用事例、
およびさほどビックでもないデータにおけるSparkの使いドコロについてお話します。

発表資料


CD-6 SmartNews のニュース配信を支えるサーバ技術
中級者向け / IntermediateJava SE

瀬良 和弘(スマートニュース株式会社)

SmartNews のニュースを配信するサーバはAmazon Web Services (AWS) のマネージドサービスと JVM 上で動作するアプリケーション群で構成されており、サービスの成長に対応するために常に変化を続けています。

このセッションでは、SmartNews のニュース配信について、システム構成における設計思想や構成要素、機械学習やそれを支えるプラットフォーム、今後の展望などを中心に紹介いたします。

発表資料


E-6 大規模映像配信サービスのJava8による全面リニューアルの裏側
初心者向け / BeginnerJava EE or Server Side Java

秋穂 賢(株式会社U-NEXT)

映像配信サービス2007年から開始しているU-NEXTを昨年の10月に全面リニューアルしました。
リニューアルではレガシーなシステムを捨てて、1年弱の期間でほんの一部のシステムを除いて全てを1から作り直しました。
本セッションではU-NEXTリニューアルの中でもサーバサイドAPIをJava8 / DBFluteを用いて作り直した事例のご紹介をします。
日々発生するDB変更やサービス要求を実現するAPIを迅速に開発し、
大きな障害なくリニューアルを迎えることが出来た事例から皆様のお役に立つことをお伝えしたいと思います。

発表資料


F-6 人工知能型ERP「HUE」の開発裏話。本当に起こった速度問題とチューニング事例を一挙公開
中級者向け / IntermediateJava EE or Server Side Java

東 卓弥(株式会社ワークスアプリケーションズ HUE Div)

業務×人工知能で「働く」を大きく変えようとしている製品「HUE」。
まさに働き方を変えるほど、利便性の高い機能が多く開発されていますが、
これらの機能は「圧倒的な応答速度(0.1秒)」があるからこそ、実用的になります。

今回のセッションでは、どんなサービス・アプリケーションでも重要となる「速度」にフォーカスを当てています。
特に今回は、普段話にあげづらいHUE開発で起こった問題事例をありのままご紹介します。
結果だけを見れば難しくはない泥臭い内容ですが、
実際の事例を解説しますので、今後の問題解決・速度改善に役立てていただければと思っています。


GH-6 Seasar2で作った俺たちのサービスの今
中級者向け / IntermediateJava EE or Server Side Java

阪田 浩一

2011年にリリースした弊社のサービスは、Seasar2ファミリーで構築しました。利用者数は1000万人以上となり、今もサービスとして成長しています。2016/9/26にSeasar2がサポートを終了するというアナウンスを受け、私たちもアクションを起こしました。

サービスには絶え間なく機能改善、機能追加の要件があり、その対応をしながらSeasar2から移行するという前提条件を考慮すると、選択肢は限られます。Scalaなど言語自体を変えることはなく、Javaのままとしました。新規アプリケーションを作成すると監視対象とするアプリケーションの数が増え、様々なコストが増えると考えたため新規とはしませんでした。こういったさまざまな条件のもと、まずはSeasar2で動作している機能から、まずリスクが小さい機能を新フレームワークで置き換え(ユニットテストも書き換え受け入れテストもし直し)てリリースしました。そして機能追加と並行して置き換えを進めています。

技術的には、移行対象としてはSpringを選択しました。Seasar2にある機能がそのままある場合もあれば、コードを書いて対応したものもあります。他に、S2DaoでのRDBMSへのアクセスを含んだビジネスロジックも、移行コストを最低限にするために資産としてSpringのコードからも利用できるようにしました。ユニットテストについてもS2TestCase とdjUnitから、単純作業として書き換えやすかったjMockitに移行しました。

セッションでは、こういった判断に至った経緯やその実現手法、メンバーへレクチャーなど移行のスタートから現時点のリリースまでにあるさまざまなことを話します。すばらしい判断でもなければすごい技術力で解決したわけでもない、普通なプロジェクトの現場で実際にやったことならではのリアルさを感じていただけると思います。

発表資料


I-6_1 Beatsシリーズでお手軽メトリック収集可視化
初心者向け / BeginnerDevelopment and operations

Jun Ohtani

Elastic社が提供しているGo言語で書かれたOSSのBeatsシリーズの紹介とデモ、また新しい機能を持ったBeatの作り方などの説明を行います。
Beatsシリーズには、パケット(HTTP、MySQL、PostgreSQL、Redisなど)をキャプチャして性能情報を取り出すPacketBeatや、WindowsのEventLogを解析するWinlogbeatなどがあります。
デモを交えて、既存のBeatを利用するとどのような解析が行えるかをご紹介します。
また、BeatはLibbeatと呼ばれる共有ライブラリも提供しています。この共有ライブラリを使用して新しい機能を持ったBeatの作成方法の注意点などについても説明します。

発表資料


I-6_2 OpenJDK コミュニティに参加してみよう
初心者向け / BeginnerCommunity

KUBOTA Yuji

OpenJDK は OSS です。もちろんパッチを書いて貢献や、自分好みの機能を取り入れてもらうことも、もしかしたらできるかも知れません。

どうやってパッチを書いて送るのか、ここの改善をしたいのだけどどうやればいいのか?方法は幾つもありますが、個人的な経験を交えて OpenJDK コミュニティへの参加方法をご紹介します。

一緒に OpenJDK を改善していきませんか?

発表資料


M-6_1 十徳ナイフとしてのGradle
中級者向け / IntermediateJVM Languages

@grimrose

Gradle wrapperを使って、Gradleのタスクを作りながら手作業でやっていた作業を自動化する方法をお教えします。

公開されているGradleのPluginの一部の使い方を交えてJavaユーザでもGroovyを使えるコツや、普段の業務に役立つと思われるその他のPluginを紹介します。


M-6_2 もう知らないとは言わせない!Play Frameworkはじめの一歩
初心者向け / BeginnerJava EE or Server Side Java

松村 翔子 / しょこ

ScalaとJavaベースで書かれたPlay Frameworkの最新情報や,ほかのフレームワークとの違い,使いどころを中心にお伝えします。
特に「名前は知ってるけどいまいち何かわからない」「Springだけ知ってればいいよね」という方,おすすめです。

発表資料


AB-7 若者にJavaの好きなところ嫌いなところきいてみた

つっちー / bitter_fox / いわたん / あや / よこな

(提供)ウルシステムズ株式会社

みなさん、Javaって好きですか?それとも苦手ですか?

このセッションでは、Javaを利用する上で「こういうところ好きです!」
や「こういうことろちょっと苦手かも・・・」と思うところを、若者に
訊いてみようという内容を予定しています。

会場にお越しの皆様にも「この技術好きなんだったらこっちも良いよ!」や
「実はこんな機能があってだな・・・?」みたいなご意見やアドバイスを
求めるかも・・・?!

登壇する若者達と一緒にわいわいやりましょう!


CD-7 マイクロフレームワーク enkan(とkotowari)ではじめるREPL駆動開発
中級者向け / IntermediateJava EE or Server Side Java

川島 義隆

きたるJava 9時代に向けて、新しいJavaのマイクロフレームワークenkanを作りました。
http://github.com/kawasima/enkan

多々特長はありますが起動の速さとREPL駆動開発が最大のウリです。クラススキャンをせずServlet APIにも依存しないenkanは、REPLからサーバを起動し、HTTPリクエストをacceptし始めるのに3秒しかかかりません。そして起動中のアプリケーションをREPLから操作し、動的に挙動を変えることも可能です。詳しくはQiitaをご覧ください。 http://qiita.com/kawasima/items/723646eb30a91d724352

本セッションでは、enkan(とkotowari)のコンセプトや特長だけでなく、その中で使われているJava8 / 9の活用の仕方についてもお話したいと思います。

発表資料


GH-7 Java Puzzlers
中級者向け / IntermediateJava SE

寺田 佳央 & 櫻庭 祐一

Java Puzzlersが帰ってきた! Javaを使う上で陥りやすい罠や落とし穴をクイズにしたJava Puzzlers。
ぜひ、みなさまも一緒にJavaのパズルに一緒に参加しましょう。

発表資料


I-7_1 新人エンジニアが北海道からでてきてコミュニティについて想うこと
初心者向け / Beginnerポエム

まっさん

新卒1年目でコミュニティ活動に参加して、感じたこと、良かったこと、悪かったことを紹介します。
私たちが生きるコミュニティは、会社だけではありません。
さまざまな技術をきっかけに集い、知識を共有する、会話する・・・私は北海道から新入社員として関東にでてきてコミュニティーの持つパワーに驚きました。

コミュニティで出会った友人や業界のスターとSNSでつながれば、困っている時に助けてくれるかもしれません。
時に会社で、同期や先輩に聞きずらい、質問しずらいという状況になるでしょう。
人間関係が理由で、技術が好きになれなかったり、仕事がつまらなくなるというは残念すぎる。
外に目を向けて、自分にぴったりのスキルレベルの友人、その分野でのスターを見つけて、少しずつ、一歩ずつ成長していけばいいのではないでしょうか。

発表資料


I-7_2 SpringBoot+Kotlin 劇的ビフォーアフター
初心者向け / BeginnerJVM Languages

俺九番

3月からSpring InitializerでKotlinが選択できるようになりました。
選択できるようになったけれど、SpringBoot+Kotlinってどうなの?落とし穴とか大丈夫?のような疑問や、SpringBootでKotlinを使ってみてよかった点などを紹介します。

発表資料


M-7_1 古のJavaを使うということ
初心者向け / BeginnerDevelopment and operations

ぜろゆ

― 研修を終えて配属されたプロダクトは、J2SE1.4で動いていた。
テストは画面を叩くのみ、大人の事情でJavaバージョンアップ不可、そもそもプログラミングのスキルは重視されていない環境でどうやって製品を作り、育てていくのか? そもそも製品を作り育てる際にJavaのバージョンはどう関係するのか?
レガシーの中のレガシーで2年間足掻いてきた軌跡を最大限公開します。

話す予定のこと
・配属直後 – J2SE1.4との出会い
・まずは読めるコードを – コメントアウトコード撲滅作戦
・1行変更するのにかかるコスト – 画面テストとJUnitの戦い
・挫折 – 技術的に優れていることとプロダクトとして優れていることの差
・まとめ – プロダクトを作り育てることとJavaとJ2SE1.4

発表資料


M-7_2 JVM上でのストリーム処理エンジンの変遷
初心者向け / BeginnerJVM Languages

木村 宗太郎

昨今、完了したデータの解析や処理を行うバッチ処理でなく、『今何が起こっているか?』を把握するためのストリーム処理の需要が高まってきています。
JVM上で動作するストリーム処理基盤としてかつてはS4、Storm等のプロダクトが有名でした。
ですが、その後Spark Streaming、Flink、Gearpumpのような新たなプロダクトの登場や、Apache Beamのような複数の実行エンジン上で実行可能とする抽象化したDSLも登場してきています。
それらのプロダクトの変遷やアーキテクチャを振り返り比較するとともに、最近のプロダクトを用いたストリーム処理の実装方法について紹介します。

発表資料



ブース出展

アトラシアン株式会社

アトラシアンはチームのために。
大きなチーム、小さなチーム。バーチャルなチーム、そしてクリエイティブ、ビジネス、アカデミック、非営利なチーム。もしビジョンの実現に仲間の協力が必要ならば、アトラシアンがお役に立ちます。
企画から計画、開発、サービス提供のためにチームで使うソフトウェア/サービスをご紹介します。

Elastic

当日は、Kibana4を利用したデモ、ステッカーなどを用意する予定です。
ぜひ、お立ち寄りください。

CloudBees

ゴールドマン・サックス

ランチタイムLT

12:30~13:30 に roomK にてランチタイムのミニLT大会を開催いたします。
お弁当食べながら、コーヒー飲みながら、みんなでワイワイしましょう〜!

【登壇一覧】 *発表順は当日をお楽しみに!
ブーススポンサー

  • アトラシアン株式会社
  • Elastic
  • CloudBees
  • ゴールドマン・サックス