EY-Office ブログ

好きではが有用なツール Prettier

皆さんは美しいソースコードを書くのは好きですか? 私は大好きです。😊

Prettierというコード整形ツールがあるのは以前から知っていましたが、自分がきれい・美しいと思うコードとコード整形ツールの整形するコードが違うので使っていませんでした。

しかし、以前ブログに書いたリファクタリングのお仕事をしてみた(まとめ)ではPrettierを導入しました。私は美しいコードが大好きなのと同様に汚いコードは再嫌いだからです。😱

Prettier

Prettierのメリット

一定の美しさのコードが手間をかけずに入手できる事です。

  • インデントやスーペースの入れ方などが統一できる
  • 行末の ;" or 'の統一ができる
  • インデント数や色々なルールを設定できる
  • VS CodeやVim, Emacs等のエディター上でも使える

複数の開発者、とくにチームに新人や汚いコードを何とも思わない開発者がいる場合は、とても有用だと思います。

EY-Officeの教育ではきれいなコードを書く事は大事なことだと教えています。きれいなコードは読みやすくコードのメンテナンス性を高めたりバグの発見を容易にします。

とくに新人に対しては時間をとってきれいなコードを書く事を教えています。 きれいなコードを書く習慣は、新人のうちに身に付けておくべきだと思います。実際の開発業務の中にいると時間に追われ、コードの品質はなおざりになりがちだからです。

Prettierは努力無しできれいなコードを書くのに役立つ素晴らしいツールだと思います。

Prettierの嫌いなところ

ただし、Prettierは私が書くようにコードを整形してくれません。良くいわれる例としては

const top    = 100;
const left   = 200;
const width  = 80;
const height = 30;

のように=が揃うようにスペースを入れていますが、Prettierは以下のように無視してしまいます。🥺

const top = 100;
const left = 200;
const width = 80;
const height = 30;

また、JSXで多数のプロパティ(Props)があるコンポーネントを利用する際に工夫して行数を減らして書いても

<InfiniteScroll
  loadMore={loadScore} pageStart={0} useWindow={false}
  loader={<p>Loading...</p>} hasMore={hasMore}>
  <ListItems />
</InfiniteScroll>

Prettierは以下のように縦に並べてしまいます。🥺

<InfiniteScroll
  loadMore={loadScore}
  pageStart={0}
  useWindow={false}
  loader={<p>Loading...</p>}
  hasMore={hasMore}
>
  <ListItems />
</InfiniteScroll>

将来的には整形ツールにAIが内蔵され、私の好みを学習してくれるようになるのかなぁ〜と思います。

まとめ

読みやすい美しいコードを書くには、適切な関数・モジュール分けや、適切な関数・変数名を付けるなど現在の整形ツールでは出来ない事も多数ありますが、インデントやコーディングルールを瞬時に統一できるPrettierのようなツールを導入するのは、とても良い事だと思います。

- about -

EY-Office代表取締役
・プログラマー
吉田裕美の
開発者向けブログ