|
JavaScriptのjsmodeのところのヘルプの記述...
■jsmodeと名前空間の必要性が高いことをちゃんと記載した方がよいかと
jsmodeと実行空間まわりの記述ですが、今のヘルプの感じだと、
「好きな人は付ければいいんじゃないですか? 付けないのが普通で、付けるのは
好みです」くらいのテイストに一見見えますが、
もっとハッキリと「名前空間はちゃんと付けて! 原則、何も考えずユニークな
名称を付けて!」
ぐらいのスタンスで解説した方がよいかと思います。
「名前空間を付けておかないと、他のマクロと干渉して動作しなくなりますよ?」
といった趣旨、
(例で理解してもらうのが難しいと思えば、「原則、とにかくユニークな名前でも
GUIDでもなんでもいいから、付けて」の1点張りで良いかと)
■特に初学者ほど「変数名・関数名」をサンプルや他者マクロそのままにコピペしや
すい
初学者ほど、ヘルプのマクロの簡易な変数名・簡易な関数名や、他者のマクロその
まま利用する傾向があります。
同じ変数名、同じ関数名を使うと、a.mac の後、b.mac を実行すると、a.mac の定
義してあったものが、
上書きされて壊れるという怖さを本当の意味で理解できる人は少ないかと思います。
(通常ユーザーが触れるJavaScript、あるいは、初学者が書くようなスクリプト言
語の層ではそのようなことは意識しなくてよくなっているため)
JavaScriptに限らず、
・「Aのスクリプト実行」と「Bのスクリプト実行」が「同じ定義空間で実行され
ている」
・「Aのスクリプト1回目」と、「Aのスクリプト2回目」が「同じ定義空間で実行
されている」
は、中級者以上でないと「それがどんな破壊をもたらすのか?」理解できないかと
思います。
■理解がある人でも、変数名・関数名は同じになる傾向がある
「作成者」が同じなら、違うマクロでも、「同じような役割」のものに、同じ変数
名や同じ関数名を付けやすい
このような「当人のマクロが増えれば増えるほど」、(同じファイルに対して、複
数のマクロを実行する可能性が上がっていくので)
当人のマクロ同志で壊しあう可能性がどんどん上がっていく。
■非同期が結構あるのが危険度を高めすい
同期しかなければ、通常の秀丸マクロとは大きく変わらないため、実質的な被害が
起きる可能性が結構低く抑えることができますが、
(変数や関数の「未定義・定義」の違いを前提に挙動を変えている場合だけ影響)
非同期だと、どうしてもなんらかの関数や変数を常時参照しているタイプの書き方
が多くなりますので、
名前空間を付けないままマクロを量産していると、いつか壊れるだろなぁと。
■数が少ないから露見していないだけで、
数が増えたら「なんかたまに壊れるんです」となるのは結構目に見えてます。
(しかも外野から見た際の解決が相当に難しい。マクロ単体だとどこまでいっても
正しいから)
■ 私もマクロライブラリに jsmode "WebView2\\*****" とはっきりと名前空間を定
義していないのをアップしてしまって
しくったという思いですが、
(更新した際には全部名前空間付けましたが...)
|
|