plasmasphere.net -プラズマスフィア ドットネット-
Diary
二枚舌
2008/09/05(Fri) 00:09
会社を出たら雨避けと横の柱の間に蜘蛛が巣を張ろうとしていました。
3メートルくらいは間あったんですけどね、すごいですね。
蜘蛛がいる場所だけダラーンと下がってましたけど。
出て真正面だから、誰か引っ掛けるか管理のおっさんに叩かれる運命ですが。
これだけだとナンなので、下書きにしてあった日記でもどうぞ…。
二枚舌っていう言葉があります。
前と食い違うことを平気で言うこと。うそを言うこと。
技術系の仕事をしていると頻繁に遭遇します。
先方からのご要望・仕様変更という形で。
今回はその顕著な例を紹介していきます。
PHPでアップローダを構築していた際に、アップロードしているファイルの容量が、php.iniで設定したpost_max_sizeの値を超えると、該当の変数の値が消えてしまう事から始まりました。
変数の値が消えてしまうと、汎用のエラー出力プログラムだけでは対応ができなくなります。
単純にPOSTでの処理なので、値がなくなった場合、トップページへ強制的に遷移してしまうプログラムでした。
そこで先方の担当さんはこう思ったようです。
ブラウザのタイムアウトだと。
一般的なブラウザのタイムアウトが1分程度で切れるわけありません。
担当は一応SE出の方でしたので、言語は違えどWeb関連の事は分かっていると、分かってくれていると思っていたのですが。
それの解決案として、担当はこう依頼してきました。
アップロード中にローディングバーを表示してほしい。そうすればブラウザのタイムアウトはおきない筈だ!
私は説明しました。
ブラウザではなく、サーバの設定次第である事。
それ以前にローディングバーを出したところで、タイムアウトは起こるという事も。
そしてローディングバーを実現する為には、Ajaxを使用した技術で構築する必要があるという事も。
ローディングバーが実現できればAjaxでなくてもいいと考えております。
Ajaxでないと出来ないと説明しているのに、Ajaxでなくてもいいとは一体どういう了見でしょうか。
この時点で設定とプログラムを変更し、容量の大きいファイルをアップロードしても、エラーを出すようにしました。
先方はこう言っていました。
大きなファイルをアップロードしている場合に、処理が行われている事を可視化できればよい。
ブラウザにローディングバーがついているので、これで終わりかと思ったのですが、Ajaxが嫌いな割に独自のローディングバーに固執しているらしく(見た目的に気に入ったのかもしれませんが)
ブラウザに装備されているものでは駄目です。Webサービス内に実装してください。
処理が行われていることを可視化できれば良かったのではないのかと。
結局Ajaxを使用して実装する事にしましたが、それを先方が理解しているかどうかは分かりません。
Ajaxを使用せず実装してください。
とか実装した後に言ってきそうな気がします。
恐ろしい話しです。
そもそも決定項として貰った仕様書の段階では、アップロード中のローディングバーの実装という単語はどこにも無かったのです。
閑話休題。
途中の仕様変更は後々システムの不具合とかになる場合もあります。
最初に全て決めてその通りに作るべきです、そして仕様が追加されるのであれば、もっと吟味して作るべきです。
特に、バグの無い安定したサービスを提供したいのであれば。
これでも給料が良ければまだ自分に言い聞かせれるんですけどね、我慢しろと。
いや、我慢はしてますけども。
何ででしょうね、日本の技術職は不遇すぎますよ…。