« 【私信】ミラ・アヴィを買え | Main | 優しい時間 第2話 »

Jan 20, 2005

卒研も終盤、まとめ

 久しぶりに卒業研究ネタを書いておきます。今までのまとめなのでちょっと長いです。

 卒業研究と言って思い出されるのは前期卒研。前期(2004年夏)ではDirectXを使ったリアルタイムシミュレーションゲームを作ってたんですが、こちらはManaged DirectX9.0bにおけるDirectDrawのいい加減な内容と進まぬ作業に腹を立て、鬱憤もたまって色々書いてましたね。死ぬと思いました

 完成したから良かった物の、結局は当初の計画より大幅にライトな仕様になりましたし、それで居て動作するパソコンを選び、バグも取りきれてないので結局公開は中止することになりました。


 そして今回の後期卒研。後期は実用にも耐える(?)WEBショッピングサイトを作ってます(2004年秋から現在進行形)。

 C#、ASP(VB Script)、XHTML等と様々な言語を駆使したにもかかわらずプログラムで悩むことは少なかったですね。業務システムで使用したC#(VC#.NET)自体の生産性は非常に高く安易で適度にパワフルなので、前期で学んだ基礎を活かしての対応は難しくありませんでした。

 環境だけを書いても、

 【開発環境】
  WindowsXP Professional SP2/VisualStudio.NET/.NET FrameWork1.0
 【サーバ環境】
  Windows2000Server/IIS5.0/SQL Server2000

 と、若干枯れた環境でしたし、.NET FrameWorkに関するTipsも随分多くなっているので前期と比べると至極平和で悩み所は少なかったですね。その分仕事は多かったんですけど。

 ただ、まぁ、悩みが0だった訳ではなく。

 【1】ADO.NETが意図した動作をしない(と言うか、エラーを吐いて強制終了する)

 これはADO.NETとSQL Server2000の相性問題なのか、どうもADOのSqlDataAdapterが持っているSelectCommand以外のCommandをADOをFillしようとする事で実行すると同時実行エラーが起きるというものでした。

 本来は、ADOが選択、追加、削除などの各クエリを一元的に発行し、SQL Serverはそれを受け取って一度に処理してくれるはずなんですが。どうも一件づつしか処理してくれませんでした……。

 しゃーないので、ADOをあきらめ、結局は古き良き技?Connectionを開き、SqlCommandTextを一件づつExecuteNonQualeメソッドで発行してConnectionを閉じると言う手順をたどる羽目に。うーん、ADOの意味が……。

 他にデータベース周りでは、クエリビルダの中での@を利用したパラメータ指定に限度があったり、やたらとWHEREをJOINに変換したり。仕方の無い事だけどOracleの方がやっぱり使い勝手がいいかもと感じたり。その辺は凄く不満が。

 【2】.NET FrameWorkが用意するコンポーネントをどうにも好きになれない

 色々謎めいてませんか?.NET FrameWorkのコンポーネント。例えばDataGridとか。

 DataGridは表を表示するコンポーネントなんですが、何故ReadOnlyプロパティによって行の追加禁止、編集禁止が同時に出来るのに、「追加禁止だけ」を指定することが出来ないのか?とかね。

 こちらは面倒だったけど、DataViewを解して追加禁止、編集可能にした後DataGridのソースに入れなおすと言う技を駆使。これやんないと、いつまでたってもエラーが出続けると言う悪循環……。CurrentRowIndexとSelectの違いを理解するまでに何度も配列外参照を起こしたり。

 また、行単位での色の指定とかスタイル周りがやけに面倒くさい。これは結局実装するのをためらってやめちゃいました。

 他にもこのコンポーネントにあったらいいのに。昔は出来たのに。と言う事が出来なくってこの点は大変でした。DataGridはデータベース利用するアプリケーションでは良く使うだろうし、もう少し融通もたせて欲しいかも。

 【3】XHTML、CSS、ASPの関係

 今回、Webショップのページ部分ではXHTML、CSS、ASP(ここだけは.NETでの開発を避けました)を利用して記述しました。

 W3Cが提唱している通りに記述言語のXHTML、スタイル定義のCSS、それと様々な処理用言語を組み合わせページを作成すると、デザインの部分での統一はもちろん、コードの使いまわしや基本となる記述部分での記述が減って生産性が大幅に向上します。

 XHTMLではルールを守るのが面倒ですが使用するタグや属性自体は大幅に減少しますし、CSSを利用すれば配置やデザインの定義もらくらく。スマートにページを作ることが出来てそこには非常に満足。

 今回は処理部分に超簡単なVB Scriptを利用したことで、あっという間に総ステップ数1万ステップ程度で立派なASPショッピングサイトが出来ました。XHTMLに対応するブラウザならば、クライアント側でスクリプトなどを動作させない限り殆ど動作にムラがありませんしナイスです。

 ただ不満が無い分けなくって。それぞれに不満が。

 まず『XHTMLとCSS』。

 スタイルに関する定義を全部外部CSSファイルに定義することが推奨されてますが、FONTタグやstyle要素が使えないのはもちろん、全部小文字で記述する必要があり、おまけにbrタグなど、今まで閉じる必要の無かったタグも<br />と記述する必要があったり。正直細かいルールが面倒。

 同じようなデザインの繰り返しのホームページであれば生産性は一気に向上するんですが、微妙に変化をつけなければいけない場合。例えばテキストの色を一文字づつ変えたい場合や、ピクセル単位で表示位置を調整しなければならない場合などは、外部スタイルシートの中身がclass定義の山だらけになって後で混乱します。

 この辺は、慣れや技術、外部スタイルシートごとに使用するclassを分割するなどで対応可能なんですが……。XHTMLに完全準拠したテンプレートを配って皆で開発したのですが、後で見てみるとやはりタグは大文字だらけ、FONTタグや配置のためのtableタグの利用など、面倒だからと非推奨だらけになってしまいました。

 このあたり、もう少し柔軟に対応できる様にならないもんですかね。

 最後に『ASP』についての不満。

 まずはIISで実行されると言う所が最高に嫌。環境を立ち上げるまではイージーなんですが、重いしセキュリティの穴が怖くて個人レベルで立ち上げてやろうと言う気持ちは全く起きませんね。

 また、今回使用したVB ScriptもVBベースでちょっとね。ただ、本やWEBでのTips集めに限界があったから利用したんですが。素直にJSPやASPを利用する場合でもC#で記述してみるなど、ある程度挑戦した方が良かったかなと今では思ってみたり。むぅ。


 以上、色々書きましたが後期はボケーっとプログラムできて楽しくやれました。ほぼ全ての部分のプログラムに携わる事が出来ましたし、XHTMLやASPを学習できたのは後々に役立てて行きたいと考えてます。

 とは言っても。多分就職したらばWebショッピングサイトを作ると言ってもフツーにVB6.0かC++6.0でOracleを利用して、CGIかPHPによる古いスタイルでの開発になるんだろうなぁと予測できるのでこのあたりは非常に残念かも(笑

 取り合えず、後は作ったソースのステップ数を出して作業を評価したり、プレゼンテーションやマニュアル。要求定義書や画面設計書、HIPOの改ざん(ぉぃ)などと言うラストスパートの段階に突入しました。

 未だにバグが探せば出るような状況ですが……。そこはそこ。見なかった事にして学校生活最後の開発を終えようと思います。言わなきゃばれないからな(悪

 3年間培った悪知恵もここに来て開放するときが来たようで。

#サポートなしで5万円程度でなら売れるかもな。とのお墨付き。安い……('A`)

<開発の際に参照したお役立ちサイト様>
1.C#
DOBON.NET
緑のバイク ★ 初めてのC#
宇宙仮面の C# プログラミング

2.ASP
ASP VB Script プログラミング言語資料 - SAK Streets
ASPの公園 active server pages
TRY! ASP

3.SQL
TECHSCORE - SQL - はじめに
SQL講座 [SMART!]

4.その他
とほほのWWW入門
Another HTML-lint gateway
初めてのホームページ講座

<お勧めツール>
Blue Step Counter(Windows95/98/Me/プログラミング)
ファイルの検索・一括置換 Grep and Replace(Windows95/98/Me/ユーティリティ)
MKEditor

|

« 【私信】ミラ・アヴィを買え | Main | 優しい時間 第2話 »

Comments

おつかれさまです。

>#サポートなしで5万円程度でなら売れるかもな。とのお墨付き。安い……('A`)

「売る」というのはパッケージとしてなのかそうでないのかで評価は変わりますが。
パッケージなら3分の1~4分の1くらいですね(実売で15~20万くらい)。
専用の物として売るなら0が1つか2つ少ないです。

Posted by: maeda | Jan 20, 2005 at 17:27

こんばんは、コメントありがとうございます。

えーっと、今回の場合は、
WEBショップを作りたいとのお客さんからの注文を、
全くの0から30人を費やし3ヶ月開発したケースなので、
フツーだったら数百万円規模です、多分w

もちろん学生ですから、
開発に30人費やした所で……。
といった程度の粗末なものですが、
幾らなんでも5万円は安いだろと抗議中ですw

全体で70K程度のステップ数が多いのか少ないのかも、
ちょっと良く分からないですね。

Posted by: エヴラカ丸. | Jan 21, 2005 at 01:30

>全体で70K程度のステップ数が多いのか少ないのかも、
>ちょっと良く分からないですね。

うーん、20年くらい前ならステップ数=値段なんでしょうけど……。
(今でもそういう考えの人もいますが)
でも、腕のいいプログラマなら少しのステップ数で高度なコードを組みますし、言語によってはいくらでもステップを圧縮できますから、何とも言えません。
しかし、それでも5万円は安すぎるような気がします(笑)。むしろ、安すぎて信用できねぇ(爆笑)。

Posted by: maeda | Jan 21, 2005 at 12:22

こんにちは、コメントありがとうございます。

>うーん、20年くらい前ならステップ数=値段なんでしょうけど……。

ですねぇ、平成4~5年まで、
「1ステップ 800円」
で働いてた経験を持つ先生が学校に居ますしw

70kだと……((((((;゚Д゚))))))ガクガクブルブル

>5万円

まぁ、実際に納入できるレベルではないんでw
起動に29秒かかる画面があったり、
そもそものインターフェイスが非常に見難かったり。
まだまだこの辺は学生と言うレベルでした。

Posted by: エヴラカ丸. | Jan 30, 2005 at 13:35

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/1924/2633852

Listed below are links to weblogs that reference 卒研も終盤、まとめ:

» Rea, Chris mp3 [Rea, Chris mp3]
Rea, Chris mp3 [Read More]

Tracked on Mar 27, 2007 at 05:34

« 【私信】ミラ・アヴィを買え | Main | 優しい時間 第2話 »