- Back to Home »
- JavaScript , プログラミング »
- プログラムの最適化について
Posted by : Izumikawa Fukumi
2014年8月22日金曜日
今回は初心者さん限定の記事となるのですが、今回お教えするのは、
「プログラムの最適化」です。具体的にどのような事なのか分からない方も居ると思いますけど、プログラムのソースを出来るだけ短縮し、分かりやすく書くと言う事を自分では最適化と思っています。(勝手に)
ではちょいと手元にあったソースを元にしてみます。
今回書いたソースは +竹内史 にお願いされて書いた簡単な関数です。
function url_TextData(data){
var val = 0;
var Textif0 = new RegExp("^https?:\\/\\/[\\w_\\-\\.]+[^\\.]\\.([a-z]{2,2}\\.[a-z]{2,2}|[a-z]{2,3})\\/?$");
var Textif1 = new RegExp("^http?:\\/\\/[\\w_\\-\\.]+[^\\.]\\.([a-z]{2,2}\\.[a-z]{2,2}|[a-z]{2,3})\\/?$");
if (data.match(Textif0)) { val++; }else if(data.match(Textif1)){ val++; }
return val;
}
関数の内容は、URLであるかでないかを判断するプログラムです。
URLでは無いときは0を返して、URLである場合は1を返します。
至って簡単なプログラムですね。
このソースはもう既に最適化しています。
これを最適化してない状態だと以下の様になります。
function url_TextData(data){
var val = 0;
var Textif0 = new RegExp("^https?:\\/\\/[\\w_\\-\\.]+[^\\.]\\.([a-z]{2,2}\\.[a-z]{2,2}|[a-z]{2,3})\\/?$");
var Textif1 = new RegExp("^http?:\\/\\/[\\w_\\-\\.]+[^\\.]\\.([a-z]{2,2}\\.[a-z]{2,2}|[a-z]{2,3})\\/?$");
var a = data.match(Textif0);
var b = data.match(Textif1);
if (a) { val++; }else if(b){ val++; }
return val;
}
これだと、無駄に変数に値を入れている感じしますよね。
なんせC言語を使ってたら、そんなどうでもいい事まで気になってしまいます。
こういった変更をする事により、無駄に記述を無くし、かつ、奇麗にソースを書く事が出来ます。
皆さんも試してみてね。