ロングセッション

Elmで学ぶ、フロントエンドにおける型とドメイン

sy_izumi IzumiSy

近年AltJS界隈で興隆を見せる関数型プログラミング言語であるElm。このトークでは、弊社で7万行の規模で採用されているElmのシンプルかつ必要十分な型システムが、いかにしてフロントエンドのビジネスルールを型で守り、そして型で表現しているかをご紹介いたします。単なる型アノテーションではない、真の静的型付言語がフロントエンドというドメインでどのように価値を発揮するかをご理解いただける内容です。

サーバーサイドと比較して、どのような観点から型レベルでドメインや状態網羅を守る必要があるのか。フロントエンドのドメインをどのように考え、どのように型で表現するべきか、などのトピックを簡単なコードとともにご紹介いたします。

※トークの内容はElmの文法知識などについての言及を少なめにし、Elmを知らない方でもご理解いただける内容にする予定です。

6
ショートセッション

UnitTestを効率的に作り・回す継承

sogaoh sogaoh

今やテストのないプロダクトは大きなリスクを抱えて当然な世情であり、
テストを整備しながら開発を進めることは普通に意識してなければならないと思います。
開発速度をなるべく落とすことなくこれを推進するには工夫が間違いなく必要ではないでしょうか。

自分が現在所属している開発プロジェクトでの実装過程で、UnitTestの量産を支援する、
かつテストデータのコードによる整備を必要最小限に抑えるちょっとした仕組みを編み出しました。

オブジェクト指向プログラミングの特徴の1つである継承を大いに利用したこの仕組みについて、
ご紹介させていただければと思います。

4
ロングセッション

【初心者向け】分かる!オブジェクト指向 ~結局オブジェクトってナニ?~

ShirayanagiRyuj エンジニアカウンセラー白栁隆司

趣旨:
なんとなくオブジェクト指向を使ってて、結局オブジェクトって何なんだ?と思う事はありませんか
という人向けのセッションです
20年程前に、僕がオブジェクトを体得した経験を基にお話します

内容:
3つのパートに分けてお話します
1) オブジェクトって何なのか?
2) オブジェクトとクラスとインスタンスの違い
3) こうすればオブジェクト指向になる、スモールステップ

継承や多態性等については、触れるかもしれませんが深堀はしません

詳細:
自作スライド資料を使って話していく

1) オブジェクトって何なのか?
・「オブジェクト=物」
・オブジェクト指向は現実(リアル)を表現するための考え方
の辺りの基本的な話を中心に、プログラム初学者時代の僕が、オブジェクトをどう捉えたか、オブジェクトを使ってプログラムでどう幸せになったか、を話す

2) オブジェクトとクラスとインスタンスの違い
オブジェクト、クラス、インスタンスという言葉は良く出てくるが、違いを分かっていない人は多いらしい
僕自身も感覚で分けていた時期がある
この違いを大判焼きを例に挙げてしっかりと伝える

3) こうすればオブジェクト指向になる、スモールステップ
7つのルールはちょっとまだハードルが高い
・フィールド
・getter/setter or プロパティ
・メソッド
・イベント
これらの要素を変数や関数との違いについて説明する
脱Staticオジサン!!

最後に、僕がオブジェクト指向の勉強に役立ったと感じたC/C++の書籍の紹介と、継承や多態性、DDD等の先の世界がある事を紹介して締めたい

2
ロングセッション

Frontend

kahirokunn kahirokunn

フロントエンドで各タイミングで抱える課題をいくつかリストアップし、項目毎に効果的であろうアプローチを現代エコシステムと合わせて駆け足で紹介しようと思います。

1
ロングセッション

PHPで何でもオブジェクトとして実装したところレスポンスタイムが30秒

mahiguch1 樋口雅拓

リミア株式会社でLIMIAというメディアサービスを開発しています。
サービス開始前、ドメイン設計して、PHPでJavaのように何でもオブジェクトとして実装しました。
すると、レスポンスタイムが30秒程度かかりました。
原因を調べると、オブジェクトの生成に大半の時間がかかっていることが分かりました。

本発表では、初めに上記事例を使って問題定義します。
次に各プログラミング言語におけるオブジェクトの生成コストを比較します。
最後に解決した事例を説明します。

PHPは学習コストが低いため採用が容易で、標準機能が豊富なため開発速度が速いという特徴があります。
しかし、想定外の動きをすることがあります。
この事例を発表することにより、適切な開発言語選択するための情報を提供します。
それでもPHPが好きなんだぁぁぁ!

5