【社内勉強会】Javaの仕組みとWebAssembly(wasm)についての勉強会を開催しました!(2018/10/25)
2018/10/25(木)に社内勉強会としてLT大会を開催しました!
この記事では、その内容をざっくりとお届けしたいと思います。
登壇者(だれ?)
今回の登壇者は2人です。
1人目は、Rossoの@yosuke_3110です。
@yosuke_3110は、現在業務でJavaを用いたアプリケーション開発に従事しています。
プログラミングの経験が浅い方、メモリ周りの知識が疎い方向けに、
Javaをベースとして以下のことを解説してくれました。
- オブジェクト指向とは
- デザインパターンとは
- ガベージコレクション(GC)とは
2人目は、おそらくご存知の方も多い@chikoskiさんが
WebAssembly(wasm)について、分かりやすく解説いただきました。
内容(どんな内容だった?)
今回は公開できるスライドがない状態です。すみません...
以下に発表概要をまとめておりますので、ぜひご一読ください。
Javaの特徴
概要は以下になります!
オブジェクト指向の解説内容がわかりやすい...(特にRPG好きな筆者には)
- オブジェクト指向(OOP)とは
- プログラムをモノ(オブジェクト)で考えることがポイント
- 人間を例に解説
- 人間から派生する「戦士、魔法使い、水道管作業員」
- 人間として振る舞い「歩く、喋る、殴る」
- 「戦士、魔法使い、水道管作業員」ごとの特別な振る舞いもある
- 1つ1つがオブジェクト
- 継承のイメージ
- 人間を元に「戦士、魔法使い、水道管作業員」ができているというイメージ
- 人間から派生する「戦士、魔法使い、水道管作業員」
- デザインパターン(GoF)とは
- めっちゃある、有名どころから覚えよう
- Builder: Object生成用クラス
- Adapter: 関係性の薄いクラス絵同士をつなげるラッパークラス
- FactoryMethod: 生成するクラスを動的に変更するクラス
- 他は デザインパターン一覧 [23種類] - Qiita を参照
- めっちゃある、有名どころから覚えよう
- ガベージコレクション(GC)とは
- メモリの種類
- ヒープメモリ
- インスタンス変数のような動的なもの
- スタックメモリ
- ローカル変数、メソッドとか静的なもの
- ヒープメモリ
- ガベージコレクション(GC)は不要になったヒープメモリを自動解放する
- メモリの種類
WebAssembly ブラウザで動くバイナリ
概要は以下になります!
※ TypeScriptで実装した記事を探したら、
@chikoskiさんの記事がHITしてびっくりです...!
- WebAssemblyとJavaはコンセプトが似ている
- 色々なデバイスで動くことを目指している
- Web上でバイナリファイルが動作する
- 活用方法
- C/C++で書かれていたようなバイナリファイルを流用できる
- 事例
- 実装できる言語
- Go言語
- 最近(go1.11)からサポート導入
- サクッと Go → WebAssembly を試す - Qiita を参照
- TypeScript
- AssemblyScriptというコンパイラがwasmにしてくれるのでおすすめ!
- 詳細はこちらの TypeScriptでwasmを書く - Qiita を参照
- C/C++
- ベターだけど環境構築が鬼門
- Rust
- 良いが勉強コストが高いかもしれない
- Go言語
まとめ(今回の勉強会の振り返り)
Rossoでは、Javaを使用するエンジニアが多いですが、
C言語等のようなオブジェクトの概念がない(構造体はある)言語は触ってこなかったため、
ガベージコレクション(GC)なメモリの部分を深掘りする機会は多くなく、
今回の@yosuke_3110の発表は刺激的な内容になったという声がありました!
@chikoskiさんのお話は、
Web・WebAssemblyについて詳しくないエンジニアに対してもわかりやすい内容で、
WebAssemblyの仕組みやメリットについての知見をいただくことができました!
また、実装にも興味を持ち、TypeScriptやGo言語に手をつけてみようという声が
上がっていました。
告知
宣伝
@chikoskiさんが運営として参加されている勉強会が、
11月末と12月始めに開催されます。
また、We Are JavaScriptersは2周年を迎えれられるとのこと、
おめでとうございます!
是非、ご興味のある方は奮ってご参加いただければと思います。
社内勉強会への参加
Rossoでは、社内勉強会に社外の方の参加・登壇も歓迎しています!
ご興味のある方は、以下 弊社の問い合わせフォームから、
ご連絡いただければと思います。
社外向け勉強会
社内勉強会をベースとした社外向けの勉強会を開催しております。
興味がありましたら、是非ご参加いただければと思います!
AWS・自動化
Rossoが「APNスタンダードコンサルティングパートナー」に認定されました!
今後、受託案件や自社サービスの基盤構築を行なっていく予定です。
もし、以下のようなことにご興味がありましたら、ぜひご連絡いただければと思います!
- AWSを導入してみたけど...
- 構築がイケてない
- もっと自動化させたい
- 無駄なコストを削減したい
Qiita
技術的な知見をQiitaで投稿しております。
是非一度、閲覧してみてください!