みなさんこんにちは。
最近急に寒くなって周囲で風邪が大流行、うつされないか戦々恐々としています。
今月もOtemachi.rbに行ってまいりました。
なにげに3ヶ月ぶりの記事ですね?
前回#9のレポートは時間が取れず書けていませんでしたが、参加していました。
前回より、人数が増えたために場所がエネチェンジさんのオフィスからFabbit大手町さんに変わりました。
昨年12月の#2から(#4を除いて)毎回参加してきたので、一参加者ですがなんだか感慨深いですねー
1年かけてイベントが大きくなりました。
- 「Rubyでbrainf*ck処理系作ってみた」というLTをしました
- Active Support コア拡張機能について
- CSV出力 Viewからやるか? 他からやるか?
- Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ
- ぼっちの開発 3-Step
- Rubyで始めるAtCoder
- まとめ
「Rubyでbrainf*ck処理系作ってみた」というLTをしました
プレゼン内でも紹介しているジョジョ言語を知ってから一度は実装してみたかったbrainfxck。
やっと作ることができました。
ただやってみたかったことをやっただけなのですが、brainfxck処理系作るのは本当にオブジェクト指向設計の勉強になりますね。
- 要件が明らか
- Webに転がってるコードでテストがしやすい
- 「何をオブジェクト化するか?」から考えることができる
今回実装したコードは
- 言語処理系クラスを作る
- その中に命令列とバイト列のオブジェクトをもたせる
- 処理系が命令列から値を読み出してバイト列に干渉する
という形で作りました。命令列をView/処理系をController/バイト列をModelと捉えると、MVCですね。
(まあ、Controllerが独立してないのでMVCもどきというのがきっと正しいのでしょうが
急いで作ったためにあとで処理系にバグを見つけてしまったり、ポリモーフィズムを適用するところまでは行けなかったりしたのですが、良い経験になりました。
Qiitaスライドモードをはじめて使ってみた
時短になるし、コード載せやすい上に色分けしてくれるし、限定公開で共有できるし、とても良いですね。
「やってみた」系のLTなので、検索の邪魔にならないように全体公開はしません。
Active Support コア拡張機能について
いつも通り、エネチェンジ・チーフエンジニアの川西さんの発表です。
Otemachi.rbは少しずつ難易度を上げていく方向を選んだそうです。やったぜ。
Active Supportのコア機能はRails以外でRuby触ってるときにわかんなくなる以外は非常に便利で、いつもお世話になってます。
配列のディープコピー(Object#deep_dup
)や、Ruby標準より機能の多いArray#sum
、各種文字列変換などなど。
知らなかったことがたくさんありました。
Railsからは完全に独立していて読み込み方も教えてもらったので、ディープコピーあたりはスクリプト書くときに使っていきたいですね。
CSV出力 Viewからやるか? 他からやるか?
CSV出力 - Viewからやるか? 他からやるか? / How to output CSV - Speaker Deck
出力ロジックはサービスクラスに書くべきでは?という質問をしたら「おっしゃるとおりです」という返答が返ってきました。
サービスクラスに書いて、format.csvで出力されるようにコントローラに書けると素敵ですよね。
Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ
【Otemachi.rb#10】Rails×Messaging API × Herokuで清宮幸太郎の成績検索BOTを作成したよ - Qiita
自主制作のWebアプリ作ろうとして手が止まり気味の自分は身につまされる気持ちでした。
Action Dispatchの勉強せなあかんなというお気持ち。
ぼっちの開発 3-Step
エモ発表いいすな。
懇親会で本人に「セキュリティが一番心配じゃないですか?」と聞いてみたらやっぱりそうみたいです。
そういう意味でも、フレームワーク使うのは大事ですよね。最低限の攻撃は防げるので……
Rubyで始めるAtCoder
AtCoder、一度参加したときにputsを使って出力して「なんで通らんねん!」ってキレた恥ずかしい過去があってそれ以来でした。
(途中で気付いてprintに切り替えたんですが時間をだいぶ無駄にした……
そういえば、少し前に発表者の白木さんからこんなツイートがありました。
いつかAtCoderもくもく会+終了後に振り返り会を開きたいんだけど時間という壁とAtCoderのルール的にOKなのかという壁がある。後者は調べるだけなんだけど
— Atsuo Shiraki (@shirakia) October 6, 2018
期待してます(煽り
土曜の夜って予定が入りやすくて相当優先度高くしとかないと空けとくの難しいんですよね。
まとめ
Railsネタを毎回持っていきたいのですが、いままでやったのが
- 情報収集のやり方
- Project Euler
- お仕事のひとり反省会
などなどだったので、今回は新基軸が打ち出せたので良かったと思います。
参加者もどんどん増えてきただけでなく、LTする人も増えてきました。
来月も楽しみにしていますが、何を持っていこうかなー