JJUG CCC 2016 Fall - Timetable (非公式)

10:00-10:50

[Room A+B+C+D]
Be a great engineer!0 フォローすべきトレンド、スルーすべきトレンドをどう見抜くのか #ccc_a1

谷本 心(日本Javaユーザーグループ)

世の中では様々な技術がものすごいスピードで生まれ、そして廃れていきます。大小様々な技術トレンドが映り変わりゆく中で、どのトレンドをフォローして、どのトレンドはスルーするのか、どのようにその審美眼を育てれば良いのでしょうか。「せろさんが注目する技術は流行らない」と言われていた @cero_t が、思いの丈を語ります。

#ccc_a1

[Room E]
Prepare for Java 9: Java 9 に備えよう #ccc_e1

KUBOTA Yuji

2017/7 にリリース予定の Java 9 に向けて、最後のキャッチアップをしていきましょう!Java 9 で追加される予定の機能について一通りおさらいしていきます。また、ソースコードの修正などの対処が必要となりそうな変更内容について紹介していきます。

#ccc_e1

[Room F]
新人研修や本では教えてくれないJava!0フレームワークの仕組みと実務必須ツールを学ぼう0 #ccc_f1

多田真敏

Javaでの開発で重要になる、Java EEやSpringなどの「フレームワーク」。新入社員やJava初心者の方々にとっては、教えられた通りに使ってはいるものの、「何故これで動くんだろう?」という疑問があるのではないでしょうか。このセッションでは、通常のJava新人研修や市販書籍では扱わない、フレームワークの仕組みや、実務でよく利用されるツールをご紹介します。基本的には初心者向けの内容ですが、先輩社員が初心者に教えるときに説明しやすいような資料にしています。

#ccc_f1

[Room G+H]
実録 Blue-Green Deployment 導入記 #ccc_gh1

大中浩行

JJUG CCC 2014 Fallのセッション「私がTDDできないのはどう考えてもお前らが悪い!~エンタープライズJava開発でのTDD適用の勘所~」で事例として取り上げたサービスのその後についてです。ユーザーの拡大に伴いサービス無停止でのリリースに取り組む事になり、TDDの推進をミッションとしてプロジェクトに参画した発表者はデプロイの自動化、そしてインフラ運用を担当するようになりました。
疎結合アーキテクチャーのシステムを、サービス無停止でリリースできるように作り替える上でサブシステム相互の連携をどう作り込むのか、DNSやロードバランサーの挙動にあわせて稼働系システムの連携をどう作り込むか、そしてその中でテストの自動化がどう役割を果たすか。最終的にBlue-Green Deploymentになるまで1年以上に及び、今なお改善をつづけているインフラ運用の実態について発表します。

#ccc_gh1

11:00-12:00

[Room A+B+C+D]
Java EE - What's Next? #ccc_a2

Anil Gaur(Oracle Corporation)

今年9月に行われたJavaOne San Francisco 2016において、オラクルはJava EE 8の修整、およびJava EE 9の提案を発表しました。この新しい発表内容にはクラウド、マイクロサービス、サーバレスなど、これまでJava EEには含まれていなかったテクノロジー領域の取り込みが大きな要素となっています。本セッションでは、その発表を行ったOracle CorporationでJava EEおよびアプリケーションサーバ製品、PaaS製品の開発を担当する部門のトップであるAnil Gaurが来日し、今回の提案の趣旨や目的、将来的にJava EEをどのような方向に向わせるべきと考えているのかなど、技術的な要素も含めて直接皆様に説明致します。是非、ご参加ください。

#ccc_a2

[Room E]
世界は四角ではない~JavaFXで地図を描く #ccc_e2

高橋 徹

昨今では、地図を見たいときはGoogle Mapsを代表にいくつかのWebサービスを使って見ることが多いでしょう。このWebサービスで提供される地図は、多くがメルカトル図法で投影したものになっています。このメルカトル図法は16世紀に考案され、当時の羅針盤で航海する用途に適していました。しかし、緯度が高いほど縦横に引き伸ばされる性質があり、市街や県・地方などの狭い範囲を表示する分には問題が目立ちませんが、世界地図を表示するとなると歪みが大きくなります。有名な話では、グリーンランドがオーストラリアより大きく見える、日本から真東に向かうと北米に至るように見えるが実は南米である、などです。世界を正しく把握するには、メルカトル図法で表示した地図だけは不十分です。
そこで、より世界を正しく把握するために、メルカトル図法以外で投影した地図を表示するプログラムをJavaFXで作成します。本セッションでは、世界の海岸線データをもとに、オープンソースの地図投影ライブラリ(Proj4j)を用いていろいろな投影法で投影した地図をJavaFXで表示、任意に拡大・縮小・スクロールするプログラムの作り方をステップ・バイ・ステップで紹介します。

#ccc_e2

[Room F]
SpringはどうやってDIしているのか #ccc_f2

かりや

https://spring.io/ を覗くと Spring MVC, Spring Batch, Spting Integration など様々なフレームワークがあります。これらのフレームワークは Spring を使った DI を利用しています。では、Spring はどのようにして DI を実現しているのでしょうか? @Autowired とか見て「何これ?」って思ったことないですか?私はそう思いました。ソースコードを見ながらその実現方法を探っていきます。

#ccc_f2

[Room G+H]
SIerもはじめる、わたしたちのDevOps #ccc_gh2

しょぼちむ / 阿佐志保

「週末の予定空いてる?」
業務システムに携わる多くのエンジニアにとっては、このセリフがデートのお誘いではない、、ということは周知の事実です。
大規模基幹システムの多くは、業務システムが停止する休日夜間などに、アプリケーションのバージョンアップが行われます。そのため、アプリケーションエンジニア/ネットワークエンジニア/サーバエンジニアは、休日返上で作業にあたります。
が、いくら開発環境/テスト環境でテストを念入りに行っても、リリース手順書をなんどレビューしても、偉い人のハンコをスタンプラリーしても、、、、悲劇は起こります。
継続的インテグレーション/継続的デリバリーができるしくみを作れば、より良い業務システムを安全に素早くお客様に届けられる未来がくるはず!・・・というわけで、SIerである私たちが日々試行錯誤したり調査研究したりしていることをお話をさせていただきます。
セッションでは、まず、開発の最前線で業務に携わるエンジニアの目線から、Gitを使った開発の進め方/CIツールを使ったビルドやデプロイに加えて、課題管理やチーム内コミュニケーションの取り方など、現場で行なわれているDevOpsへの取り組みについて紹介します。
次に、調査研究エンジニアの目線から、継続的デリバリーを実現するため、Docker/Kubernetesを使ったアプリ実行環境構築、サービス無停止でのバージョンアップ、パブリッククラウドを活用したスケーラブルなアーキテクチャなど、今後取り組んでいきたい『強いインフラ』の話をさせていただきます。
惚れるなよ。

#ccc_gh2

12:00-13:30(昼休憩)

ブースLT1 #ccc_lt1
ブーススポンサー各社によるLT(5分×4社)です。

#ccc_lt1

13:30-14:20

[Room A+B]
Event Driven Microservices with Spring Cloud Stream #ccc_ab3

槙 俊明(Pivotal)

皆さん、マイクロサービスの通信にHTTP/RESTしか使っていないのでは?Spring Cloud Streamはメッセージングよってサービス間を疎結合にするフレームワークです。
本セッションでは実装方法だけでなく、Persistent Pub/Sub, Consumer Group, PartitioningといったSpring Cloud Streamのメインコンセプトの詳細を説明します。また、Spring Cloud StreamをConsumer Driven Contractでテストする方法、Distributed TracingのためにZipkinと連携する方法、Reactive APIでWindow処理をする方法そしてSpring Cloud Data Flowを用いてストリームをオーケストレートする方法も紹介する予定です。(本セッションはSpring Framework, Spring Boot, マイクロサービスといった技術は既に知っていることを前提とします。)

#ccc_ab3

[Room C+D]
日本でも出来る!最先端のDevOpsを導入する方法 #ccc_cd3

牛尾 剛(Microsoft Corporation)

近年DevOps のトピックがホットになっています。しかし、新しい開発の進め方の導入が難しいと言われる日本の企業文化の中でどうすれば、上手くいくのでしょうか?本公演では、DevOps の歴史と概要を解説から始まり、大小様々な業種の企業に対して、アジャイル/ DevOps を導入して15年以上を誇るスピーカーが日本において、様々なテクニックを用いてDevOps を導入して本当にビジネスバリューを出すための、具体的な進め方からポイント、そして実際の効果までをお話しさせていただきます。さらに、Redmondで行われたマイクロサービスのハックフェストのサポートを通じて感じた米国と日本の違いについてもご報告いたします。

#ccc_cd3

[Room E]
10年運用している画像サービスでのJavaの活用と今後の展望 #ccc_e3

盛岡 尚記(フリュー株式会社)

フリューでは10年以上に渡って、Javaを基盤技術として採用してきました。 元々はJavaによる分散オブジェクト技術を開発していた部署だったのが、サービス主体の事業部に変貌していく中でたくさんのサービスを作り上げ、その過程で様々なフレームワークの検証や採用、ときには開発言語を変えてみたこともあります。
ここ数年のトピックとしては、フリューのメインコンテンツであるプリ画像配信のためのサービスがゆるやかに拡大してきています。携わる開発者も増えてきて、組織の形に合わせたアーキテクチャに変更していく必要も出てきました。しかし長年運用してきたしがらみも多く、クラウド環境への移行も簡単には進みません。
このセッションでは、長年に渡って運用してきたサービスがどのような変遷を辿っていたのか、また現状直面している主にシステムアーキテクチャ面での課題にどのように対応しようとしているのかをお話します。10年たった今、まだJavaでやろうとしている背景や、最近導入したSpringFrameworkとその周辺システムを活用してみてどうだったかなどをお伝えできればと思います。

#ccc_e3

[Room F]
メンバーのスキルアップ、どうしてる? -Java 100本ノックで新加入メンバーを鍛えてみた- #ccc_f3

福嶋航(株式会社ジャストシステム)

チームの力を高めるには各メンバーのスキルアップが欠かせません。本セッションでは、Java 100本ノック https://github.com/JustSystems/java-100practices を用いたトレーニングについて、1日どのくらいのペースで進むのか、どの程度の力がついたのかの実例をご紹介します。また、保守性や拡張性の高いコードを残していくために気をつけるべき点について、弊社での実事例を元に作成したソフトウェア開発のアンチパターンのうち、コーディングに関するもの7つをご紹介します。

#ccc_f3

[Room G+H]
Javaエンジニアのためのブロックチェーン入門 #ccc_gh3

漆原 茂(ウルシステムズ株式会社)

インターネット誕生以来の革新的技術とも言われる「ブロックチェーン」。今、多くのビジネスマンが活用方法をめぐって大激論を交わしています。しかし、真の主役はITエンジニアです。私たちが動かなければ、せっかくの技術も世の中を変えることはできません。 ブロックチェーンをどう理解すべきか、どんな風に実装するのかを分かりやすくお話します。

#ccc_gh3

[Room L, 13:30-13:50]
Spring超入門-Springを1年半使ってみて- #ccc_l1

内立良介(うちたて りょうすけ)

Springの勉強しなきゃ!何から始めればいいんだろうか?特に新入社員の方は右も左もわからずに困っていることでしょう!そんなSpring超初心者向けに、Spring歴1年半目線で困ったことや取り組んでみたことについて簡単なWebアプリケーションを作りながら話したいと思います。また、国内外のSpringのイベントに参加して感じたこと、1年半のプログラマ生活についても話せたらと思います。

#ccc_l1

[Room L, 14:00-14:20]
Java + spring-boot で書く! LINE BOT ライブコーディング。 #ccc_l2

Tokuhiro Matsuno

昨今、LINE, Facebook などのメッセンジャープラットフォームでの BOT 開発が注目されております。本セッションでは、LINE が公開している LINE BOT SDK を利用して、LINE BOT のライブコーディングを行います。
Java だとちょっとセットアップなどが面倒そうだなあ、と思ってしまう方も多いと思うのですが、spring-boot と LINE BOT SDK を利用した開発なら気軽に始められれます。Java でも BOT の開発がサクサク行えるのだ、ということを live coding を通じて明示したいと思っております。

#ccc_l2

13:30-15:20(ハンズオン)

[Room I]
Javaの型システム再入門 0オブジェクト指向からジェネリクスまで0 #ccc_i1

なぎせゆうき

事前資料はこちらです。
当セッションではJavaのオブジェクト指向からジェネリクスまで型システムについての基礎を取り上げます。前半はJavaのオブジェクト指向の基礎を学びます。
・リスコフの置換原則
・契約プログラミング
・GoFデザインパターン
後半はJava5から搭載されたジェネリクスによって型システムがどのように拡張されたかを学びます。

#ccc_i1

[Room M]
先取り Elasticsearch 5.0 ハンズオン! #ccc_m1

樋口 慎

事前資料はこちらです。
Elasticsearch バージョン5のハンズオンを行います。Elasticsearch + Kibanaを使ったデータ分析を実際に体験していただけます。5.0で追加されたCSVインポート機能やIngest Nodeなどを活用します。

#ccc_m1

14:30-15:20

[Room A+B]
Spring CloudでDDD的なマイクロサービスを作ってみる #ccc_ab4

椎葉 光行

Domain Driven Designをちょっと取り入れてみたら結構いい感じなので、もう一歩前進したいなと思っているところ。具体的には「ドメインイベントを使った集約同士の連携」を実装して、自分の引き出しに入れておきたい。なので、このJJUG CCCを機に最近勉強してるSpring Cloudを使って、あと全然触ったことないけどKafkaを使って、DDD的なマイクロサービスを作ってみようと思う。

#ccc_ab4

[Room C+D]
GitBucketを支えるJava技術とグローバルで使われるOSSの作り方 #ccc_cd4

竹添 直樹

GitBucketはJVM上で動作するGitHubライクなオープンソースのGitサーバです。HTTP/SSHによるGitリポジトリへのアクセスはもちろんのことIssues、Pull Request、Wikiといった基本機能、さらには社内利用でニーズの多いLDAPとの連携や、プラグインによる拡張性も備えています。2013年に開発を開始し、いまではGitHub上で6000スターを獲得し、世界中で利用されるアプリケーションに成長しました。
GitBucketはScalaで記述されていますが、その基盤はJVM含め多くのJava技術に支えられています。本セッションではGitBucketのこれまでの歩みを振り返るとともに、その技術基盤であるScalaおよびこれらのJava技術について紹介します。また、コミュニティという観点からはグローバルで利用されるオープンソースプロダクトの作り方、そしてコミュニティ運営の難しさについても触れたいと思います。

#ccc_cd4

[Room E]
PDF と Java 101 (JavaでPDFの紹介) #ccc_e4

Michael Demey (マイケル デミー )

皆さん一度はPDFのドキュメントを開いた経験はあるかと思います、また ほとんどのPCは、PDFリーダーや印刷機能が搭載しております。このセッションでは、iTextを利用してjavaでPDF文書簡単に生成する例や、一般的な使用事例も含め、PDFのプロセスを最適化するための情報と裏技をご紹介します。なお、本セッションは英語で行われます。

#ccc_e4

[Room F]
どうしようJUnit 5 #ccc_f4

irof

リリース間近のJUnit 5。JUnit 4を使用している方は多いかと思いますが、次バージョンの足音が聞こえてきました。現状維持か移行かなど、「どうしよう」と思っている人は多いでしょう。私もその一人です。そんなわけで、どうしようか考える材料を集めて話そうと思います。

#ccc_f4

[Room G+H]
JJUG presents マチコ&河村の怒り新党 #ccc_gh4

川添真智子 / 河村嘉之 / 横田紋奈

IT業界で噂のマチコ・デラックスがJJUG CCCに登場!怒り新党は、この業界の幸せの目指す新しい政党です。「ちょっと腹立つけれど、これって怒っていいんだろうか…。」という投稿メールに対して、幹事長 マチコ・デラックスと政調会長 河村嘉之がトークを繰り広げます。テーマは「開発現場において最大多数の最大幸福を目指す」。エンジニア、プロジェクトマネージャー、営業…。様々な立場の人が関わってシステム作りをする上で、皆が幸せになるために何が出来るのか、ご参加者からも意見を募りつつ語る会です。なお、盛り上がりすぎても脱線しても大丈夫、庶務の横田紋奈がちゃんと進行します。

#ccc_gh4

[Room L, 14:30-14:50]
JVM上で動くプログラミング言語「Pyrite」の設計と実装 #ccc_l3

宮腰 重彰

JVM上で動くプログラミング言語「Pyrite」を2016年6月にファーストリリースしました。Pyrite は Java 1.3 相当の言語機能をサポートした汎用プログラミング言語で、Java との相互運用性もあります。新しいプログラミング言語をJVM言語として設計した目的と Pyrite の特徴、Pyrite を実装する際に発生した課題及び、それらをどのように解決していったかをお話しします。

#ccc_l3

[Room L, 15:00-15:20]
JMH超入門 #ccc_l4

すずきただし

Javaのベンチマークをとるときに何を使っていますか?計測したい個所を
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
で囲んで、end - start で算出していませんか?OpenJDKに存在するベンチマークツール、JMHについて簡単なデモンストレーションを交えながらご紹介出来ればと思います。

#ccc_l4

15:20-16:00(休憩)

ブースLT2 #ccc_lt2
ブーススポンサー各社によるLT(5分×2社)です。

#ccc_lt2

16:00-16:50

[Room A+B]
ドメイン駆動設計とScala 0既存プロジェクトへの適用0 #ccc_ab5

角谷文康(株式会社ビズリーチ)

複雑性が増してきた、Scalaで開発された既存プロジェクトに対してドメイン駆動設計の考えを取り入れて複雑性に立ち向かうお話です。新規開発時、既存プロジェクトどちらもDDDを始めるにはどうしたら良いのか悩みがつきものです。その悩みの解決の一助になれば幸いです。

#ccc_ab5

[Room C+D]
JAX-RS REST Client で Cognitive Service や Excel を操作しよう #ccc_cd5

寺田 佳央(日本マイクロソフト株式会社)

Microsoft Azure は RESTful Web サービスを利用して、写真や動画の画像認識を行ったり、音声解析、テキスト解析などをおこなう、Cognitive Services を提供しています。例えば、画像ファイルから年齢や性別、感情といった情報を取得したり、2つの画像を比較し、顔が一致するかどうかを検知する機能もあります。さらに、OCR (光学式文字認識) 機能なども用意されております。これらのサービスはすべて REST API を使って、利用制限内であれば無料で試すことができます。また、今年 8 月「The REST API in Excel Service」を提供開始し、REST で Excel のデータを操作することも可能になりました。本セッションでは、こうしたサービスを JAX-RS REST Client API を使って、こうした REST で呼び出しができる Azure 上のサービスをご紹介します!マイクロ・サービス化においても今後ますます需要の高まる JAX-RS Client 、基本的な実装方法から効率的な実行方法(非同期処理)までご紹介します。いままでApache HttpClient しか利用されてこなかった方もぜひご参加ください。

#ccc_cd5

[Room E]
社内の開発改善からOSS公開へ: DBFlute likeなライブラリの開発をしたお話 #ccc_e5

長堀 翔太(株式会社U-NEXT)

U-NEXTではサーバサイド開発において DBFlute を中心に複数のプロダクトを使用していますが、それぞれを使用する際の実装方法が異なることに由来する学習コストの高さが課題になっていました。そこで、独自のwrapperクラスを作成するところから始め、社内エンジニアのDBFluteの習熟度が高いことから、他のプロダクトに関しても DBFlute like な実装で使用できるようなものを作ろうということで、KVS (Redis) と Solr に関して社内でライブラリを開発し、これをOSSとして公開しようということになりました。
本セッションでは、この KVS と Solr のライブラリに関して、仕組みの概要や開発中のエピソードなどをお話ししたいと思います。

#ccc_e5

[Room F]
JVMのトラブル解決のためにやったこと~メモリー/スレッド #ccc_f5

岩佐 淳史(エムスリー株式会社)

JVM, メモリー(主にヒープ), スレッドの簡単な解説をし、動作を調べる方法を実際のトラブル事例を交えて説明します。再発を未然に防止できるように継続してウォッチできる手段も紹介できれば、と

#ccc_f5

[Room G+H]
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの? #ccc_gh5

田中孝清(日本IBM)

急速に普及しているクラウドの世界。ですが,そこ用いられるプログラミング言語は,スクリプト言語が中心でJavaは少数派です。なにがクラウド上でのJava利用を妨げているのでしょうか。国内外に多数いるJava技術者はクラウドの世界でも活躍することができるのか?どうすればJavaでクラウドネイティブなアプリケーションを作成することができるのか。このセッションではIBMの先進的な取り組みをご紹介しながら,その秘訣をおつたえします。

#ccc_gh5

[Room L, 16:00-16:20]
JavaFX アプリケーションを素敵に着飾ってみる #ccc_l5

トースト小僧

JavaFX は GUIアプリケーション開発用のライブラリです。Java SE8からSwingに代わり標準となりました。JavaFX では HTML のように CSS を使って簡単に見た目を変更することができます。
このセッションではCSS(と、時間があればライブラリ)を使って、JavaFX アプリケーションの見た目を変える方法を説明します。ほか、CSSを書く際に役立つツール等を紹介します。

#ccc_l5

[Room L, 16:30-16:50]
受験勉強経験も留学経験もない日本人がJavaOneで英語で講演できるようになるまで #ccc_l6

山本 裕介

エスカレーター式の高校にいた関係で大学受験とは無関係。留学経験もありません。英語を話すパートナーがいたこともありません。そんな私が海外のベンダと取引をする会社を作り、果てはJavaOneで講演できるようになるまでどんなキャリアを積み、どんな形で英語を学んできたのか、秘密を明かします。

#ccc_l6

[Room M]
Clojure を用いた Web アプリケーション開発について #ccc_m2

あやぴー

Clojure という言語をご存知の方は多いと思いますが、実際に国内の企業が利用しているという事例を聞いたことがある方は少ないのではないでしょうか。また Clojure という言語に興味はあっても、どういうところに利用できるのか分からなかったり、どのような点で他の言語より優れているか、採用するメリットはあるのかというところがなかなか分からないことが多く二の足を踏んでいる方もいることでしょう。これら背景を踏まえて当セッションでは ふつうのベンチャー企業 が Clojure を採用して、 Web アプリケーションを開発した経験を元に Clojure を採用して良かった点などをお話しようと思います。

#ccc_m2

16:00-17:50(ハンズオン)

[Room I]
WildFly Swarm ハンズオン #ccc_i2

田邊 義真(たなべ よしまさ)

事前資料はこちらです。
WildFy Swarm は Spring Boot のように uber jar として WildFly ベースの Java EE アプリケーションを作ることができる仕組みを提供するほか、Netflix OSS などとの連携も取り入れる意欲的なプロジェクトです。
http://wildfly-swarm.io/
本ハンズオンでは以下資料を用いて、 WildFly Swarm の簡単な CRUD アプリの作成、インテグレーションテスト、SSO サーバを用いた認証などを体験していただきます。ちょっと Java EE さわってみたいな、といった方にもおすすめです。
https://emag.gitbooks.io/wildfly-swarm-tour/content/

#ccc_i2

17:00-17:50

[Room A+B]
JPA と DDD の関係で僕が思っていること #ccc_ab6

opengl-8080

JPA と言えばどういうイメージをお持ちでしょうか?仕様が巨大で使いづらい。アノテーションが複雑で難解。etc...
JPA に関して、私個人の感覚としては、あまり良いイメージは聞かない気がします。私も最初の頃は上述のようなイメージを持っており、使いづらいなぁと思っていました(今も思っています)。しかし、 DDD (ドメイン駆動設計)を学ぶにつれて、 JPA の仕様が DDD とかなり深い関係にあるなと思うようになりました。今では、「DDD をするなら O/R マッパーは JPA かなぁ」と思うようになっています。
なぜそのように考えが変化したのか、また JPA で DDD のプラクティスを実装するとどんなふうになるのかについて、お話できればと思っ.....ていたのですが、 CfP を出した後に JPA の仕様や実際の挙動を調べていると色々問題も見つかり出しました。大筋は変わりませんが、実際にプラクティスをやろうとしたときに発生する辛み・限界とかもご紹介することになると思います。
なお対象者のイメージとしては、 JPA と DDD について多少知っていることが望ましいです。JPA はどういう O/R マッパーなのか概要を知っていること、DDD については、「エンティティ」・「値オブジェクト」・「集約」についてざっくり知っていることが望ましいです。

#ccc_ab6

[Room C+D]
Selenideを試行錯誤しながら実践するブラウザ自動テスト #ccc_cd6

うらがみ

Selenideはブラウザテスト自動化のためのフレームワークで、Selenium WebDriverを使いやすくラップしたものです。使いやすいように設計されてはいますが、それでも使いにくい所があったり工夫する余地があると思っているので、その辺の話を聞いてほしいです。
本セッションの前半はSelenideの紹介を、後半は私がSelenideを使う際に行っている工夫などをお話します。ブラウザ自動テストを題材にしていますが、テスト技法には触れず、JavaフレームワークであるSelenideを肴にした技術セッションです。

#ccc_cd6

[Room E]
Javaによる理想のデザインパターン #ccc_e6

らしぇる(藤崎 友美)

Javaプログラムで使われているデザインパターンについて、アクセス修飾子との関係をどのようにして設計を行っていくと良いのか。ユーザビリティを考慮したライブラリのあるべき姿とは一体どのようなものか。サンプルコードを交えながら保守・運用面での理想的な形を改めて検討しなおしたモノについて、5パターン程度紹介していきます。

#ccc_e6

[Room F]
JVM言語とJava、切っても切れないその関係 #ccc_f6

yy_yank

JVM言語全般とJava言語を中心にして言語仕様策定や各JVM言語のこれまでの歴史をもとに両者の関係性と、今後どう発展するのが望ましいかを考察します。JVM言語の登場、JVM言語とJavaの関係、Javaを選ぶかJVM言語を選ぶか。

#ccc_f6

[Room G+H]
Spring Cloudアプリケーションの開発にDockerを活用し、Kubernetes上にデプロイするまで #ccc_gh6

村田 賢一郎

Dockerを活用して、Spring Cloudアプリケーションを開発する際の、ローカル環境での開発、テストからKubernetes 上へのデプロイまでの一連のプロセスと環境について試行錯誤した/している内容について共有します。

#ccc_gh6

[Room L, 17:00-17:20]
超先取りShenandoahGC #ccc_l7

小田洋平

G1GCはJDK9でデフォルト化されるなど大きな注目を集めていますが、既にG1GCの後継となるGCの開発がOpenJDKのプロジェクトとして進められています。それがShenandoahGCです。このセッションではShenandoahの肝である並行コンパクションを中心に、Shenandoahの優れている点と課題についてお話します。

#ccc_l7

[Room L, 17:30-17:50]
React meets Nashorn #ccc_l8

Manabu Matsuzaki

まだまだフロントエンド界隈で人気のReact。サーバサイドでもJavaScriptエンジンを動かしてサーバサイドレンダリングするケースがあります。例えば、
・フロントエンドとサーバーサイドでコードを共有する
・初回のページ表示が遅い・表示がチラつくという問題を解決する
Java8に搭載されているJavaScriptエンジンであるNashornでサーバサイドレンダリングして遭遇した問題・つらみについてお話します。

#ccc_l8

[Room M]
Java でつくる低レイテンシ実装の技巧 0GCはさだめ、さだめは死。0 #ccc_m3

山崎良祐 / Ryosuke Yamazaki

私たちが日々見ているWebサイトの広告枠。その枠は表示するごとにオークションが開催され、そこで、落札した人だけがその枠に広告を出すことができます。そのオークションの開催期間は、わずか100ミリ秒。もちろん人力では処理不可能なので、各社が自動入札サーバの開発にしのぎを削っています。その自動入札サーバは単に言えば「HTTP で JSON を受け、JSON を返す、ただの Web アプリケーション」にすぎません。ただ少し性能要件が厳しいだけです。Java でそのサーバを実装するのは直感的に無理なように思えますか? Full GC が発生した瞬間に100ミリ秒はあっという間に過ぎてしまいますよね。Full GC を回避しつつ、安定したレスポンスタイムを実現するには、どうしたらよいのでしょう? ……この課題に対処する手法を紹介しながら、Java で作る低レイテンシ実装の技巧に迫ります。

#ccc_m3

18:00-18:30(休憩)

ブースLT3 #ccc_lt3
ブース各社によるLT(5分×2社)です。

#ccc_lt3

18:30-19:20

[Room A+B]
Payara Micro の設計と実装 #ccc_ab7

蓮沼 賢志 (HASUNUMA Kenji)

GlassFish をコードベースとしたマイクロサービス向けアプリケーションサーバである Payara Micro がどのような思想のもとに生まれ、どのように実装されているのかを解説します。アプリケーションサーバの実装と言われると難しそうに聞こえますが (そして実際に難しいのですが)、結局のところ main メソッドを持ち java コマンドから起動されるプログラムに過ぎません。このセッションではアプリケーションサーバのからくりについて、話題の Payara Micro を題材に取り上げてみようと思います。

#ccc_ab7

[Room C+D]
Javaエンジニアのキャリアを考えるパネルディスカッション #ccc_cd7

Jun Ohtani / 山本 裕介 / Yoshiori SHOJI / hishidama

Javaエンジニアとして活躍してる方、Javaエンジニアだった方で今は開発者ではない働き方をしてる人を招いてJavaエンジニアのキャリアパス等についてパネルディスカッション形式でさまざまな働き方について議論します。
登壇予定
@yusuke
@johtani
@yoshiori
@hishidama

#ccc_cd7

[Room G+H]
全文検索システムFessを用いた検索システム構築入門 #ccc_gh7

菅谷 信介

Fessは「5分で簡単に構築可能な全文検索サーバー」です。 Javaで開発され、検索エンジン部分にはelasticsearchを採用しています。起動すればすぐに全文検索システムとして利用することも可能ですが、APIも提供しているので、開発しているシステムに組み込んで利用することも可能です。
FessではWebやファイルシステム上のHTML、PDF、MS Office系ファイルなどをクロールしてインデクシングすることができます。また、データベース内のデータも取り込んでインデクシングすることも設定だけで可能です。検索についても複雑なクエリーを覚える必要もなく、必要な検索をシンプルに行うことができます。
今回は、Fessを用いた全文検索システムを簡単に構築する方法からJavaでどのように開発しているかなどをご紹介します。

#ccc_gh7

[Room I]
バイトコードが君のトモダチになりたがっている #ccc_i3

阪田 浩一

普段Javaアプリケーションを実行するとき、私たちはあまりJVMで使われるバイトコードを意識することはありません。このセッションではバイトコードであるクラスファイルの読み方を簡単に説明したあと、JavassistやBytemanといったバイトコード操作ツールを紹介します。それを使ってクラスに変更を加える簡単なデモもする予定です。さらに、具体的な使い方としてJava Agentを使ってバイトコードを操作しアプリケーションを実行することに取り組みます。

#ccc_i3

[Room L, 18:30-18:50]
俺のコードがどこで使われているのかわからない問題 - あるいはマイナーOSSの生存戦略 #ccc_l9

渡辺 祐

OSSは星の数ほどあります。有名なアプリケーションもあれば無名なライブラリもあり、しかし無名だと思っていたら突然プルリクエストが飛んできたり、あるいは当の開発者が全く知らない領域で実はそのOSSが重宝されていたというケースもあります。このセッションではマイナーなJavaライブラリをOSSとして公開している本人の苦悩や、実際に遭遇した思わぬ利用シーンについてお話しします。

#ccc_l9

[Room L, 19:00-19:20]
Pi4Jで簡単! -ラズパイでトイレ空室管理システムをつくってみたよ- #ccc_l10

梶栗 芳夫

会社のトイレ、混雑していませんか?ラズパイを利用してトイレ空室管理システムを作って社内に設置しました。春のJJUGでもセッションがあった、Pi4Jを利用してみました。
GPIOを利用する基本的なラズパイの実装方法や、設置するまでの、はまりポイントをご紹介したいと思います。これを聞けば、あとはラズパイを買うだけでトイレ空室管理システムを作れるはず!
普段の業務は、大きなプログラムの一部を扱うだけ、中々全体を見渡せない新人エンジニアの人たち(破片プログラマー予備軍)が、サービスをつくるキッカケになればと思います。

#ccc_l10

[Room M]
Featherweight JavaやGroovyの漸進的型付けについて #ccc_m4

kyon_mm

JavaのサブセットになっているFeatherweight Javaに漸進的型付けを導入する論文「Featherweight Java のための漸進的型付け 伊奈 林太郎 五十嵐 淳」の紹介と、JVMで漸進的型付けを実現していると言えそうなGroovyの関係を解説します。

#ccc_m4

19:30-21:30(懇親会)

#ccc_kon
スピーカーやコミュニティメンバーと知り合いましょう。いつも通りLT大会を開催します!

#ccc_kon

このページは、非公式です。
お気づきの点は @YujiSoftware までご連絡いただくか、または この GitHub に Pull Request をお願いいたします。

アーキテクトやトラブルシューターを務める芸人系エンジニア。コミュニティ活動として、関西Javaエンジニアの会(関ジャバ)の立ち上げや、日本Javaユーザグループ(JJUG)の幹事を務める。サンフランシスコのJavaOne 2013、2015や、ラスベガスのSpringOne Platform 2016に登壇。そして好きなアーティストはBABYMETALデス!

Anil Gaurは、オラクルのCloud Application Foundationの開発を統括するGroup Vice Presidentです。彼はWebLogic Server、GlassFish、CoherenceなどのJava EEプラットフォーム製品群の開発をリードしています。また、業界標準の策定の牽引役でもあり、現在ではクラウド・ネイティブとマイクロサービスにフォーカスする次世代Java EE標準の策定に注力しています。24年におよぶコンピューター業界でのソフトウェア製品開発と関連するビジネス開発の経験を持ち、 オラクルへの参画以前はサン・マイクロシステムズにてGlassFish Application Serverの開発とJava EEの策定をと統括するソフトウェア開発部門のディレクターを務めていました。

新卒から NTT グループにて Java を中心としたテクニカルサポートを 7 年以上従事。プロセスダウンやパフォーマンス問題の解決など 100 件を優に越す技術問合せを幅広くこなしつつ、発見した Java のバグ修正など OpenJDK コミュニティに貢献。現在 OpenJDK Author, IcedTea Comitter。世の中のトラブルやパフォーマンス問題の低減を目標に、Java 障害解析支援ツール HeapStats の開発や 、JVM・GC・障害解析ツールについて JavaOne や JJUG にて講演を多数行っている。HeapStats は Duke's Choice Award 2016 を受賞した。

Javaとの出会いは1996年で、自宅のMac、職場のSolaris、Windowsで同じプログラムを再コンパイルせずに動かせること、ネットワーク機能やGUI機能を簡単に作れること、オブジェクト指向プログラミングの習得と実践ができること、無償で開発環境が手に入ること、などに感動しました。1998年に社外のJavaコミュニティ有志でJava読書会が開催され、そこに参加するようになりました。Java読書会は、開始以来今に至るまで毎月1回のペースで開催を続けています。

Java EEやSpringなど、サーバーサイドJavaを中心とした研修トレーナー。教育の立場から、技術の啓蒙・普及のため活動しています。

器用貧乏系ソフトウェアエンジニア。新卒入社した時の初めての仕事がJavaでした。最近は Spring Integration, Spring Batch にお世話になってます(あと、Android)。

TDD Boot Campを(TDDBC)主催するコミュニティTDD Base Campを中心として、TDDを始めとするアジャイル開発プラクティスの普及活動に従事。元々Javaプログラマーだったが、コミュニティ活動でテスト駆動開発(TDD)に関わったことをきっかけとして、TDDや継続的デリバリー(CI)の導入運用に関わるようになり、現在は法人向けサービス開発運用のインフラ運用・自動化に従事。

SIerのJavaプログラマです。新妻です。

金融系シンクタンクで銀行/証券向けインフラエンジニアを経験。出産で離職し、専業主婦を経て、現在TIS株式会社の研究開発部門でパブリッククラウドの調査を行ってます。1児のお母さんです。主な著書はプログラマのためのDocker教科書(翔泳社)、Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門(翔泳社)

PivotalでソリューションアーキテクトとしてSpring, Cloud Foundryを使ったプロジェクトの支援をしています。

Webアプリケーションエンジニアとして大阪で働いてます。Javaと娘とチョコレートが好きです。JJUG CCC 2016 SpringではThymeleaf3のお話をしました。チーム作りの話も好きです。

SIerから株式会社ビズリーチへ転職。SIer時代はCOBOLで某カード会社のシステム保守開発、会計システム保守開発、Javaでのシステム開発などやってきました。ビズリーチに転職してからScalaでスタンバイの開発に携わった後は、HRMOSの開発をやっています。

趣味で Java EE を使い、仕事で Struts を使う関西在住の SE。

一部では「Date and Time APIの人」で認知されているようですが、本職は日本 GlassFish ユーザー会の会長です。自称「てらだよしおの弟子」、Java EE と GlassFish/Payara の啓蒙活動は半ばライフワークと化しています。海外では、日本人で初めての Payara Community Contributor(≒コミッタ)として知られています。また、Java EE Guradians の賛同者でもあります。

米マイクロソフト テクニカルエバンジェリスト - DevOps。米マイクロソフトのDevOpsワーキンググループ所属。大手SIerを経てアジャイルやDevOpsの実践者/コンサルタントとして15年以上のキャリアを誇る。国内だけでなく、Agile Conference等の国際カンファレンスでの講演も多数。VietnamのDevDay 2015では2nd Speaker prizeを受賞

Scalaを愛するJVM系プログラマ。業務の傍らOSS開発や執筆活動を行っています。

2001 年 サン・マイクロシステムズ株式会社に入社し GlassFish エバンジェリストとして活動。 2010年 オラクルのサン買収後、日本オラクル株式会社で Java エバンジェリストとして活動。Java の最新技術情報の提供や、Java コミュニティ活動の活性化を、日本 Java ユーザ・グループ(JJUG)と共に行ってきた。 2015年7月、日本マイクロソフト株式会社に移籍し、移籍後もなお Java エバンジェリストとして、マイクロソフト・プラットフォームにおける Java の利用促進・啓蒙活動を実施中。 2016 年 7 月、日本人で 2 人目となる Java Champion に就任。JJUG 幹事の一員でもある。

大阪でSIerをしているJavaプログラマです。

Elasticで日本におけるDeveloper Advocateを担当。Elasticsearch勉強会の立ち上げを行うなど、日本でElastic Stack (Elasticsearch, Kibana, Logstash, Beats)を広めている。 ここ数年は主に全文検索のコンサルティングなどに従事し、lucene-gosenのコミッターなども行っている。

Java歴は10年以上、フィーチャーフォン向けのモバイルサイト構築からアプリ開発(Dojaとか)までJavaでやってきました。最近ではAndroidアプリ開発に首をつっこんだり節操ないですが、ソフトウェア開発が天職だと思ってます!

iText社勤続5年目 シニアデベロッパー。顧客対応からiTextの発展開発に従事。

2014年に新卒でWeb系の企業に入社し、2016年5月に株式会社U-NEXTへ転職。サーバサイドの開発をしたりスクラムマスターをしたり技術基盤開発の見習いをしたりしています。

大阪で働くSIerです。元組み込み系技術者で、現在は業務系です。Twitterにて #意識高い系技術者 タグを使い、変なことばかりつぶやきます。

ソフトウェア開発者。Java歴約20年。サーバーサイドが主戦場。 #Java100 本ノックの人。

ふつうのプログラマです。主に業務Webアプリの開発をやってます。

iOS/swift, Android/Java, Windows/C#と手元で動作を確認しやすいプログラムが好きなエンジニアです。最近はScala/PlayとかJava/SpringとかのJVMと格闘していますので、そこらへんのことを

ゆるふわにSIをやっているビール好きJavaプログラマ。JVM言語のKotlinも好きです。好きなエディタはサクラエディタです。好きなキーバインドはviキーバインドです。

1987年東京大学工学部卒業。2000年7月、先端のビジネスとITの融合を目指してウルシステムズを起業。2011年10月よりULSグループ株式会社代表取締役社長を兼任。クラウドや大規模分散トランザクション、リアルタイム技術を中心とした戦略的ITの実現に取り組む。シリコンバレーとのコネクションも深く、革新的技術をこよなく敬愛している。

よこなです。京都で広告配信サーバを作っています。Scalaを勉強中。

マチコ・デラックス

河村です。JJUGで副会長をやっています。Salesforceの中の人です。

1998年日本IBM入社。2000年より現職。クラウドソフトウェア事業部で WebSphere Application Server の技術者として日本でのWebSphere技術情報の広報活動およびセールス活動に携わっています。

Acroquest Technology 株式会社勤務。Javaによるミッションクリティカルな集中監視システムのフレームワーク開発、およびライフラインを支えるシステム開発に携わる。非同期処理、メッセージング、HAなどが本業である傍ら、Webによる新しいUI表現、開発手法に興味があり、あれこれ模索している。

オープンソースソフトウェアを開発するエンジニア。Apache PortalsでPMCを務めたり、最近はCodeLibsプロジェクトを立ち上げて運営をしています。ここ数年は全文検索や機械学習などでの開発に従事しています。

富山で主にJavaでシステム開発をしている普通のプログラマです。

JBoss/WildFly が好きです。

フリュー株式会社にてプリントシール機と連動して撮影画像をインターネットを通じて提供するアプリケーションを開発/運用しています。コミュニティとしては関西Javaエンジニアの会(関ジャバ)の会長!?となっています。技術的な仕事としてはコード書いたりJVMやSQLのチューニングしたり、サーバの設定したりビルドやCIを整えたり、と何でもやっています。JVMが大好きだけどそこに何も貢献できていないことが最近の悩み。

Springをメインに使用している、サーバーサイドエンジニア。1年目はデータセンターに出入りするインフラ寄りのエンジニアをしていたが、広範囲で活躍できるエンジニアを目指して1年で新卒の会社を辞め、転職し今に至る。ファッションをこよなく愛しており、Javaエンジニア=スーツのイメージを変えようと活動中!

世界で何番目かに多く Perl のモジュールを公開していますが、最近は業務では Java を書いています(ref. http://gh.metacpan.org/)。最近は spring-boot で web アプリケーションを書いています。LINE BOT SDK の java 版の開発者でもあります。

地方在住エンジニア。それまでのお仕事はエンプラ系Javaシステム開発がメインでした。

東京のSIerで働くエンジニアです。

職歴4年半のJavaプログラマーです。仕事ではバックエンドシステムの開発をやっていましたが、最近はAndroidアプリ開発が多くなったりScalaでの開発が増えていて、Javaに触れなくなりつつあります。趣味はJavaFXでの日記用ツール開発です。私のハンドルを英語にすると toast kid となります。最近、本家の @toastkid さんをTwitterで発見したのでJPをつけるようにしています。

トラブルシューティングツールの侍や、Twitter4JといったOSSを開発しているJavaエンジニア。株式会社サムライズムという会社の社長で、海外のプログラマ向けツールの日本国内展開を手がけています。

普段はScala書いてるGC好きエンジニアです。

現在はWebサービスの運用やDevOps的な仕事をやっています。最近興味がある事はApache FlinkとScalaです。

OSSとしてMixer2というテンプレートエンジンを公開しているおっさんエンジニア。

大学院を半年で休学後、一年間放浪。プログラミング未経験ながら、開発部初の新卒?社員としてU-NEXTに入社。サーバサイドのエンジニアとして、先輩方に揉まれながら日々奮闘中。

elasticsearchを用いたシステム構築を手掛ける。elasticsearchハンズオンセミナー講師を務める

"括弧に魅せられて道を外した名前のないプログラマ"。Java で仕事をしていた頃に Scheme に出会って以来、 Lisp に興味があり今は Clojure で仕事をしています。

ルータ屋さん、クラウド屋さん、イベントの受付システム屋さんを経て、今はアドテク屋さん。平日のストレスは週末に Ruby を書いて消化する。週末のストレスは平日に Java を書いて消化する。暗い小説を時々書く。

主な研究対象はソフトウェアテストの体系的知識を踏まえた自動化やテスト以外での品質担保です。2015年からは特にアジャイル開発におけるテストやメトリクスを活用した高品質なアジャイル開発に取り組んでいます。テスト駆動開発については日本でトップレベルのエキスパートであると自負しています。