Calmery.me

みっかぼうずにならないようがんばる

HACKER TACKLEに参加してきました

今月の 10 日に福岡で開催された HACKER TACKLE に参加してきた.セミナータイプの勉強会で,コースが複数に分かれていたが事前にどれを聞くか考えて行ってなかった.次はちゃんと決めてから行こう.結局 H-LANE と K-LANE を行ったり来たりしていた.だいぶ時間が経ってしまっているが覚えていることだけまとめておく.

13:00 - 13:50 H-LANE Java9の話(仮)

きしだ なおきさんの「Java9の話(仮)」を聞いた.JShell やらモジュールシステムやら G1GC の話だったと思う.JShell はとても便利な気がする.というかすごい.補完やプロジェクトを開いたり,実行中の他のプロセスに接続できたりするらしい.これぞ本当の Java スクリプトだ.

モジュールシステムだが Project Jigsaw というなんだかとってもかっこいい名前.検索してみると Java9 Jigsaw やらでてきた.モジュール間の依存性の管理を行うらしい.従来は Jar だったがこれからはモジュール,モジュールをパッケージだけで使うこともできる.

G1GC とは...とは?GC には色々と種類がある.マークスイープ GC やコピー GC,世代別 GC などなど.なるほどよく分からない.Java9 からは G1GC がデフォルトの GC となったとかそんなことだったような気がする.

14:00 - 14:50 H-LANE スマートフォン体験を一歩先へ プログレッシブウェブアプリの作り方

次は Increments 株式会社の田中 洋一郎さんの「プログレッシブウェブアプリの作り方」というお話を聞いた.現在のスマートフォンの利用者の使用時間のうち 8 割はトップ 3 のアプリに費やされている.アプリの使用時間は平均なのか 1 時間 28 分という結果らしい.つまりネイティブアプリだとお気に入りのアプリ以外はほとんど触る時間がないということ.なるほど,自分も Twitter とかブラウザしか触っていない.そしてそれに対し Web は 21 分.要はネイティブアプリだとインストールも大変だしそもそも使われにくい.だが Web ならネイティブアプリのお気に入りアプリ以外の使用時間の 18 分よりも長いし使われる確率は高い(?)ということらしい.使われやすいかは疑問だがインストールが不要な点は利点だと思う.

そして最近,Web も進化してネイティブアプリに近づいてきた.HomeScreen や Splash,Fullscreen,Offline,Theme,Push などなど.今だと AndroidChrome では Manifest を利用している,Service Worker を使用している,HTTPS で提供されているとホーム画面に追加するかと自動で利用者に聞いてくれるらしい.すごい.

さらにポイントに近づいたら自動で Web ページを立ち上げてくれるフィジカルウェブなるものがある.アプリをインストールしてくださいではなく Web で提供する.サービスワーカーを利用しプッシュ通知を行う.Cache のコントロールも SW-Toolbox や SW-Precache なる便利なものがあるんだそう.

とにかく Web すごいからやってみようというお話だった,と思う.

15:00 - 15:50 K-LANE リレーショナルデータベースとの上手な付き合い方

日本オラクル株式会社の奥野 幹也さんの「リレーショナルデータベースとの上手な付き合い方」を聞いた.簡単に言えば,データモデルをわかっていない.トランザクションがわかってない.実装がわかってない.皆,適当に使っちゃってるから理論を理解して使おうねというお話だった.

そもそもなぜデータベースを使用するのか.開発や運用で楽をするために使用する.整理しておきたいし好きなときに取り出したい,自由に更新したい.じゃあ使うしかないよね.

ちなみにファイルでやると,構造が難しい.同時アクセスの際の排他的制御が難しい.マシンクラッシュしたら中身はどうなる.などなど.では表計算では,インデックス検索ができない.同時アクセスができない.トランザクションなどそんなものはない.UNION などできない.データベースは頑張ってるんだ.

ちなみにトランザクションとは,同時アクセスによる異常を防ぐ.矛盾が起きないような順番で命令を実行する.クラッシュしても COMMIT されていない分はもう一度実行してくれるクラッシュリカバリ.便利だ.

最近流行りの NoSQL についてもちょっと説明があった.トランザクションがなく,リレーショナルモデルではない,制約がなく,データの正しさの保証はない.全てアプリケーションから頑張ってねということらしい.おお,つらい.

リレーショナルモデルとは,データへのアクセス演算のデータモデル.メモがおかしい.ちゃんとメモしてない.正規化理論とは,更新によって起きる矛盾をデータベースによって防ぐ.同じデータがあると矛盾の原因になってしまう.なのでデータモデルが必要となる.じゃあ使おう.データを入れるだけでなく,取得して利用するために必要で,データモデルに沿った演算が必要だということ.ちょっと曖昧すぎるというか全然わかってないので勉強する.

あとはパフォーマンス.そもそも性能が必要.命令の無駄を省かなければならない.そのために実装を知り見積もりをする.時間がかかるクエリやアクセスが集中している部分を見る.不要なデータはないか.よりよくデータベースを利用するために,まずは理論を理解しようねということだった.

16:00 - 16:50 H-LANE Go言語の最新事情と並列処理についてのおさらい

次は GDG 中国の横山 隆司さんのお話を聞いた.Go 言語,新しくバージョン 1.7 がリリースされたがこのリリースに含まれる Vendoring support がいいらしい.パッケージのバージョンが固定できるそう.あと Static Single Assignment というものが導入された.またまた速くなったみたい.

その後は並列処理のお話.まあこのあたりは調べながらやった方がいい気がする.Go 言語,入門本だけ買って詰んである.そろそろやろう.Go 言語はいいぞというお話だった.

17:00 - 17:50 K-LANE いますぐ始めるCloud Foundry!

次は Pivotal の槙 俊明さんの「Cloud Foundry!」というお話を聞いた.Cloud Foundry とはオープンソースの PaaS ソフトウェアだそう.コマンド一つで Web アプリケーションのアップロードから起動,スケールの変更まで何でもできてしまう優れもの.Docker のようなものということ.ちなみに Docker のイメージもサポートしているとのこと.

基本は環境変数から接続情報を取得する.この形がスタンダードなのかも知れないが,自分はアプリケーションで個別に設定を作りたかったりたくなかったり.ちなみにアプリケーションにデータベースなどの外部サービスを追加することもマーケットというものがありコマンド一つで簡単に行えた.

実際に自分も Pivotal に登録してやってみた.かなり詰まったのだが最終的にはちゃんと動かすことができたので良かった.
f:id:calmery:20161003213947p:plain
助けていただいた.本当にありがとうございました...


使ったことがなかったしいい経験になった.

18:00 - 18:50 T_LANE アジャイル開発のテスト -自動化でしょうか。いいえ、戦略勝ちです。-

最後は kyon_mm さんのお話.うさ耳だー!と心の中で叫んだのは内緒.チームでの開発のお話だったけどちょっと待ってメモがない.

確か,今は自動化してテストすることが目的なのではなく,自動化することが目的となってしまっていて意味がない.自動化によって得られるメリットよりもデメリットの方が大きくなってしまっているというお話だった.テストの対象に大きな変更があったら自動化のテスト自体もまた作り直す.手間だし時間もかかってしまう.それよりはテスト自体を最小限に,不具合自体が出ないようにする.そのために二日に一回,作業進み具合など確認を行っているみたい.さらに,その確認自体に時間がかかってしまったら,なぜそこに時間がかかってしまったのかを考える.要は何かよからぬことが起こってしまったのであればその原因をちゃんとひとつひとつ潰していくことが大切ということなんだろうか.

懇親会

まあ,はい.色々話ができてよかったですがなぜマクドナルド?
f:id:calmery:20161003215106j:plain

まとめ

色々知ることができたし,実際に自分で使ってみたりということもできたのでよかったと思う.実際に役立てられるものも少なくなかった.来年も参加したい.