CoffeeScriptのコードを静的解析器のCoffeeLintにレビューしてもらおう
素のJavaScriptが書きづらいと感じる方は少なくありません。波括弧や普通の括弧が多く、読みづらいと感じてしまいます。そんな中作られたのが代替言語のCoffeeScriptです。CoffeeScriptは変換用のコマンドを介して素のJavaScriptになります。CoffeeScript自体はRubyやPythonから学び取った点の多い、可読性の高いシンプルな構文となっています。
素のJavaScriptが書きづらいと感じる方は少なくありません。波括弧や普通の括弧が多く、読みづらいと感じてしまいます。そんな中作られたのが代替言語のCoffeeScriptです。CoffeeScriptは変換用のコマンドを介して素のJavaScriptになります。CoffeeScript自体はRubyやPythonから学び取った点の多い、可読性の高いシンプルな構文となっています。
コードレビューというとプログラマ向けの仕組みに感じますが、そんなことはありません。Webデザイナーにとっても役立つケースがあります。例えばCSSはテキストで書かれるものなので差分が取れます。更新部分だけをコードレビューできれば、日々の運用の中でメンテナンス性を維持できます。
JavaScriptは一つの実行内容に対して複数の書き方が存在します。また、コールバック地獄と比喩される非同期処理の積み重ねなど、ソースコードが分かりづらくなる要因が多数存在します。一人で小さなスクリプトを書く分には構いませんが、多人数で大きなWebアプリケーションを作り上げる際には問題が起こりやすいプログラミング言語です。
そこでまずコードを自動レビューして、悪い部分を修正していきましょう。そこで使えるのがJSHintになります。
RuboCopを使えばRubyのコードを静的解析してコードレビューを他の人にして貰う前にいくらかの内容を機械的にチェックできるようになります。RuboCopのインストール自体はRubygemsでできるのでさほど難しいものではありませんが、ローカル環境の変更はなるべく控えたい方もいるでしょう。そこでDockerを使ってローカルの環境に依存せずにRuboCop環境を整える方法を紹介します。
コードを書いたり、読んでいて、何となく嫌な感じのするコードに出くわしたことはないでしょうか。そういったコードの存在はシステムの保守性や可読性を損なうものになります。Reek というツールではそれをコードスメル(悪臭のするコード)と呼んでいます。
Reek は多数のルールに基づいてRubyのコードを精査してくれます。そうして出力された結果を元に修正していくことで可読性の高いコードに直せるでしょう。今回はReekの利用法を紹介します。
複雑であったりトリッキーなコードは思わぬバグを生む可能性があります。また、未使用の変数やメソッドなども本当は使われるはずが、タイポしていて使われていない可能性もあります。そうしたコードの問題点を指摘してくれるソフトウェアが多数存在します。
今回はPHPプロジェクトで使えるPHPMDを紹介します。JavaのPMDに類似した、PMDのPHP版のようなソフトウェアです。バグになりそうな部分、最適ではないコード、複雑な表現、未使用のパラメータやメソッド、プロパティを指摘してくれます。
皆さんはコーディング規約に沿ったコードを書いているでしょうか。そもそも自社にコーディング規約が存在しないという企業も多いかと思います。もちろん、コーディング規約を定めること・沿うことが一概に良いとは言えませんが、コーディング規約自体は企業単位でなく、コミュニティレベルでも作られているので一度見てみるのはいかがでしょうか?
Rubyのソースコード解析ツールであるRuboCopはRubyコミュニティによるRubyスタイルガイド(英語/日本語)や他のスタイルガイド(例えば当社の提供しているMeowCopなど)に準拠しているかどうかを自動チェックしてくれるソフトウェアです。
どのようなプログラミング言語であっても、複数人で開発しているとそれぞれが独自の開発スタイルを持ちがちです。その補正としてコードレビューは大事なプロセスになります。
今回はPythonの文法チェックツールであるflake8を紹介します。Siderではflake8を用いたPythonプロジェクトのコードレビュー自動化に対応しています。
PHP言語はアプリケーション開発の現場で非常に多く使われている、最もポピュラーな言語の一つです。20年近い歴史のあるプログラミング言語であり、その歴史の中で様々なライブラリやフレームワークが開発されてきました。
ライブラリやフレームワークは様々な文化で作られており、変数名やメソッド名の命名規則だけとっても、CamelCaseとlower-caseのどちらもポピュラーな存在です。
品質の高いソースコードを保つために、予めコーディングスタンダードを用意しておき、それに基づいてコードを書くことが多いです。特にスクリプト言語では書き方が人によって変わる傾向が強く、トリッキーなコードも多くなりがちです。
そのコーディングスタンダードを満たしているかをコードレビューでチェックする事が多いですが、解析ツールを使って予め機械的に確認することが出来ます。今回はNode.jsプロジェクトに対して使えるESLintを紹介します。ESLintはSideCI上でも利用可能です。