プログラムの最適化について(記述の際)

プログラムの最適化

 プログラムの最適化とは?と問われても答えられる自信はありませんが、適当に書いていきます。

そもそも、人間なんて完璧ではないですから、機械に指示出しするとしても、完璧でない穴のある変なプログラムを書いて実行してしまうことがあります。事実、「動けばいいや」でプログラムを書くこともあります。それは、私が今までに書いたプログラム文にも反映されています。

ここにも反映されています。というか、動かなくて突貫工事で追加していった結果、最適化されていないプログラムが完成しています。

まぁ、最適化されていないプログラムが完成というのはおかしいですよね。それって、未完成なのでは。と。そもそも、終わりはないですけども。

自分のプログラムを見てみる

で、記事執筆時点で最新の、

ここの中のプログラム文にも反映されています。

そもそも、メッセージを定数にしてしまって、それを引き出して使うだけにしてしまえば簡単に、仮にプログラムの内容、メッセージに変更が出来るのに、それをしていないので、内容に変更の必要があった時にいちいち全部変更することになってしまうのですが、それは大変すぎます。

public static String Hoge = "Hoge";

と宣言してあげて、それを以降のプログラム内に活用するだけでいいのです。でも、私はそれをせずに、いちいちコピペでしました。なんと非効率。

sender.sendMessage(Hoge);

こうするだけでいいのです。こうするだけでいいのです。(大事なことなので二回言いました)

変数・定数は便利

というか、変数というものは便利なものです。
一度宣言。その後そこに内容を代入するだけで、以降で使用できますし、変更があっても一度変更するだけで以降の使用されている部分でも変更が適用されます。

そんな変数を使わない手なんてありませんよね。でも、私は忘れていたので使いませんでした。もちろん、日が経ってプログラム文を見返したら、「なんだこのプログラム文」となるのは不可避でした。これは事実すでに体験しました。

結局、「これ、直してぇなぁぁぁ」と直しました。別クラスに定数実装して、それを呼び出して定数を使用するという手法へ。こうすることで、もしもメッセージを変えたいときは、その別クラスを参照して変更するだけで全体のメッセージを変更した。ということになります。便利ですよね。

それと、メッセージに
「-------」という区切り線もよく入れているので、Msg_pads(String)という関数もさらに別クラスに実装して、その関数を実行することで引数に入れたString(つまりテキスト)を「-------」で挟むことが出来るようになりました。

ある意味、やっていることを抽象化して、ほかで再利用できるようにしている。とも言えます。事実、この関数はいろいろなところに再利用しています。

抽象化と再利用

 やっていることの手順を抽象化して、関数に実装してしまえば再利用できることもあります。この通りでなくても構いませんが、様々なテキストを組み合わせて合体させるというのを、コピペでなんとかしようとするのは時間がかかります。

でも、関数として実装して利用することで必要な情報さえわかってさえいれば、その関数の引数に必要なことを書くだけで求めていたテキストが返ってくるだとか。そういった手間削減が出来るわけですね。しかも、テキストの内容を変更したいときにも、その関数もしくはその関数に使用される情報部分を変更するだけで、プログラム全体を変更しなくてよくなります。

便利じゃありませんか?

事実、この中でも似たようなエラーメッセージを流用しています。同じようなエラーメッセージを全部別クラスにおいて、そこにアクセスして利用するだけにすればコードの削減と最適化が同時に出来るわけです。やっぱり便利じゃありませんか?

最近のパソコンと最適化のエラー

 まぁ、最適化なんてしなくても、最近のパソコンは高性能なので変に下手なプログラムを書かない限りはまったくもって問題なくプログラムを実行してくれます。なので、無理だと思ったら最適化はしないほうがいいかもしれません。変に最適化をしてエラーだけを吐くようになったら最悪です。

実際、「これ、なんで動いてるの?」というプログラムは最適化なんてできません。あきらめてください。全部の理屈が分かったうえでいじらないと余計にごちゃごちゃして最悪へgo to deeper…。(深みへみたいな。なんでこうなったかは不明)

go to deeperはWe need to go deeperの一部を借りてきました。さらなる深みへ。みたいな感じですかね。

で、そんなことが言いたいわけでもなく。

まぁ。無理な最適化はやめましょう。スぺゲッティ化したプログラムもそのままにしましょう。やるとしたら一から作り直したくなるかも。

ではでは。


良ければサポートよろしくお願いいたします。いただいたサポートは活動費として使用させていただきます。