Machida.rb #04 に参加

Machida.rb #04

Machida.rb #04 - Machida.rb | Doorkeeper

今回のテーマはRubyのコードを持ち寄ってワイワイコードレビューする会!

ということで私も自作プログラムをレビューしていただいた。

レビューしてもらったコード

Slackのメッセージをコピペするといらない情報を落としてくれるCLIツール slack_message_to_plaintext を作っているので、それをレビューしていただいた。

ima1zumi/slack_message_to_plaintext

slack_message_to_plaintext を作った経緯と、出来ること

slack_message_to_plaintext はSlackのメッセージをコピペすると整形後のテキストを標準出力に返す100行程度のプログラム。

f:id:imaizumimr:20200811144613g:plain

FJORD BOOT CAMPでは学習した日は毎日日報を提出する必要があるのだけど、私はSlackに分報を書くことが多い。分報と日報両方書くのが面倒だったため、分報を綺麗にコピペしたら簡単に日報できるんじゃないか?と思った。しかしSlackはそのままコピペするとusernameとかreactionとかいらないものがたくさんついてきて、綺麗に直すのが面倒だったのでプログラムで整形してみることにした。

SlackのAPIを使えばjsonでデータ取得ができてもっと簡単な処理にできるのだけど、FJORDのSlackの管理者でもないし、貴重なApp枠(無料版のSlackでは10個までしかAppを入れられない)を取ってしまうのでコピペしたデータをinputにすることにした。

(余談だが、分報を日報にするという試みは失敗に終わった。気軽に今思ったことをポンポン書いていく分報と、ドキュメントとしての体裁をある程度整えたほうが読みやすい日報とでは、文体が全然違ったのだ…。今は分報は分報で気軽に投稿し、それを見ながら日報を別途書き起こすようにしている。)

機能としては以下の4点。

  • 名前を消す
  • reactionを消す
  • (編集済み)を消す
  • URL展開された文字列を消す
    • うまく消せないことがある...

こういったSlackのスレッドのメッセージを、 f:id:imaizumimr:20200811172840p:plain

そのままコピペするとこうなるので、 f:id:imaizumimr:20200811172452p:plain

こういうデータにして返している。 f:id:imaizumimr:20200811172528p:plain

レビューの仕方

レビューしてもらいたいプログラムを軽く説明して、Machida.rb の esa に気になった点を書いてもらうスタイル。

時間は約30分で、気になったところがある人から口頭で随時指摘をもらうという形。

レビューの感想

良かったところ

コードに具体的なアドバイスをいただいてめちゃめちゃ勉強になった。書き方で悩んでいたところを「こう書けるんじゃない?」と提示してもらって、そう出来るんだ!と気づけたり新しい書き方を知ることができた。

また、人前で自分のコードを説明して見てもらうという初めての経験が出来た。自分のプログラムを短い時間で説明して見てもらうのはなかなか緊張することと、自分はアドリブの説明がうまくないので事前準備しておいたほうがいいと分かった。FJORD生が多くて話しやすい Machida.rb でこういう経験ができて良かったと思う。

改善点

次にレビューをしてもらうなら改善して挑みたい、と思ったのは以下の点。

  • ソースコードの共有
    • Machida.rb開始後にGitHubに貼ったので参加者が読み込んだり動かしてみる時間がなかった。
    • レビュー時間が30分程度と時間に限りがあったので、読む時間の余裕がなかった。
  • 動作するバージョンの共有
    • Ruby 2.7以降でないと動かないことを直前にアナウンスした。
    • もしRuby 2.7が入っていない場合は時間がなくて手元での確認が出来なかったかも。
  • 説明する準備
    • 知り合いが多い中でも結構緊張した。
    • コードの説明は慣れていないので、LTのように事前に練習しておけばよかった。
  • テストコードを書く
    • テストは書こう!!!!
  • 最初にやりたいこととやっていることを分かりやすく説明したほうがコードに入りやすい。
    • もっと丁寧に動作を説明できればよかった。ざっくりしすぎて理解しづらい説明をしてしまっていた気がする。
  • 見てもらいたいポイントを明確にすればよかった
    • このメソッドのこの書き方を変えたい!とか明確に見て欲しいところを提示できればよかった。

感想

今回レビューしていただいて、色々な学びや気付きがあった。実際にレビューしてもらわないと気づけなかったことだと思う。また他の方のレビューにも参加できて楽しく学ぶことができた。こんな機会をくれたMachida.rbに感謝しています!