Snow Monkey Blocksに技術的貢献をしてみた話

こんにちは。mgnのアクツです。
私は普段「類人猿」というSnow Monkey Blocksを使ったブロックパターン集の運用や改修の業務を行っています。 そして私はSnow MonkeyテーマやSnow Monkey Blocksをはじめ、Snow Monkeyのプロダクトが大好きです。(好きを拗らせておかしなLTをしたりもしています)

Snow Monkey Blocksの保守作業に携わってみた

さて先日Snow Monkeyのオンラインコミュニティ(slack)にて、Snow Monkey Blocksの保守に関わる機能改修のお仕事の募集がありました。

▲Snow Monkey オンラインコミュニティ内に掲載された募集トピック

大好きなプロダクトにこれだけがっしり関われるチャンスはなかなかない!!

しかし残念なことに私はカスタムブロックの開発経験はほぼありません。公式のハンドブックを見ながら簡単なブロックを作ったことはありますが、書いてある手順を何も考えず進めただけでブロックの作り方や仕組みについてほぼ理解しておらず、ブロック開発については初心者に毛が生えたようなものです。 でも、やはりちょっとでも関わりたい。

ということで、積極的なんだか違うのかよくわからないアプローチのメッセージをSnow Monkey Blocks制作者のキタジマさんに送りまして、その後他に応募者が現れなかったこともあり、キタジマさんと一緒にやってみようという形で自分も携われることになりました(やったね!)

▲キタジマさんに送ったアプローチ文

圧倒的スキル不足によりねずみの手すらにもなれず…

とりあえず、自分でもどこまで対応できるかわからなかったため、以下のプランですすめることにしました。

  1. キタジマさんが対応したアイコンリストブロックの修正内容を確認し、修正内容が理解できそうかを判断する
  2. できそうであれば、一旦別のブロックで自分自身で修正できそうかを試す
  3. 修正ができたのであればPRでレビューをしていただく、できない でも おしいぐらいまでいってるレベルであれば、コードチェックしてもらって、キタジマさんに補佐いただきながら、修正を完成させてく
  4. 3までうまくいったら、残りのブロックについても私で修正させてもらう

とりあえず、なんとなくどこをどう直しているかをコードを読んで把握したので、一旦 2まで進んで自力でアラートブロックの修正にチャレンジしました。

しかし、結果としては惨敗。 一応、一部分を子ブロックらしきものに置き換えることはできましたが、安定して動かないし、既に挿入してあるアラートブロックは、うまく新しい構造に置き換わらずエラーを出してしまう。

そして一旦キタジマさんに現状を報告し修正コードをGitHub上で見てもらった所、そもそもやり方も対応する箇所も間違ってるという有様でした。

ひとつここで評価できる点といえば、できそこないのコードをそのまま提出したことにより、自分のスキルがどれぐらいのものなのかをキタジマさんに伝えることができたことでしょうか(←それぐらいしか褒めようがない)

キタジマさんと一緒に1からやってみることにした

私1人では課題を解決できないことが判明したものの、でもありがたいことにそのまま作業を続けさせていただくことになりました。 そして私がなるべく理解しやすいようにと、キタジマさんの修正する様子をZoom(ビデオ会議)上で見てみるのはどうだろうか?という提案もしてくださり、全力でその提案にのっかりキタジマさんの作業を見せてもらう会を実施しました。
会では、実際にコードを修正していく様子を細かな解説つきで見ることができ、疑問に思ったことなどはその場で質問することもでき、そのおかげでだいぶ理解を深めることができました。

ちなみに、私1人ではもったいないし興味持ってくれそうなメンバーもいそうだな?ということで他のメンバーにお声がけしたところ、会には多数メンバー参加してくれて、他の人の質問や感想・意見なども聞くことができて、想像以上に良い会になったなと思っています。

とりあえず、会の開催が本当にありがたすぎて、その日速攻 強制的に袖の下(amazonほしいものリストから勝手にプレゼントを送付)をしました!
が、それでもまだまだお返ししきれてないので、いずれ今回得たスキルで保守とか不具合対応とかしてお返ししたいです

多少つまづきはあったが無事「吹き出し」「価格表」ブロックの仕様変更を対応することができた

修正対応を行った結果、既存の色を設定できる機能がうまくうごかなくなった・テキスト翻訳がうまくいかない などのトラブルがあり、都度都度キタジマさんから解決方法をいただくという手とり足取り付き添ってもらう形でしたが、おかげで「吹き出し」「価格表」ブロックの修正を自分の手で行うことができ、プラグイン側に私の修正したコードが採用されました。

自力で解決できず、キタジマさんを始め、たくさんの人の力・時間をいただくことになってしまったことは大きな反省点であり、どこかで挽回すべき事項でありますが、それでもでも、やはり自分で直したコードが採択されて、実装されるのは、とてつもなくうれしかったです。

おかげで新しい機能を自力で作り出すことができた

先日、こういう機能もあったら親切だよなあって思うことがありました。
これまでの自分だと、機能の要望をSnow Monkey側に伝えるだけで終わってたのですが、今回の件を通して力が多少ついたこともあり、提案だけじゃなく実装もチャレンジし、無事実装を行うことができ(もちろんキタジマ先生の手厚い助言があってこそ)、プラグイン側に実装されました。

ぜひ「情報」ブロックをお使いの際には、ラベルの文字色の設定も触ってみてください(私が今回対応したところです)

今後もあらゆる方面から貢献し続けたい

今回はSnow Monkey Blocksへの貢献活動でしたが、もちろんWordPressはじめ他のプロダクトについても、なにか貢献ができるように日々精進続け・活動をし続けたいです。
引き続きがんばります。