テックキャンプエキスパートで教えてくれなかったこと(コーディング編)

テックキャンプエキスパートを経て、Ruby on Railsで開発が出来る会社に入社しました。
しかし入社してからというもの、

「これを就職する前に勉強しておけば良かった」

と感じた事ががいくつかありました。

その中でも

「うわ、自分は何も考えないでコードを書いてきたんだな・・・」

ということは度々思いました。。

一体それが何かというと、

「文法、コーディング規約」

でした。

スポンサーリンク

コーディング規約、文法は何故存在するか?

エンジニアの皆さんは何故「空行」「無駄なスペース」などの文法に厳しいのか?

teratailのこちらの回答から引用させてもらいます。

「コードを美しく書くのもプロの仕事のひとつです」

まあ、お金もらってコードを書いている以上、それくらいの気持ちでは書いてます。
それ以外の理由としては以下です。

  1. コーディング規約に則った結果
  2. 見やすさ、読みやすさ
  3. メリハリ

特には2と3でしょうか。
スペースも空けずにギュウギュウに詰め込んだコードは非常に読みづらいです。
逆に無駄にスペースを空けると、他者が読んだ場合に「そこに何か意味があるのか」と思ってしまいます。
例えばある処理を行うコードが10ステップあったとして、なぜか途中に空行があると、別々の処理と捉えてしまいます。

この回答を見ると、「う〜ん。なるほど〜」と思います。
入社したての頃は可読性、保守性を考えたコードを書くという概念が欠落していました。(その場で思いつきに基づく改行やスペースなど酷い有様)

テックキャンプエキスパートでのコードレビュー

テックキャンプエキスパートではどう教えられたのか?という質問に答えます。

結論から言うと

「教えるメンター側次第」

でした。

テックキャンプエキスパートでは、
GitHubでPRを出してレビューをもらうことを繰り返しながらカリキュラムを進めていきます。

コーディング規約や文法などはそこまでうるさく言われた記憶はありません。
厳しく指摘する人しない人で半々という感じだったと思います。
指導するメンター側が固定ではなく曜日、時間帯によって変わるのでこの辺りはバラツキがありました。

現在のテックキャンプエキスパートの指導体制は分かりませんが当時はこんな感じでした。

結果として自分は「無駄な改行」や「無駄なスペース」などに無頓着になっていました。

Railsでエンジニアをするならこれを読んでおきたい

入社して研修期間中のレビューでは規約や文法などで大量のレビューをもらいました。

「ここに無駄な改行があります。」

「ここはスペースを開けてください。」

本当にしょうもないミスばかりでした。

しかし、このようなミスは少し意識付けや勉強すればすぐに改善することでした。
それだけに入社前にちょっと意識しておきたいポイントでした。

ということで自分がお世話になったコーディング規約をまとめたものを紹介します。

Ruby

fortissimo1997/ruby-style-guide
https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md

日本語で読めます。英語が苦手な人も安心。
少々高度な記述もあるのでRubyの基礎力がないと全部を理解するのは難しいかもしれません。

また分量もちょっと多いです。一気に読むと挫折します。
それでも読める所から読んでいくのがおすすめです。

Ruby on Rails

satour/rails-style-guide
https://github.com/satour/rails-style-guide/blob/master/README-jaJA.md

こちらも日本語で読めます。
Rails4.0〜なのでちょっと記述が古い箇所もあります。
分量は少ないのですぐ読めると思います。

Rspec

reachlocal/rspec-style-guide
https://github.com/reachlocal/rspec-style-guide

こちらは英語だけです。
しかしよく纏まっているのでこちらに目を通せばRspecの文法で迷うことはないと思います。

まとめ

言語に限らない細かい規約や文法(最終行に改行など)はエディタで対応出来ます。

初心者の方や、Ruby on Railsでエンジニアやりたいという人は、こちらで紹介した規約を元にコーディングを行えば大抵困ることはないと思います。

どこの会社に言っても恥ずかしくないような綺麗なコードが書けるはずです。

また、これを元にしておけば会社によって存在する細かい規約にもその都度対応できます。
意識するのとしないのとでは大違いなので、今まで考えたこともなかった方は見てみると良いと思います。