Saint said:
Dear, What’s your best program framework ?
—-
Ellery said:
I have no framework in VFP~
大多只是一些小技巧以及函數罷了
你這樣問,有點不知道該怎麼回答你
你想要知道什麼呢??
—-
Saint said:
不一定是VFP
我是說,你沒有想過,有關於framework這樣的事嗎?
從我把資料給物件化時,我就很想要做一個可以自動產生程式的一個framework
到了這裏,又做了menu object 之 後,這一個想法,一直在心中盤算!
所以我想要做一個是my style object framework ,You know ?
可是當我要去做時,發現並不簡單!所以想要聽聽看你的看法!
—-
Ellery said:
有想過~
但真的不簡單
1.需要對該語言的特性作深入的了解
2.需要對物件導向的各種 pattern 有相當的認識,才能作出簡潔而又漂亮的設計
其實也不一定要有相當的認識,但也要有看過大量的Framework
另外,人都會有野心,會想要弄出跨平台,甚至跨語言的一個東西
這樣子的領域就又更龐大了
當我越想越多的時候,就越覺得龐大,越覺得不能馬上動手
所以一直沒有作
跨平台的東西, Borland Kylix and Delphi,Qt 和 Java 是著名的代表
Borland 的產品 CLX
Qt 是 linux 上著名的桌面管理 KDE 的底層,以C++撰寫,但寫出的東西,一樣能在Windows上compile
Java 則更誇張,compile 一次之後, run everywhere,只要檔案複製過去,然後執行環境的Java Virutal Machine有支援,就一切ok
跨語言的東西,COM, CORBA, 以及 beta版的 .Net 應該算是代表
COM, 衍生出 DCOM, COM+
CORBA, 則是 Unix 以及 Unix like 環境下,類似COM的東西,但其實CORBA出來的較早
這個標準實作的比較漂亮且完整,只是支援的語言不多,目前我知道的只有 Java, C++, Object Pascal 而已, Windows 平台上較不常見
.Net 是微軟的一個弘願,Linux上也有了相關的計劃,將來是可以期望的一個東西
說了那麼多,我的最後結論其實是
Framework仍然要作,但是不要像我一樣考慮那麼多,考慮的太多,反而讓自己無法前進
應該依照目前想實作的狀況,一族一族的去實作出來
比如說,現在要作 menu, 就先把 menu 類別及其衍伸類別實作出來
要作檔案,就把檔案類別及其衍生類別實作出來
一個一個去實作
將來如果需要合作的時候,再去參考 Design Pattern 中與合作相關的Pattern去實作
不行,再重寫
但是什麼都要自己寫嗎??
不, 如果現成語言裡已經提供了現成的一個類別, 那麼就直接使用
有跨平台或跨語言的需要,就寫一個wrapper類別把他包起來,將來若跨平台或語言的時候,只要重新實作這個wrapper就可以了
喔~~
回頭看了一下,我居然打了這麼多字
謝謝你的收看
^_^
—-
Saint said:
我倒是沒有想到過說要跨平台這一個問題!
不過我的想法,也倒如你所說的一樣!想的越多,我越難下手去做,
不是沒有想過說,先做一個起來,以後再用合併的方式來做
可是是否會有一個問題,就是所以的物件的起源,我是說如果這樣做的話
我會有一個base object 那有可能我所有的物件都會去參考這一個當做base
想著想著,有時想到如果程式要做,如果只是自己才看的懂那又矢去了意義!
想的越多越難做!
—-
Ellery said:
單一繼承的關係比較簡單,而且效率會較好
八月的時候,我看了侯捷翻譯的”深度探索C++物件模型”
雖然只看到第五章,就因為借書期限到的關係,只好還書
不過有作筆記(這是我第一次看書作筆記!)
對於物件導向實際上的運作了解很多
所以,我想還是建立一個 Base Object
但盡量只賦予必要的特性就可以了
也就是雖然此族的衍生類別都從一個父類別開始繼承,但此父類別必定繼承 Base Object
若真需要增加屬性或方法,只更動此父類別就可以,而不更動父類別
其實對於VFP來說,此動作並不是必要
因為VFP並不是強型別的語言也沒有支援虛擬
所以就不能這樣寫(以下是C++語法)
BaseObject *obj; //宣告成指標
Menu mymenu; //產生一個 mymenu物件,假設 menu繼承 BaseObject
Form myform; //產生一個 myform 物件, 假設 form 繼承 BaseObject
obj=&mymenu; //取得mymenu的位址,指定給obj
obj->activate(); //就可以直接呼叫 menu 的方法
obj=&myform; //取得myform的位址,指定給obj
obj->show(); //就可以直接呼叫 form 的方法
很神奇不是嗎?? 如果你用過強型別的語言
對這種神奇的感覺會很強烈
因為類別不同是不可以隨便指定的!換言之也不能隨意呼叫其他類別的方法
Java, Object Pascal 也都有類似的用法
VFP和VB 所有的變數都是 Variant, 這樣的感覺就不是很強烈
反正怎麼寫怎麼適用
local obj
obj=createobject(“menu”)
obj.activate()
obj=createobject(“form”)
obj.show()
但我就不清楚VFP內部是怎麼去實作的
說到程式看不看的懂
又牽扯到寫作風格的問題
我以前很痛恨這種寫作風格的問題
尤其是學校導師(後來老師因為肝的問題,英年早逝了,很遺憾沒去醫院看他最後一面)教我們COBOL的時候, 他一直不厭其煩的要求我們要這樣子去寫 COBOL 程式
那時候覺得如果強制要求寫作的風格,會很麻煩,而且排版的很累,寫出來的程式碼也會不簡潔,不漂亮
但是後來看過”撰寫0錯誤程式”這本書以及經過歷練之後就不會這樣想了
現在會盡量要求自己留下註解, 使用較清楚的方法去寫程式
假設前兩天寫出這樣的程式
if getanswer()
*do something
else
*do something
end if
隔兩天,我一定忘記我在寫什麼,於是又要去看 getanswer() 在寫什麼,浪費了許多時間
我會盡量這樣寫
*利用 getanswer() 函數詢問使用者的答案, true 表示使用者回答 yes
if getanswer()==true
*do something
else
*do something
end if
這樣至少我自己看程式會知道我之前要幹麼
哇~又打了這麼多
8-p
少林足球
8/25 中國情人節.
我一直很喜歡周星馳,他的每部片我幾乎都看過.即使都看過了,現在在播放時,我還是會笑出聲 ^_^. 我最喜歡他拍的”東西遊記”,非常之特出!
他睽違了兩年推出新片,當然,我很想去看.原本想,去看這樣的一個港片,到底值不值得?(應該很多人都會這麼想吧)
趁著情人節下午的空檔,說服了女友,和她去長春戲院看了這部片,長春戲院播放的是粵語版,換言之就是原音重現.之前,我有聽說食神粵語版的那首歌”情與義,值千金…”非常之好聽,很可惜後來看的都是國語版,所以都沒聽到,引以為憾.這次總算能看到粵語版,真是太高興了!
這部片非常之棒,讓我和女友從頭笑到尾,看完之後,覺得我們沒有浪費錢 ^_^
不過,我覺得結尾與魔鬼隊決戰的部分可以拍的更好些,不要太多特效,應該可以加上六師弟吃蛋的笑料,足球小將翼裡面的雙人射門,或是主角頹喪重新站起等等之類的情節.
大家趕快去看吧,港片通常很快就下檔囉!! ^_^
Artificial Intelligence
8/18 和女友一起去看 AI。之前在看預告的時候,原本以為會是一部具有相當衝突性的影片,沒想到,卻不是。我個人覺得,這部片應該算是類似童話故事的影片,有點悶,但卻很有省思的意味。
我想人類真能發展出極為類似真人的人工智慧而不加任何限制嗎??如果沒有限制,是不是會像 The Matrix 裡的機器人一樣,加害於人類,甚至利用人類??喔~~想起來就覺得可怕。
另外導演在最後加上溫馨的結局,雖然達到溫馨的效果,但卻顯得牽強。我認為應該在David發現無法完成心願的時候,讓他擁有仇恨的意識,在經過一段時間的潛伏後,利用博士的技術與知識轉換身體,引領機器人在人類世界裡革命,這樣的一個安排或許會更好!
看完之後,讓女友和我兩人覺得有點失望。Anyway,怕悶的人千萬別去看~
CODERED(C)紀實
上週
我發現Windows2000怪怪的
我習慣設定將網路連線的燈號顯示在工作列上,可他怎麼老是一直閃呢?
這實在很奇怪,我又沒有發信或者是去逛網頁.
接著,因為疑心的關係,覺得電腦上的所有軟體都變的奇怪;於是星期天,我就大刀闊斧的重灌,花了不少的時間(因為不太會用ghost,也懶得用,所以重灌會花許多時間).
重灌之後,是好多了,但IIS老是沒辦法啟動,或者啟動後沒多久,就又停止.網路連線的燈,偶爾會一直閃,粉奇怪.
奇怪的事情,必然有原因,我開始調查,正巧最近的電子報上一直提到”紅色警戒”肆虐,原本以為他只感染 Windows 2000英文版,想不到,CODERED的變種C,居然會感染Windows2000中文版,怪怪了不得,趕緊去微軟網站 download 修正程式來安裝,安裝之後,果然一切怪怪的情況減少了很多.
唉唉~~這樣子的一個專門攻擊IIS的病毒,日後對於目前網路上所推廣的 Web Service 必然有所影響.也許以後病毒都會對網頁伺服器下手了吧,屆時,影響的層面將會變的很大很大…..
偏執
年紀越來越大了,雖然並不很大,才二十來歲,但是,我覺得我的心越來越偏執,不再和早前一樣心胸開闊,不會因為某些沒道理的理由而對某些人或某些事情有錯誤的看法.
這很可怕,會影響自己對週遭人事物的判斷.
我應該要
多認識一些人
多走走
多觀察
而不要
任意下判斷而否決一個人或一件事
呵~
在我 icq 的Info(個人簡介)裡面,我放了這樣的一句偈語
由愛故生憂
由愛故生怖
若離于愛者
無憂亦無怖
這裡的”愛”,其實也可以解釋為偏執啊!
電話
前前一篇有提到我和我女友的一些事情,我仍然在想這個問題.
我們天天通電話,但他常聽不清楚我說的話,於是我又得被迫再說一次,如果又不清楚,我又得再說一次,一次又一次,會覺得心煩,慢慢會變的大聲.
她也知道這點,也告訴過我,
“就是聽不清楚啊~電話有雜音~”
“你說話太小聲了~~”
“你說話太快了~~”
“不懂你的詞彙~”
也許是電話的問題~
也許是我個人說話的問題~
也許是我們兩人國文程度有落差的問題~
雖然不曾因此而吵過架,但這卻是我必須要先適應的一點.婚前的交往並非沉醉在愛情之中,我認為也必須為婚後作一些心理準備,以提早適應.
所以,我告訴我自己.當發生這種情況的時候,我要說慢一點,大聲一點,運用一些她容易瞭解的詞彙,來說明.順道培養我的耐心.
不過
還是想抱怨一下~~~
真希望她”聽”和”說”的能力和她”閱讀”的能力一樣好~~