Help us understand the problem. What is going on with this article?

ユーザー視点のプログラムを書くために(1)

ユーザー視点のプログラムってなんだろう?

今日もシステムは稼働しています。
さて、どうでしょう。
もし、ログインしてとある画面を操作してみたら、なかなか応答が返ってこないなぁ、、、
ということが起きたら。

これにはいくつかの影響が考えられるでしょう。

  • プログラムの処理が終わっていない
  • メモリ枯渇による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を使ってしまえば、
サーバー上のメモリを逼迫してしまうことになるでしょう。

突然訪れるメモリ切れ

俺たちの戦いはこれからだ…!
来週に続かせてもらおうと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした