garbagetown

個人の日記です

JJUG CCC 2017 Spring に登壇しました #jjug_ccc #ccc_g1

はじめて JJUG CCC でお話してきました!

jjug.doorkeeper.jp

発表資料はこちら。

いろいろと反省点はあるものの、アンケート結果を見る限りでは多くの方に喜んで頂けたようでひと安心。

f:id:garbagetown:20170524124729p:plain:w800

登壇の背景

今回の CfP は身辺が慌ただしかったために一度は見送ったのですが、締め切りが延長されたので応募したところ採択されました。

はじめての CCC なのでひとつずつハードルを越えようと当初は 20 分枠で応募しましたが、JJUG 幹事から 50 分で話せないかと連絡があり、ありがたくチャレンジさせて頂きました。今になって振り返ってみると 50 分でも足りないくらいだったので拡大して頂いてよかったです。

登壇のねらい

自分は準大手システムインテグレータに勤める中堅エンジニアであり、そんな立場からコミュニティに貢献できることはなんだろう?と考えた結果、非機能要件という固めのテーマと Spring Boot という技術的なテーマを関連付ける内容にしました。

技術には強いけど IPA とか ISO とかあんまり知らないなーっていう方々には、これらの固い資料って伊達ではなくて網羅性が超高いので有用ですよっていうことをお届けしたく、一方で新しい技術の導入に苦戦している方々には、こんな便利なツール類がありますよ (って上司を説得して採用しましょう!) っていうことをお届けできればと。

わざわざ休日に勉強会に来るような人は技術者が多いはずなので、非機能要求グレードが届けばいいなーと思っていて、アンケート結果を見る限りこのねらいは達成できたようです。

あとは資料が一人歩きして Spring Boot 導入にひと役買ってくれれば万々歳ですね。

KPT

以下、簡単に振り返り。

  • Keep
    • 当たり前だけどレビューとリハーサルは超重要なので継続。レビュー、リハーサルにご協力頂いたみなさん、ありがとうございました!
    • 節目スライドに目標経過時間を書いておくメソッドは有効なので継続。あからさまに見せるとみっともない場合はスピーカーノート (後述) に書けばよさそう
  • Problem
    • スライドのレイアウトやフォントサイズなど本質的でないところに時間を掛けすぎた。今回の資料でマスタースライドはまとまったので次回以降は改善できそう
    • テンパって当日まで家庭や職場がおろそかになった。公私混同もはなはだしい。猛省
    • テンパって当日ディスプレイをミラーリング設定にしてしまいスピーカーノートが読めなかった。猛省
  • Try
    • ピンマイク、レーザーポインタ、黒曜石などを活用して身軽にプレゼンしたい
    • 音楽や動画などのメディアをプレゼンに活用できないか (<marquee> タグをカクカク動かしたかった…)

Ask the Speaker

以下、登壇後やアンケートなどで頂いたご意見に対する回答。

非機能要求グレードは項目多くて見積もり地獄にならない?

あらゆる案件に非機能要求グレードを全量使うのはアンチパターンです。

ほとんどの案件は「社会的影響が限定されたシステム」になるので、IPA のそれを “竹” として、よりお手軽な “梅” やリッチな “松” とセットで提案するとよいと思います。で、契約できたら各項目を調節して再見積もり。

IPA や ISO の資料は実用性より網羅性重視なので、現場で活用する場合はテーラリング必須だと思います。

spring-boot-admin のほうが便利じゃない?

複数アプリケーションを一元管理したい場合は Spring Boot Admin も便利そうですが、以下の理由より取り扱いませんでした。

  • 運用・保守に特化しており mappings など開発に有用なエンドポイントは見られない (たぶん)
  • 自分が使ったことがない…
  • 発表時間も足りなかった ^^;

Jasypt の鍵はどうやって守る?

暗号化した値をアプリケーションで複合しなければならないので、完全に守ることはできないと思います。自宅の鍵を二個にするのと同じで、攻撃の手間を増やして機会を抑制することが重要かと。

Spring Cloud だと spring-cloud-vault があって、このへんのソリューションになるっぽいですが、まだよく分かっていません。

TERASOLUNA って有償じゃないの?

TERASOLUNA Server Framework for Java (5.x) は独自のフレームワークではなく、Spring Framework を中心とした OSS の組み合わせです。既存の OSS では足りない機能は共通ライブラリとして Apache 2 ライセンスで公開されています:-)

github.com

スライドの字が小さくて読めなかった…

コード例のフォントサイズは先輩方のアドバイスに則って 24pt で書いていて、これより大きくするのは厳しそうです。

お手元で資料をご覧になれるよう URL をお知らせしていましたが、セッションが始まってから来られた方には案内が行き届いていませんでした。申し訳ありません。次回以降、備え付けのホワイトボードに書いておくなど配慮します。

タイトルが抽象的。性能要件の話を期待した

ご指摘のとおりですね。タイトルが細かくなり過ぎるとくどくなってしまうので、セッション概要あたりに明記すべきでした。改善します!

それはそうと、性能要件をフレームワークやライブラリで対応するという観点で研究するのも面白そうです。ぱっと思いつくのはキャッシュ、非同期化、負荷試験あたりかなー。

Actuator が向く場面と向かない場面を明記すると良い

こちらもご指摘のとおりですね。個人的には、システム負荷がそれほど高くなく、かつ運用・保守にそれほど大きな予算を割けない社内システムなどが最適と考えています。

さらに詳しく学ぶためには何を参考にすればいい?

Spring Boot ではなく Spring MVC になりますが、TERASOLUNA 開発ガイドライン を読まれるとよいと思います。kazuki43zoo さんの Qiita も必見です。

英語に抵抗がなければ、やはり 公式ドキュメント が間違いないです。http://www.baeldung.com/ も小粒な情報が多くて参考になります。

まとめ

長くなったので拝聴したセッションの感想は次ポストで。

JJUG CCC 初登壇、楽しかったです!心身ともにしんどいときもありましたが、チャレンジして本当によかったです。

JJUG 幹事各位をはじめ、ボランティアスタッフのみなさん、セッションに足を運んでくださったみなさん、お疲れさまでした。ありがとうございました!