ユーザー視点のプログラムってなんだろう?
今日もシステムは稼働しています。
さて、どうでしょう。
もし、ログインしてとある画面を操作してみたら、なかなか応答が返ってこないなぁ、、、
ということが起きたら。
これにはいくつかの影響が考えられるでしょう。
- プログラムの処理が終わっていない
- メモリ枯渇によるDBの応答不能、エラー
- 上記原因によるWebサーバの停止
- ホスティングサービス上の障害、メンテナンス
- etc
そして最悪なのが、自分が書いたプログラムがその原因だったのパターンですよね。
そうならないようにユーザー視点のプログラムを書けるようになりましょう。
そうすれば、自分の書いたプログラムが常に生きている状態となり、
ユーザーに喜んでもらえるシステムを維持することができます。
(私的)良いプログラムの3点セット
- プログラム行数が短い
- 処理時間が短い
- メモリ使用が最適化されている
まずはこの3つを意識すれば、大体運用上死なないプログラムになります。
コードレビューやリファクタリングする際も、
この視点を持つことでより良いプログラムにできると思います。
※プログラムの行数を短くするのはリファクタリングのテクニックが
該当するのでリーダブルコードを読むといいよ!
処理時間を短くする
文字連結時にはStringではなくStringBuilderを使う
Stringで文字列する場合
String name = "クアッカ";
name += "ワラビー";
name += "様";
コンパイル時
String name = new StringBuilder("クアッカ").toString();
name += new StringBuilder(name).append("ワラビー").toString();
name += new StringBuilder(name).append("様").toString();
このように、各オブジェクトが無駄に生成されてしまうことがわかります。
つまりメモリの使用量が一時的に増えます。
※実際はこのぐらいの文字列であれば大差ないですが、
もし巨大な文字列出力する際に、Stringを使ってしまえば、
サーバー上のメモリを逼迫してしまうことになるでしょう。
突然訪れるメモリ切れ
俺たちの戦いはこれからだ…!
来週に続かせてもらおうと思います。