叫ぶうさぎの悪ふざけ

うさぎが目印のWebエンジニアが、得たことや思ったことを言の葉に乗せて叫ぶ場所です。

学習記録:12月6日(木):ぺちオブ参加日誌2 -オブジェクト指向のいろはとモブプロ-

これは 俺のインプットアウトプット記録 Advent Calendar 2018 の6日目のエントリーです。

昨日のエントリーである 学習記録:12月5日(水):ぺちオブ参加日誌 -これほどわかるOOPの解説は今までなかった- に引き続き、本日 【ぺちオブ】第二回オブジェクト指向のいろはを輪読とか写経する会 に参加してきました。

今回初めての

  • Qiitaの記事を著者さん監修でモブプロする

の体験記を、日が変わらぬ熱いうちに綴ってみたいと思います。

はじめに

先日参加した 【ぺちオブ】初心者向け!第四回オブジェクト指向を1から勉強してみよう会、 前々から興味を持っていた 第二回ボトムアップドメイン駆動設計 に引き続きの参加でした。

なんとこの時点で僕は存じ上げていなかったのですが、Qiitaの記事と 第二回ボトムアップドメイン駆動設計 の講義をしてくださったのが @nrs さんで、同一人物だったってことです。

昨日、 hiro@miraito さんと会話していて知りました。100人以上の前でDDDのお話を体系立ててわかりやすく話してくださった人がいる場でのQiitaの写経とモブプロ。

非常に刺激的かつ、あたたかみに溢れる場所で、部屋が少々暑かったのはエアコンのせいだけじゃないなって思いました。

また、モブプロというのも初めてで、これは今回初参加グループのファシリテーターをしてくださった おーひら モブプロ本売ってまっせ! さんの記事 モブプロで技術書を攻略する! に詳しいです。

参加してみて

最高でした。(今月2回目)

ちょっと遅れての参加だったんですが、ほんとなんでしょうね。ぺちオブのみなさんは本当に丁寧かつポジティブというか、もうなんども言いますが あったかい んですよ。

参加すれば歓迎され、コメントすれば褒められ、コードが書ければ盛り上がり、動いたら踊りだしかねない。 そりゃあポジティブに楽しめるってものです。

生きるってことの本質ってこういうことだよな、って思わせてくれます。

勉強会の進みかた

Qiitaの記事の写経を、モブプロで実施していきます。まさに モブプロで技術書を攻略する! の中に書かれていることを実践してくださっていました。

やったことを列挙してみます。

予習なし

  • 記事を読んでないこと前提

1行ずつ輪読する

  • グループ7人(だったと思う)が1行ずつ読む
  • これが抽象化なのだとあとで知ることになります
  • 多くの文章を読ませない

わからないをそのままにしない

モブプロでコードをPHPに変換して動かしながら進める

  • Qiitaの記事はC#で書かれている
  • その場でPHPに変換して、動かしながらやる
  • みんなで小さな章に区切ってコードを書いていく

会の終わりに振り返りをして締める

  • みんなが何を持ち帰れたかみんながわかる
  • みんな笑顔
  • 最高じゃん?

僕が得られたこと

濃密な時間の中で得られたことはたくさんあるんですが、箇条書きにしてみます。 これも全部 モブプロで技術書を攻略する! に書いてありそうなので、せっかくなので引用しながら。

ポイント1. すべてを声に出して読む

これ本当に重要で、自分の声に出すだけじゃなく、他人の声で聞く。見る、聞く、交代する。僕が一番強く思ったのは、これぞ輪読の抽象化なのだと思いますが、 自分の読んでいる部分にのみ集中できる ということです。

つまり、OOPの目的である 抽象化による本質への集中(でいいのかな) をやっているってことです。

ポイント2. とにかく表明する

すでに書いちゃったんですけど、質問、わからないこと、思ったことだけでなく、他人がどう思っているのか。その場でとにかく表明してしまうんですよね。

わからないので知りたい。僕はこう思った。あなたはどう思いますか。

感想だけでもいいし、良いこと言ったら 最高! とか言い合うわけです。決して宗教じゃないんですよね。いろんな人の考え方から、多角的に1つずつ自分の中にインプットされていくのが重要なんだなって思いました。

感情の共有も含め、非常に大事なことなんだってことを体験させてもらいました。

ポイント3. 予習をしない

僕は記事を1行も読んでいませんでした。またそういったかたも多くいらっしゃいました。

人間は予習をしない

とは おーひら モブプロ本売ってまっせ! さんの言葉でもありましたが、まさに予習をしない(必要としない)前提で会が進んでいきます。

なぜかというと、予習しないことでまっさらな自分で参加できる。 そこには自分の偏った認識ではなく、ファシリテーター、執筆者含め、体系立てた情報が多角的にインプットされる。

自分が綺麗にフォーマットされていくんだなってことを気づかせてくれました。 シンプルな輪読会なら、事前に予習したほうが捗るかもしれません。でもこの会の目的は違う。なんの敷居もない。そこにあるのはただ シンプルかつ莫大なインプットがある ってことでした。

予習しないというのは今まで考えたこともなかったことなので、目から鱗でした。

他の特徴

とにかく時間はかかります。今日は オブジェクト指向のいろは のclassの途中 まで進んで終了でしたし、ここまで2時間半かかっています。

が、これはその場にいる13人(だったかな)全員の体験なんですよね。13人13様が、みんなで共有できる。13人のことが13人でわかるんです。

これがもしチームでやれてたりしたらすごい力になると思うし、きっと元々はそれが目的だったんだろうなってことがわかったりもしました。

モブプロってすげぇな、をこんな短時間で体感できて、多くのことを持ち帰ることができた。 いやこれってすごいことだと本当に思います。

聴講しながら書いたコード

モブプロにも参加しましたが、話を聞きながら僕も手を動かしたかった。 なので聴講しつつ話をしつつ、大急ぎで書いて手元で動かしたコードがこちらです。

<?php

class Writer {
    const WRITE_TYPE_CONSOLE = "console";
    const WRITE_TYPE_FILE = "file";
    private $writeType;
    private $data;

    public function __construct(string $writeType, array $data)
    {
        $this->writeType = $writeType;
        $this->data = $data;
    }

    public function write(): void 
    {
        if($this->writeType == self::WRITE_TYPE_CONSOLE) {
            $this->writeConsole();
        }
        else if($this->writeType == self::WRITE_TYPE_FILE){
            file_put_contents('write.txt', $this->data);
        }
        else {
            throw new Exception("writeType:" . $this->writeType . PHP_EOL);
        }
    }

    private function writeConsole():void
    {
       echo("Data:".PHP_EOL);
       foreach($this->data as $element) {
           echo("- {$element}".PHP_EOL);
       }
    }

    private function writeFile():void
    {
        file_put_contents('write.txt', $this->data);
    }
}
$writer = new Writer($argv[1], ['hoge', 'fuga']);
$writer->write();

おわりに

最後は会を締め、会議室の現状復帰をし、後片付けをして撤収。 軽くご飯組と帰る組で分かれたんですが、なぜかハイタッチの嵐をいただきまして。

ぺちぱーだからぺちぺち

和むじゃないですか。なんか自分が人気者になったような錯覚に陥って妙に照れ臭かったです。 なんだよもうそんなんあるんだったら手を洗っておくんだったわ、って思いました(汚いわけじゃないですw)

執筆者の @nrs さんも ついつい解説したくなる とのことで本当にありがたいなって思うとともに、こういう オブジェクト指向に特化 した会を 連続して実行する っていうのは少なくとも僕の行動範囲では全くありませんでした。

が、昨日も言ったかもしれないんですが、ここまでの時間と知識と経験を使って惜しげも無くインプットをいただける。そんな場を作って楽しくやっていく。

なんの気後れも必要ない。なんならなんの用意も必要ない。欲しいと思う人に、欲しいだけの全てを分けてくれる。

あー。エンジニア諦めなくてよかったなー。こんな人たちがいるんだなー。受けた恩は後ろに続いてくれ人に送っていいかなきゃなー。

改めて、僕の目標や信念を改めさせてもいただきました。

あと、最後に紹介したいことタイムを作ってくれたので、僕が主催にいる エンジニアの登壇を応援する会 の告知をさせていただきました。

また、直近のイベントである 読書の技術を勉強する会 #1 や、年末12月27日の エンジニアの登壇を応援する忘年LT大会 の紹介をさせていただきました。

僕はぺちオブとはまた違った角度で、誰かの背中を押し続けていきたいし、いずれ理解や経験が積み重なったら、その積み重なりをぺちオブに返還したいなあって思ってもいます。

今後も参加していくし、まだのかたはぜひ参加してみてください。最高だぞ!

というわけで、本日の諸々の手配をしてくださったみなさま、ありがとうございました!