Skip to main content

最低限のコードで、最大限のサービスを

· 5 min read

最低限のコードで、最大限のサービスを

d24f5b74

敬愛してやまないジミヘンドリクスの名言に下記のものがあります

The sound which is the minimum number of people and is maximum.
最低限の人数で、最大限の音を。

また、Web サービスを作る上でバイブルにしている GettingReal にも非常に心に残っているチャプターがあります

Less Software

  • Less software is easier to manage.
  • Less software reduces your codebase and that means
  • less maintenance busywork (and a happier staff).
  • Less software lowers your cost of change so you can adapt quickly. You can change your mind without having to change boatloads of code.
  • Less software results in fewer bugs.
  • Less software means less support.

本当に機能を維持しつつ、コード量をいかに減らすか。 これが自分にとってサービスを作成する上で非常に大切なポイントです。

リソースは限られています。そのためにより少なく・洗礼されたコードであるべきと考えています。 機能要望を断ったり、使われていない機能を削ったり、自分はコードを最小限にするために戦っています。

そこでその戦いを有利に進めるために使っている下記のツールを紹介します。

  1. ts-prune
  2. cloc

ts-prune

ts-prune を利用することで公開されているがプロジェクト内で参照されていないものを列挙してくれます。 Typescript プロジェクトの未使用のエクスポートを削除できます。

使われていないのに存在するものは、押し入れの中で使われもしないのに存在するガジェットや服と同じです。捨てましょう。

このツールを使うことで機械的に列挙し、安心して消すことができますので定期的に実行してお掃除する習慣をつけると年々溜まるゴミがなくなるということです。 履歴は Git に残っています。さあ今すぐ実行してみましょう。

$ npx ts-prune src

cloc

cloc はファイルやプロジェクトのステップ数をカウントしてくれるツールです。 たったこれだけです。

$ npx cloc src

npm 以外にもたくさんのインストール・実行方法があります。

コード量を減らすということはコード量を測って定量化することが必須です。 ダイエットと同じです。まず測る。実行する。また測る。 この繰り返しが体重でもコードでも減らすという行為には必要です。

しかし、コード量を測るにはどうすればいいのかと考えているときに cloc を見つけました。 たくさんのオプションがあるので、言語別に出しわけたり、 --by-file オプションをつけてファイル別に出したりできます。

自分のプロジェクトでは下記のコマンドで計測する必要のないファイルを除外してカウントしています。

$ npx cloc src --exclude-lang=Markdown,JSON,SVG

この手のツールは非常に便利で、開発やサービスの運用を有利にしてくれます。 これからももっと見つけたり、自分でも作ってみたいと思っています。


おまけ Youtube の動画を markdown に貼る

おまけですが、先日のブログで Youtube の動画を markdown に貼りたいと思った時のスニペットを貼っておきます

[![{{TITLE}}](http://img.youtube.com/vi/{{VIDEO_ID}}/0.jpg)](http://www.youtube.com/watch?v={{VIDEO_ID}} "{{TITLE}}")

サムネイルを表示しつつ、Youtube ビデオへのリンクになります