共通処理化で楽がしたい!
材料を入れるだけで、ポンと完成した料理が出てくるボタンがあったらいいなぁ、と毎日思っています。料理が好きでも得意でもない身からすると、ボタンを押すだけですぐに食べられたら最高です。
現実世界にはそんな夢の装置はなかなか存在しませんが、プログラムの中では似たような処理を作成することが可能です。いわゆる「共通処理化」です。引数(材料)を入れて、処理を動かす(ボタンを押す)と、中で処理をして、完成品を渡してくれます。共通処理化については是非が分かれる部分もあるようですが、正しいポイントで使用してあげると非常に便利です。書かなければならないソースの量も減りますし、楽です。
簡単な共通処理を作ってみる
function cooking(vegetable, menu) {
console.log(vegetable + "を使って" + menu + "を作りました");
}
cooking("レタス","サラダ");
⇒出力結果:レタスを使ってサラダを作りました
(最近はもっぱらJavaScript漬けなので、とりあえずJavaScriptで作成。)
使用頻度が高い処理なら、こういう形にしておくと呼び出すだけなので簡単ですね。
以前開発のお仕事をさせていただいたときに、「こういう処理をするときは、これを使ってね~」とリーダーの方が共通処理を作ってくださっており、大変助かった記憶があります。
余談:ajaxの共通処理化
続いてajax処理の共通処理化。二週間前にもajaxについて書いたのですが、その発端はajax部分も共通処理化してしまいたいな~という思いから。まあなかなか上手くいってはいないのですが、途中経過として、余談として。XMLファイルからデータを取得する処理になります。
function getXML (data) {
return $.ajax({
url:"test.xml",
type:"GET",
cashe:false,
dataType: "text",
})
}
getXML().done(function (data) {
具体的な処理・・・
})
getXML().done(function (data) {
具体的な処理・・・
})
getXML(data)の部分では、データの取得部分のみを共通処理化しています。具体的な処理の部分はそれぞれで記載する必要がありますが、これだけでもだいぶソース量は減りますね。functionに名前をつけておけるので、どういう処理なのかも分かりやすいです。まだまだ良い書き方はありそうな気がしますが、とりあえずこの書き方に落ち着きました。何回も同じファイルを呼び出して処理を行う場合に有用だと思います。
最近は本当にひたすらJavaScriptをやっているのですが、その中でもajax等非同期処理を扱う機会が多く、そのソースの長さに悩むばかりです。データを取得する部分だけでも平気で数行取られてしまうので、少しでも短く出来ないかなと試行錯誤しています。とにかく短ければ良いというわけでもありませんが、適した場所で共通処理化出来ると、便利で楽が出来て、改修もしやすくなります。やりたい処理を実現させるだけではなく、読みやすさや変更のしやすさも意識して取り組んでいきたいものです。