RUNTEQのバグ修正学習会で現役エンジニアの頭の動かし方が垣間見えた【Day 12/30 2nd】
こんにちは、たわらです。
本日は、通っているRUNTEQというプログラミングサークルの「バグ修正学習会」で学習したことを整理します。
イベントたくさん
RUNTEQでは、毎週イベントが開催されます。講師による学習会だったり、運営会社のエンジニアの方の技術学習会だったり、(代表が外部のイベントに登壇したり)してわいわいしています。(宣伝)
今週はこのイベントに出るそうです。
ただカリキュラムをたんたんと学習するだけじゃないのですね。最近は、完全オンラインスクールへの移行となりましたが、受講生同士、受講生と講師の交流の機会を創出する仕組みもはじまりました。すごい!
バグ修正学習会
で、今週はアプリケーションのバグを修正する学習イベントが開催されました。
講師が作成したウェブアプリケーションを、GitHubからクローンして、ローカル環境でバグ修正をします。テストが通るように、コードを修正してね、ということです。
ユーザー登録、ログイン認証、ページ表示ができない、といったバグです。難易度としては、Railsチュートリアルを終えたくらいがちょうどいいくらいでした。
Railsチュートリアルとか何かの教科書で、こんなの学習したな、、、けどこれどうやってやるんだっけ、えーと、、、みたいな感じでした。いろいろ見ながら事前にクリアしました。講師にプルリクを見てもらうとこまでやりました。
そして、後日オンラインで講師がGitHubからのクローンからバグ修正のあらましを解説してくれました。1時間くらいでした。
どんなことが学べたのか?
いちばんよかったな、と思うのは、講師の思考法と作業スピードをLIVEで感じることができたことです。
こういうエラーが出ました、ここを見るとこう書いてあるので、ここにbinding.pryを入れてみましょう、コンソールでparamsの中身を確認します。Chromeの検証ツールのネットワークタグでリクエストの中身を確認します(知らなかった!)、、、では、valid?でこのオブジェクトがvalidationを通るか確認しましょう。、、、アーギュメントエラーなので引数が渡せてないですね、、、ちなみにこのオブジェクトに使えるメソッドは obj.methodで確認できます(知らなかった!)。いまのオブジェクトにこのメソッドは使えないことがわかりますね、、、ちなみに .nil? はnil かどうか確認するメソッドで、、、
みたいな感じで、丁寧に思考回路を(だいぶ初心者にわかりやすい形で)言語化してくれます。
なんでよいのか、というと、知らない知識を学ぶことができるのはもちろんですが、、、
自分の思考回路と作業スピードと比較することができるからです。個人的にはそう思います。
事前課題を解くときは、
えーっと、これがああで、このエラーはたぶんこういう意味だから、、、これでたぶんいけるはず、、、
みたいなノリでやっています。
講師の解説を聴くと、次への行動へ移るために必要十分の情報を無駄のないステップで的確に取得している様子がわかります。コマンド打つのもコピーもはやい!
漫画家がささっとキャラを描きあげる様子や、名探偵が犯人のアリバイをひとつひとつ握りつぶしていく様子や、特殊部隊出身の軍人が敵を制圧する様子を、LIVEで見るような感覚です。大げさに言えば、無駄のない動きの美すら感じます。わお。(熟練なのだから当然かもしれませんが、すごいもんはすごい)
なるほど、こう考えるのかー、ととても参考になります。型を字で覚えるではなくて、目で見るとぜんぜん違う、と鬼滅の刃でも誰かが言っていた気がします、、、
復習する項目
・検証のネットワークタグ
・valid?
・ぼっち演算子
・ヘルパーメソッドとコントローラの関係
・findは例外を出し、find_byはnilを返すことの利用の仕方
最後に
読んでくださったくださったかた、ありがとうございます。
興味があれば、、、
この記事が気に入ったらサポートをしてみませんか?