そろそろいい感じに熟成された頃でしょうか。
2か月前の話をしたいと思います。
2020年2月16日にオブジェクト指向をテーマにしたカンファレンスである Object-Oriented Confecence 2020 が開催されました。
この記事はそのレポートです。
概要
まず最初に、今回の CM です。
だんだんロケが遠くなってきましたね。
パリで CM ロケをするという野望もいよいよ近づいてきました。
今回の CM の見どころはスノーエンジェルです。
ぜひやりたいと駄々をこねました。
あとは雪玉ぶつけられる撮影をしたはずなんですが、一切使われていないところが個人的にツボです。
いい感じに雪玉がぶつけられる絵を取るために15分ぐらいがんばってたはずなんですが、あの時間はなんだったんですかね……。
さて、去る Object-Oriented Conference では、最初期段階からコアスタッフとして参加し、基調講演も務めさせていただきました。
あとトイレ係。
最初は「カンファレンスやりたい」と聞いて、会場提供もしくは会場費用あたりをなんとかしてあげれたらいいかな、と軽い気持ちで手伝いを表明したわけですが、気づけばガッツリと動くことになってました。
これが詐欺師の手口なんですね。
それでは、前日までの準備段階の話からしていきましょう。
準備段階
色々ごたごたしてました。
ごたごたの詳しいところを知りたい方はオーガナイザーの @hirodragon112 さんの書いた note を見るのが分かりやすいです。
https://note.com/hirodragon112/n/n480a813d76c2
当初、このカンファレンスを興すと聞いて、結構な規模になるんじゃないかなと思ってました。
昨今、ソフトウェア工学的なアプローチが注目されているので、500人は集まるんじゃないかな、と。
そこで、一旦仮募集をしてみて、どれくらいの集客が見込めるか確認することになりました。
そのとき仮のプロポーザルを3/4ぐらい自分が作ったのは良い思い出です(せっかくなので記念に、この記事の最後にくっつけておきます)。
そして実際に仮募集をしてみたら、予想をはるかに上回る集客。
対する我々の多くは素人集団。
これは御しきれないかも……と弱気になってたんですが、@hamaco さんや @ariaki4dev さんが加入してくれたところで、やれそう感が出てきてしまいました少し風向きが変わりました。
トイレ担当
正直な話を申し上げますと、一番の思い出はトイレ問題です。
なぜなら今回の会場はお茶の水女子大学。
そう、女子大学です。
もう、会場決まってから、ずっと「トイレが足りん」「トイレが足りない」と言い続けてた気がします。
カンファレンスで休憩時間のたびに、トイレが長蛇の列になるのを何度も見ていたので、できる限りのことをしたいと色々駆けずり回りました。
会場周辺を散策してトイレをメモったり、ほかの棟のトイレを使う方法はないかと模索したり。
おかげさまでお茶の水女子大学近辺のトイレ事情に詳しくなりました。
トイレにお困りの際はご連絡ください。
なお、今回の知見は「イベント会場は共学にすること」です。
そのほか担当
他に担当したのはスポンサーブース/休憩室のレイアウトやスタンプラリー企画、会場マップ作りなどです。
実は会場マップは自分のお手製です(印刷はひろさんがやってくれました)。
完全にうる覚えで起こした地図にしては正確でしたね。
特にトイレの記載は完ぺきだったでしょう。
当日
新型肺炎の影響で私は前日準備に参加できなくなり、当日からの参加です。
スタッフとして
コアスタッフは少人数のチームのリーダー役として動きます。
自分は遊撃部隊と巡回部隊を兼務することにしました。
いずれも突発的な事態に対応する部隊ですね。
前日準備に参加できなかったので、その罪滅ぼしも兼ねて、一番忙しそうなところに志願しました。
きっと馬車馬の如く働くことになるんだろうなぁ、と思ってたのですが、意外なことにまったく問題が起きませんでした。
遊撃部隊のみんなと巡回部隊のみんな、各自で動いてくれたので、途中サイン会(!)をする余裕すらあるぐらいでした。
基調講演
今回は基調講演をお任せいただきました。
基調講演をするのは初めてです。
当初は技術的なことでプロポーザルを出そうと思ってたのですが、基調講演をするならば、ということで辞退。
とはいえ、あまりに技術的なことを基調講演でお話するのも違うような気がして、1から練り直しました。
プロポーザル
https://fortee.jp/object-oriented-conference-2020/proposal/7b900ce6-6796-4bd6-b4bc-fc4eed63d954
プロポーザルは @ariaki4dev さんが添削してくれました。
ありがとう @ariaki4dev さん!
スライド
動画
配信トラブルで冒頭ちょっと抜けてます。
総評
私が話したいことを話すより、話す人も聴く人も、見解の違いがあったときに建設的に意見を交わせるように、と願いを込めてお話したつもりです。
効果のほどはいかがだったでしょうか。
会場300名強 + サテライト会場 200名程度 + オンラインでお話するのは高揚感があります。
皆さんもそういった機会があったら、ぜひ挑戦してみてください。
サイン会
この日は著書『ドメイン駆動設計入門』が発売されて2日後です。
スポンサーブースの企画のひとつとしてサイン会を開きました。
ドメイン駆動設計はオブジェクト指向だけに限らない話と考えていますが、オブジェクト指向となじみ深いとも思います。
当たらずとも遠からずでしょう
沢山の方と直接お会いできて、感想を頂けるのは感慨深いです。
また、サイン本が当たる企画もスポンサーブースで行われていました。
いただきました、成瀬さんの本「ドメイン駆動設計入門」(サイン付き)をもらいました、ありがとうございます!!
#好きなSOLID原則 #ooc_2020 pic.twitter.com/fiUljLUyTg— さっぴー川原🍶192.168.7.21 リバースプロキシ- (@sapi_kawahara) February 16, 2020
サインも大分こなれてきました。
まとめ
以上、丁度2か月後のレポートでした。
道中山あり谷あり、止めに新型肺炎と色々危ぶまれたイベントでしたが、本当に無事成功してよかったと思っています。
また開催することがあれば、頑張ります。
その時はトイレ係を作らなくて済みますように。
あと YouTuber はじめました(唐突)。
プログラミングの解説動画などを投稿していくので、よければチャンネル登録してやってください。
ベストショット
最後に今回もらった写真の中で個人的なベストショットを貼っておきます。
絶対除菌コロナマン(菌?)。
架空のセッションプロポーザル集
当時 Object-Oriented Conference の集客がどれくらいになるか確認するために仮募集をしました。
その際、それっぽいプロポーザルがないと、一体どんなセッションが集まるのか分からないので、集客の数値が取れない恐れがありました。
ならば、やるべきことはひとつですね。
そう、プロポーザルを用意すればいいのです。
というわけで当時自分がでっちあげたセッションのプロポーザルをここに残しておきます。
いつか供養しましょう。
オブジェクト指向分析設計をしてみよう
みなさんはオブジェクト指向分析設計を普段から行っているでしょうか。
なんだかよくわからない、と敬遠している方も多いのが現状だったりるすのではないでしょうか。
私たちが設計を行う目的は最終的な成果物の品質向上のためです。
ソフトウェアの設計における最終的な成果物は間違いなくコードです。
しかしながら世の中には設計とコードが乖離してしまっていることが往々にしてあります。
成果物がオブジェクト指向プログラミング言語で実装されるのであれば、その設計もオブジェクト指向で行うことでギャップを無くすことができるはずです。
まさにオブジェクト指向分析設計の目的はそこにあります。
オブジェクト指向分析設計はコードに落とし込んでこそ真価を発揮します。
ひとつのサンプルをもとに、分析から設計、そしてコードへ落とし込まれるさまをここで確認し、その有用性を確認してみましょう。
ビジネスロジックのつくりかた
ビジネスロジックはどのように作るのか、というのは案外教えられたことがないトピックです。
ビジネスロジックを作るにあたって重要なのは今何をしようとしているのかを認識することです。
つまり「表現すること」と「解決すること」は違うということを認識することです。
このセッションではひとつのサンプルをもとに、ビジネスをコードに落とし込む過程についてをお話します。
文脈とプログラミング
私たち人間は会話をするとき自然と文脈というものを取り扱っています。
「あれ」や「これ」といった代名詞を取り扱うことができるのは前後の文脈を理解することができるからに、ほかなりません。
文脈は会話を成り立たせる重要な要素です。
ところで私たちが普段立ち向かうプログラムにおいてはどうでしょうか。
プログラムは文章です。文章であるプログラムにも文脈は間違いなく存在します。
文脈は力です。
プログラムにおける文脈とは何なのか。そしてその文脈の力についてここでひとつ考えてみましょう。
オブジェクト指向の限界
オブジェクト指向は銀の弾丸ではありません。オブジェクト指向には適用限界があります。
たとえば同じデータを持つオブジェクトであっても、使う側によって必要なメソッドが異なったりしませんか。
あるデータに対して、要求される振る舞いはコンテキストによって異なるのです。
これは従来のクラスベースのオブジェクト指向プログラミングでは表現しづらいものだったりします。
このセッションではオブジェクト指向プログラミングでは解決しづらい問題について提起し、現実的な妥協案にはどういったものがあるのか、といったお話をいたします。
Introduction to OOUI
ユーザインターフェースは直感的である必要があります。
もしもインターフェースが直感的でないとユーザを迷わせてしまうことになり、結果として離脱を招くことになりかねません。
どうすればインターフェースが直感的になるでしょうか。
少し話が変わりますがオブジェクト指向がこれだけ広まった理由のひとつに、人間にとって理解しやすいものであったというのがあります。
つまりオブジェクト指向は直感的!
これをユーザインターフェースに取り入れれば直感的になるのではないでしょうか。
というわけでオブジェクト指向的な考えを取り入れたユーザインターフェースがOOUIです。
本セッションではタスクベースのUIとオブジェクト指向ベースのUIの違いを解説しながらOOUIがどういったものなのかについて解説いたします。
Histroy of Object-oriented
オブジェクト指向プログラミング、オブジェクト指向分析設計、オブジェクト指向ユーザーインターフェース、オブジェクト指向CSSと、世の中にはさまざまなオブジェクト指向が存在します。
そもそもオブジェクト指向とは何なのでしょうか。
このセッションではオブジェクト指向の歴史を紐解き、オブジェクト指向はどのように定義され、そしてどのように変化していったのかを解説します。
C言語で学ぶオブジェクト指向プログラミングの本質
オブジェクト指向プログラミングとは何なのでしょうか。
実をいうとオブジェクト指向プログラミング言語が誕生する以前からオブジェクト指向っぽいことはすでに行われていました。
本セッションではC言語によるオブジェクト指向っぽい実装の実践と、そこに見え隠れするオブジェクト指向プログラミングの本質をご紹介します。
アーキテクチャを選択する理由
プロダクトを主導する上で、アーキテクチャを選択しなくてはならないときがきます。
世の中には多くのアーキテクチャがあります。
いずれもコンセプトがあり、それぞれの一長一短が存在します。
アーキテクトはアーキテクチャを選定する上でどのようなことを考えるのでしょうか。
本セッションはアーキテクチャが存在する理由と、それらの共通項、そして選択した理由についてを実体験をもとにお話します。
実践OOP
はじめてオブジェクト指向プログラミングを学んだとき、こんなことを思いませんでしたか。
「うんうん、わかる。で、どう使うの?」
理論を学ぶことは簡単ですが、理論を実践に落とし込むのはとても難しかったりするものです。
このセッションではオブジェクト指向プログラミングのテクニックを実際にどのようなときに利用するのか、実践的な例を用いながらお話いたします。
正しい継承のつかいかた
継承は利用するのは簡単ですが、正しく利用するのがとても難しい概念です。
誤った継承の使い方は開発者を迷路へ誘い込む入り口になるでしょう。
このセッションでは継承の誤った使い方の解説と、継承以外での解決方法の紹介、そして継承を利用すべき場面についてを解説いたします。
ドメイン駆動設計のはじめかた
ドメイン駆動設計って実践までのハードルが高いと思ったりしませんか。
このセッションでは現実的にどうやってドメイン駆動設計のエッセンスを取り入れ
実践していくかについてをお話しいたします。