かけちゃんねる2

エモいことを書く

エンジニア初級者が意識すべき3つのこと

エンジニア研修を受けている。Rubyで書いていて、言語そのものに対する知識もつくのだが、どちらかというといまの学びとして大きいのはダメな習慣に気づいて、いい習慣に切り替えていくということだ。

デバックをすること

  • ひとつひとつの変数に、どの時点でどういう値が入っているのか(入るべきなのか)、メソッドの返り値は何になっているのかをきちんと確認すること。だめなのは大きな機能を作って、それを一気に「動くかどうかチェックするぜ!」とすること。そうではなく、処理の流れを読みながら、細かい単位で、「この時点ではこうなっているべきだ」ということを思考しながらコードを追っていくことが大事。

エラーログをちゃんと読むこと

  • 見るんじゃなくて読むこと。つまり、「どこ(何行目)」でエラーが発生していて、その原因は何と書かれているのかを理解すること。今までは No method error ってあったときに、「あれ〜このメソッドダメなんだ〜」みたいにざっくりと勝手に解釈をしていたのだけれど、よく読むと「このメソッドは Nil Class には使えません」みたいなことがあって、「じゃあ問題はこのインスタンスメソッド自体じゃなくて、レシーバが nil になっていることか?」と問いを立てることができる。これは、エラーログといっても人間的に教えてくれるわけじゃなくて、あくまでもフレームワークとしてのシステムが出力しているわけであって、フレームワークや言語そのものへの理解が必要なところだと思うけれど、学ぶことへの障害として大きいのは「英語だしなんか分かるとこだけ適当に読も〜」ってなってしまうことだと思った。

メソッドを切り分けること

  • 人間が読んだときにわかりやすいのがいいに決まっているので、可読性を高めることを心がける。DRYを心がけて、同じコードを何度も書いているところがあれば、すっきりと書いてあげられることのできるチャンスであると考えよう。
  • 機能単位に分けてあげることで初めてひとつひとつの処理のよいところや悪いところが見えてくる。例えるなら、物が散乱している部屋を生活しやすい部屋にしたいとお願いされたときに、「どこから手をつけたらいいかなあ」と悩んでしまう。なんとなく床に散乱しているものを見えないところに閉まってみたとしても、「あれどこいったっけ?」と探し回ることになるのがオチである。 ここで大切なのは、部屋の場所にそれぞれ役割を与えてあげて分離することである。たとえば、机の上はパソコンと毎日持ち歩くもの、本棚の2段目は文具、といった具合である。 そうしてあげることで初めて、「紙がたくさんあるけれど、どれも小さなメモとして使っていることが多くそれらがバラバラの場所に書いてたりするから、付箋を使ってリスト管理してみたらどうかな?」といった提案ができるようになる。

これらのことを習慣化することで、だいぶパフォーマンスが変わってくると思うので、ちゃんと意識していきたい。