こんにちは!筋肉、してますか!?
この記事は 筋肉 Advent Calendar 2016 - Qiita 21日目の記事ですよ!!
さて、アドベントカレンダーも 21 日目ともなれば、筋トレがもたらす肉体的・精神的なメリットはもはや熟知されているかと思います。
そこで、この記事では私が感じる筋トレとコーディングの共通点を紹介し、筋トレは健康だけではない!コーディングスキルの向上にも貢献するのだ!!ということをまとめてみます。
職場に 筋肉手当 を導入してもらおう!!
筋肉を分割して考えるように、メソッドを分割しよう
筋トレでは鍛えたい部位に意識を集中し、徹底的に一つの筋肉をいじめ抜くことで最大限の成果が得られます。
上腕二頭筋のトレーニングをしているときに肩の筋肉で持ち上げていないだろうか…背中を鍛えるつもりが腕でバーベルを持ち上げていないだろうか…
あれ、なんだかコーディングに似てますね。
Model のメソッドなのに、ルーティングに関する処理を行っていないだろうか… get_hoge
というメソッドなのに、 get する以外の処理を書いていないか
そうです。コードの役割を分割することにすごく似ているんですね。
もし「この関数に処理が多すぎる」とか、「Controller でやる処理じゃない」などのレビューが多い方がいましたら、筋トレをイメージしてコードを書いてみてください。
今は上腕筋のトレーニングだ。何があってもこの筋繊維以外は絶対に動かさないぞ!!そんな気持ちで、 Model の処理は Model にだけ書いていきましょう。
Github で草を生やすかの如くトレーニングをする
トレーニングってつらいですよね。継続できないですよね。そんなときは Github を思い出してください。Github の草、生えてますか?
草がたくさん生えている人は、やはり相対的に優れた技術者であることが多いと思います。優れた技術者になるために、毎日草を生やすためにコードを書く人も多いのではないでしょうか。
筋トレも一緒だと考えてください。継続して草を生やすために毎朝コードを 1 push するように、我々は毎朝プッシュバーを 1 push しましょう。コードを pull した回数だけケーブルマシンを pull しましょう。
そして、草を生やす代わりに、空になったプロテインの容器を並べましょう!
筋トレそのものを目的にするのは難しいですが、周りから見てわかりやすい目標を持って、トレーニングに励みましょう。
運動、食事、睡眠
筋トレの効果を最大限に発揮するためには、運動するだけではなく、食事と睡眠にも気をつける必要があるのはご存知の通りかと思います。
筋肉を維持・発達するために運動し、傷つけた肉体を修復するために栄養のある食事を取り、体力を回復させるために十分な睡眠をとる。
コーディングも一緒ですね。
生涯コーディングで食べていくためには身体がとても大事です。
健康を維持するために運動し、運動と思考で失った栄養を食事で補う。明日もまたコードを書くために、しっかり休んで体力を回復させる。
もし「あいつ今日もジム行くとか言って早く帰りやがった…」なんてぼやく同僚がいましたら、この先を見据えて効率良く質の高い成果を出すための投資だぞ!と言いくるめ、そいつもジムに連れて行きましょう!
1人でできる効率化なんてたかが知れていますが、チームメンバー全員を巻き込めれば、みんな筋肉!強い筋肉は強いチーム(物理)を作ります!
最後に
ある日、クライミングを終えて帰宅中の出来事です。
どうやったらもっと強くなれるか…そしてどうやったら仕事でもっと良いコードが書けるか…
「あ、筋繊維に意識してトレーニングするのと、クラス・メソッドの役割を意識してコード書くのって似てるな…」
こうしてこの記事は作られました。
明日は musclemikiya さんで、「エンジニアが最高のパフォーマンスを発揮し続けるための筋肉メンテ術」です。楽しみですね。