どうもこたにんです。
ツイートがちょっとバズった
先日、ツイートが少し広めに共有されまして。
母「昔々あるところに...」
— こたにん@エンジニア採用など (@Kotanin0) March 22, 2019
娘「もっとJavaっぽく」
母「
Person grandpa = new Person(78);
Person grandma = new Person(77);
gotoMountain(grandpa);
gotoRiver(grandma);
if (inRiver(grandma)) {
boolean peach = true;
while (peach) {
System.out.println("donburako");
}
}
」
TwitterのTL見てたら桃太郎を創作表現するネタがいくつかあったので、便乗。
わたしにできるネタなんだろう?って考えたときにプログラミングだったので。
という経緯でこれを投稿するに至ったわけですが。
予想以上にバズった。
ので、備忘と思い出も兼ねてウェブログします。
ツイートするときに意識したこと
文字数と投稿時間
140文字制限での表現に苦戦しました、if文のネストがないのは文字数の都合です。
また金曜の深夜に投稿することで土日の幅広い時間帯でのインレプッションを狙いました。
これが予想以上の効果を生んだ。
面白み
少しはRTされるといいなって思ったので、面白みを入れました。
その結果あとで書きますが、意識しなかったことに繋がるのですが。
donburakoが無限に出力されることを想像する楽しさを埋めました。
リプライされる隙
Javaを知らない人にも理解してほしかったので、プログラムとして完成度はないです。
その分、リプライ欄でレビューが飛び交ってブラッシュアップされると楽しいかなと。
おかげさまでいろんな改良ができそうです!いくつかピックアップさせてください。
あぁすごくよりJavaっぽい!素敵。
— こたにん@エンジニア採用など (@Kotanin0) March 23, 2019
ありがとうございます!
できればPersonを継承して職能を持つPlayerのようなクラスを作って、そこに持ち物や場所などを持たせたいですね!場所クラスも作って等価できるプロパティが欲しいところ(マジレス
— こたにん@エンジニア採用など (@Kotanin0) March 23, 2019
そうですね!grandma.height > distance になったらbreakして物語が先に進みそうですね!
— こたにん@エンジニア採用など (@Kotanin0) March 23, 2019
ツイートするときに意識しなかったこと
クラス設計
Personクラスは定義して然るべきとして、それ以外は意識しませんでした。
その点でレビューもらったものを添削できない申し訳なさは残るものの。
これはマジなプログラムじゃなくてプログラム風に楽しむ読み物にしたかった。
無限ループ
面白みを求めた結果、無限ドンブラコロジックが完成したのだけど。
図らずも最近トレンドの某事件にインスパイアされたように見えてしまいまして。
その結果「無限ループ!」系のリプライで溢れました、無意識だった。
バズり具合
ここまでを想定してなかったので、定量分析できるデータを取る準備ができなかった。
時間単位でスナップショット的にImpsとかの数値を取りたかった。
今後の材料になるデータを取ることを意識しなかったのを後悔しています。
素敵な反応たくさん
素敵な反応をたくさんいただきました、ありがとうございます!
SNSの素敵な世界を感じられた。
ぜひに!
— こたにん@エンジニア採用など (@Kotanin0) March 23, 2019
Personクラスを継承しているのであれば問題ないです!
(クソリプ返し失礼します。遠慮なさらず)
ありがとうございます!嬉しい!!
— こたにん@エンジニア採用など (@Kotanin0) March 24, 2019
凄いセンスなのはプログラムではなく、シンプルな語り口で物語られる桃太郎の方かもしれません。笑
ひとつ言えるのは、たくさんプログラミング言語は触ってきたので、汎用的な感覚があるのかもです。
声出して笑いましたwwww誰うまww
— こたにん@エンジニア採用など (@Kotanin0) March 23, 2019
今後の展望
これ自分で考えてても面白かったし、リプライ読むとさらにおもしろくって。
もうちょっとしっかり作り込んでも楽しいのかなって思った!
ので、ちゃんと設計してリポジトリにしてみよっかな。
とか適当なこと言う。
ロールモデルは、FizzBuzzEnterpriseEdition。
なんとなく思うのは、Personクラスを適切に拡張して、場所クラス作ってとかすると、他の物語にも転用できる汎用性の高いオブジェクトが生まれてすごく良いと思うんだ。
とか書いたところで、物語って一方通行だからオブジェクト指向言語で書いてもなあなど。
ストーリー仕立てはほどほどに、右脳でプログラムを理解する材料としてはアリかな。
とりとめのない文末、以上です!