Sunday, October 24, 2004

資料庫往事....

前幾天偶然想起不愉快的往事
那些學長不知道畢業了沒?
還是在念博士班呢?

以前修資料庫的時候..因為之前已經寫了很多年的資料庫了..上的東西我都會
所以上課就有一搭沒一搭的不怎麼去
反正老師也說只要作業過了就過了..他不管出席成績的

到了期末的project....老師要大家設計個資料庫應用程式
題目大概不出通訊錄啦..檢索查詢啦..借還書啦..資源管理之類的..
我個人覺得這些題目相當沒有創意..
所以我提的題目是..三國志遊戲
我分析認為三國類型的遊戲是一種極為單純的資料庫應用程式
然後也著手做啦....
我從網路上找來一些三國的地圖..還有兵種的資料..
然後也自己畫一些人物..設計遊戲玩法..
因為只是期末作業嘛..所以大概做到koei三國志3差不多的水準就夠啦
反正能夠出兵..做內政..打仗..挖武將..等就差不多了
總共也用掉了包括城市、武將、勢力等三個資料表
三個資料表之間的交互關係就如同一般的ERP資料庫一般有點複雜又不會太複雜
另外還有好幾個作為暫存跟快速查詢用的table

而為了視覺的呈現..我還把當時還不怎麼流行的flash拿來跟我的程式結合
用flash來呈現動畫與視覺效果..主程式用來跟資料庫溝通還有做運算
我甚至還保留了未來發展成網路遊戲的架構

於是..demo的時間到了..我到了實驗室去
一個博士班的學長跟一個碩士班的學長負責review

我的噩夢就開始了....

老師對題目有條列一些spec
他們review的方式就是一條一條對

比方說..
-要能讓使用者選擇第幾筆紀錄..並觀看詳細資料
-所以我就讓使用者點選城市看到城市裡的所有武將..然後點選武將可以看到詳細的資料
學長:你這不是點選第幾筆紀錄, 不合規定
我:點選城市不是一樣的意思嗎?
學長:我沒看到你的recordset
我:recordset當然被藏起來啦..畫面都是表格算什麼遊戲啊
學長:我怎麼知道你顯示的東西是不是recordset (明明剛剛就開過access給你看了....)

-使用者必須能變更資料
-武將在城市間移動來移動去(所在地資料修改)、可以徵兵(人數變化)、也可以殺掉(刪除記錄)、還可以找到新武將(新增紀錄)
學長:使用者不能變更資料,不合規定
我:可以啊..有好多功能ㄟ..可以實行內政改變都市的資料..還有好多指令跟功能可以用
學長:我沒看到你用來輸入資料的form
我:誰玩三國志會想用打字的方式輸入啊..這樣的介面比較人性啊
學長:不管..我沒看到form

-資料庫必須cross reference
-城市、武將、勢力之間的交互關係很強烈啊..武將隸屬勢力、城市隸屬勢力、武將住在城市,連曹操搬個家就得同時更新三個資料庫了
學長:沒有交叉查詢,不合規定
我:你把這個武將搬去那個城市就動到好幾個資料庫了啊
學長:我只看到他從這個城市搬到那個城市而已啊

....太多了

結果是..我多數是不合規定
唯一最符合規定的是..我交的程式是一個執行檔跟一個資料庫檔

期末的結果....一個用jave寫的平凡無奇通訊錄拿最高分..沒有創意..沒有驚奇..有的就是照本宣科如同教科書範例般的一個漂亮程式
但..就只是一個漂亮的程式..看不到創意..看不到設計者的主觀..看不到想法..看不到在編排UI layout上的用心
(漂亮:寫得很漂亮..程式嚴謹..沒有bug..執行速度快..不是視覺上的漂亮)

我呢....56分

後來我向老師爭取....老師看過後..同意助教們的看法..整個實驗室一致同意我不合規定
哈! 從此我就知道我在CS是找不到我的理想世界了....

寫資料庫寫了好多年了.. 其實我的資料庫並沒有及格
哈哈哈哈哈哈

2 comments:

[毛] MAO Wu said...

今天閒閒沒事來看你的文章,看到這篇給我很大的感觸,我以前念資工時也有個博士班學長,負責教我們的邏輯設計,結果因為某堂實習課時,大家太吵,沒聽清楚哪調線路要接到哪,又重問了一次,結果就被他批的不是人,當場跟他翻臉,期末33被當,造成我打死不走硬體,雖然結果現在都在摸硬體,個人覺得當指導者的眼界真的對學生的影響很大,CS的積習真到造成很多人失去對學習的信心。

Wingly Shih said...

工程界的一個大缺點,就是根深蒂固的上下關係
權威就是權威,不容挑戰
不但扼殺了很多人發表不同想法的機會
也因此抹收了很多很多的創意