プログラミングとバグ 
火曜日, 12月 26, 2006, 11:12 AM - プログラミング
小堤です、相変わらずせっぱ詰まってます。

さて、プログラミングとバグについてです。
最近WEBのプログラムをメインで組んでいて、「バグ」というものについて変わってきたなぁと思うので書いてみたいかと。

昔プログラムを組んでいたときに、バグというと、「仕様書から外れたもの」だったと思います。つまり「予期しない動作をする」「想定している動作と違う」からバグなのです。

しかし、WEBプログラミングについてはどうでしょうか。
確かに上記に当てはまるものがバグなのですが、「外れている」を示しているはずの仕様自体が無いような気がします。最近では卓上デバッグなど行いませんが、紙面上(いまだと画面上?)でしっかりとした動作規定を作るということが意外と軽視されている気がします。

でも、それがWEBなんだよねぇっていわれるとしかたないのかなぁとも思うのですが、なんとかならないかなぁと毎日考えています。フレームワークを作成していますが、フレームワーク使ったからといって、この仕様がしっかりしないと、何を使おうがバグが生まれるのは必然です。

どうにか、この「仕様策定」という作業を本当にお客さんと握れて、そこに対してのプロセスが明確なWEBプログラミングをしたいし、そういう仕事のスタイルでWEBアプリケーション開発業務を行いたいと考えています。これは、自分たちが幸せというだけではなく、お客さんにとってのメリットっというよりも、至極あたりまえのことなはずです。

開発者の立場として、現状こういう問題があることは事実だと思いますが、別なアプローチで、こういう問題を回避できるようなやり方やツールを提案できたらいいなぁと思っているわけです。

なんか、まじめにかいちゃいましたが・・・おなかすいた・・。

MySQLのMAX値+1 
日曜日, 11月 26, 2006, 05:49 AM - プログラミング
先日やってみてできたので、メモ。
MySQLはPostgreSQLとかとちがってカーソルがありません。なので、データベースにレコードを追加する場合、自動加算(オートインクリメント)でもフィールドに設定しておかないと、MAX+1ができません。
が、できる方法を見つけました。というか、みんなやってることなのかもしれないけども。

とりあえず、MySQLはINSERTするテーブルと同じテーブルをサブクエリとして設定することはできません。マニュアルに書いてあります。
なので、下記のようなことはできないということ。

INSERT INTO tbl_hoge (
seq
name
) VALUES (
( SELECT MAX( seq ) + 1 FROM tbl_hoge )
'ほげ'
)

でだ。できる方法というのが、下記です。

INSERT INTO tbl_hoge (
seq
name
)
SELECT
MAX( seq ) + 1,
'ほげ'
FROM
tbl_hoge


なんだよー、つい癖でINSERT INTO 〜 VALUESって書いてたけども。
癖ってこわいわぁ。
コメントを書く   |  このエントリーのURL   |  related link   |   ( 2.9 / 30 )