2007年09月09日
『プログラミング作法について・・・(b)ファイルロック』
昨日に引き続き、ファイルロックについて説明して行きたいと思います。
早速ですが、図を見て下さい。
目的のファイルがあり、それを2人が編集する場合に必ず起こる問題です。
ここで時系列に沿って、シミレートしてみます。
①→Aさんが、ファイルを取り出し編集します。
②→続いて、Bさんが、ファイルを取り出し編集します。
③→Aさんが、編集したファイルを保存します。
④→Bさんが、編集したファイルを保存します。
この④の処理で、不具合が発生してしまいます。
つまり、Aさんの編集内容が、反映されません。Bさんによって、上書きされてしまうからです。
従って、これを防ぐには、2人の間で、最初にルールを決める必要がありますね。
皆さんも、どんなルールがあるか、少し想像してみて下さい。
そんなに難しい話ではありませんね。また答えは、ひとつではありません。
人数が多い場合など、実際の環境によって変わることも想像してみて下さい。
まず一番確実で強力な方法は、完全なファイルロックです。【排他ロック】ともいいます。
つまりAさんが、ファイルを編集しようと瞬間「①」に、
Bさんが、そのファイルに対して触れなくしてしまいます。
「②」の動作で、エラーになることです。
これによって、①→③→②→④ の処理になって問題が解決します。
でも、このルールでは、少々使い勝手が悪いことが起こります。
仮にAさんが、ファイルを一日中編集している場合は、Bさんはそのファイルすら見れません。
編集しないまでも、ファイルを見たいときも起こるでしょう。
2つめの方法は、編集はできないが、読み込むことができるルールです。
こちらは、【共有ロック】などと呼ばれています。
前者と後者、どちらが良いかは、いろいろな状況によって選択の余地があります。
大切なことは、1つの物を、2人以上で利用することに起きる不具合です。
この現象は、プログラムのほか、データーベースなどでも起こりますし、現実の社会の中でも、沢山ありますね。
例えば、『私のはさみがない』『ボールペンがない』、誰か使った?・・・とかとか?(^^;;
結局、隣の人の引き出しの中に、入っていたりとか?
その結果、『使ったものは、もとの場所に戻そう。』なんて、はりがみ貼られていたりなどなど・・・
つまり現実も、プログラムも一緒です。現実を仮装的にシミレートすることが、プログラミング作成になるのです。
実は、プログラムを作るときに重要なことは、現実の仕組みを理解すること、つまり仕事の仕組みを理解する事なのです。
ゲームの場合でいえば、オセロを作ろうとすれば、オセロをマスターして、上手でなければ、よいソフトは、できません。
話を戻しますと、現実に起こっている問題を、正しく動作するように、ルール化すること。
これがまさに、SEの仕事であり、システム設計です。
そしてそれを、コンピューターで処理するようにプログラムに変えていくことが、プログラマーの仕事です。
ゲームの場合は、ゲームについて、システムの場合は、サービスや業務についての全てを知らなければなりません。
例をあげますと、弊社で、アパレルのPOSレジシステムを、ゼロから構築した時、
2名のエンジニアが実際の業務を、最低半年間、体験しました。
そして現状に合わせた仕様を作成し、また更に業務改善も含めて設計したのです。
このことから想像できるように、皆さんは、普段からの業務の中に、このSEとしての視点を持って、働く必要があります。
どうすれば、もっと効率的に作業ができるだろうか?
作業スピード、作業の品質など、改善点を考えられるか?
この視点を常にもって、経験を積めば、必ずSEになれます。
プログラマーを目指す人は、SEの視点で、もっと現実の仕組みを理解するように努めていけば、プログラムも自然と書けるようになります。
話が長くなり恐縮ですが、一つのものを複数で使用するときの問題はどこにでも発生します。
ルールをしっかり決める事が、解決の第一歩ですが、それを、いろいろなことに応用して下さい。
現実の中に問題は沢山あります。物事の本質を見抜けるようになるまで、深く考えて見ましょう。
ツイッターはじめました~フォロー待ってま~す!!
↓↓↓下記の3つのバナーをクリックして下さい。ランキングUPにご協力をお願いします。↓↓↓
投稿者 shiozumi : 11:48 | トラックバック (0)