跳到主要內容

The Design of Design˙DSLs in Action

image dsl

很高興的是,今年一開始就看到這兩本書;難過的是,這兩本書都很硬。

“The Design of Design”這本的原文看的是很辛苦,希望有中文版早點出來,不然可能要看到第二季,阿彌陀佛。

The Design of Design: Essays from a Computer Scientist《人月神話》作者Frederick P. Brooks,2010的新作,我竟然今年才知道。

這本書難讀的理由是:它是本哲學書啊~

雖然有從設計哲學講到設計實踐,從設計過程到設計靈感,既強調了設計思想的重要性,又對溝通的細節做了細緻的描述,以及因地制宜做出妥協的具體準則等。

但就是在講設計的本質,哲學的目的在於,探索事物之本質,所以說這本書很硬,但也因此讓我收益良多。

牛津辭典對Design作的定義:
To form a plan or scheme of, to arrange or conceive in the mind . . .for later execution.
(對...去形成一計畫或方案,運用智力去整理或考量...,以便於後續的執行)

重點會在plan, in the mind, and later execution。

依作家Dorothy Sayers的說法,創作的階段可分為:
1. The formulation of the conceptual constructs
2. Implementation in real media
3. Interactivity with users in real uses

良好的設計具有概念上的完整性:unity, economy,clarity.

但真實在團隊的溝通上,要達到概念的統一是一種目標,而且需要透過大量的對話才能達到。
這點必須不厭其煩地講解、上課、review,才有可能讓這設計的概念,在專案中逐漸的內化。

這讓我感到挫折,專案或公司裡的 Architect / SA / SD / QA,需要花多少的時間,才能讓成員的概念一致化?
(那麼,文件與對話的比例又要做多少的調整?)

接著講到工程師是如何進行思考的。
使用合理的模型這件事。

模型必須包含:
Goal / Desiderata / Utility Function / Constraints / Resource Allocations, Budgets, and Crucial Budgets / Design Trees。

這讓我重新思考了 Constraints/ Design Trees 在專案中的實作問題。

問題在於Constraints是有可能在專案中,隨著user自己在被訪談過程中,對系統的逐漸熟悉,因此對Constraints開始有了修改。
(但在requirement modeling過程中,我們很容易假設Constraints是不變的,而這假設會造成更多設計時的浪費。)

我們都是圍繞著Constraints來做設計的,這樣會影響到Design Trees的路徑。

也就是說,在實戰的過程中,我們必須認知到,Design Trees上的節點,實際上不是最後設計的決策,而只是設計的暫定方案

如此一來,就要牽扯到開發流程上的問題。

以winston Royce的7步模型:
SYSTEM REQUIREMENTS -> SOFTWARE REQUIREMENTS -> SYSTEM DESIGN -> PROGRAM DESIGN -> CODING,UNIT TEST -> INTEGRATION,SYSTEM TEST -> OPERATION , MAINTENANCE

這是理想的開發流程模型,但考慮到上述的兩點問題(Constraints/ Design Trees),加上Resource的配置,就會發現這樣的模型是不可行的。

這也是會什麼近年來會開始流行Agile的開發模型,這樣才能面對不斷的變化。

......邊讀邊思考,問題不斷地冒出,這本真的會要看很久。


接著來說DSLs in action這本。 (唔,也是有點硬!)

 

去年讀了"DSLs in Boo: Domain Specific Languages in .NET"與"Domain-Specific Development with Visual Studio DSL Tools"這兩本。

說真的,無論是實作還是設計上,困惑還是不少。

不過"DSLs in action"這本減輕了我的不少困惑。

從DSL 的實作,External DSLs / Internal DSLs的使用考量上思考,書中主要是使用 Groovy + Java 為主(Internal DSLs的使用),不過也參雜著 Ruby與Scala的範例。

dsl1Internal DSLs

dsl2External DSLs

這是本很好的實踐書,不過,前提是對 Groovy要很熟,還有mix上概念的要很懂,說實在,不是很好K。

image當然,也可以先去看看"Groovy for Domain-Specific Languages",這本簡單一些,可以兩本交雜著看;只是這本的 sample 是跟 twitter互通的,但是 sample跑不起來 (不知是不是twitter的基本認證模式有改?),光讀code還是有些許困難。

至於Marin Fowler大師寫的"Domain-Specific Languages",……,看來要再過幾個月了。


讀這些讀的吃力,是因為挑戰越來越高的緣故嗎?還是我太弱?

不論是哪種原因,都是一種痛苦的快樂;IT界就是因為有看不完的書,是我當初選擇進入IT的緣故啊。

留言

這個網誌中的熱門文章

GLOOMY BEAR 暴力熊

Gloomy Bear身世背景: Gloomy是一隻在路邊被遺棄的粉紅色小熊 , 被小朋友Pity發現,並將牠帶回家中收養, 並為小熊取名為Gloomy。 可惜.....Gloomy外表可愛,但因為被拋棄的緣故~卻有著一般熊的暴力性格, 長大長出爪子後就時常向主人用暴力招數打招呼, 而Pity就慘被Gloomy日日夜夜地欺負!悲慘ㄉ人生就這樣子開始囉!! 暴力熊喜好~咬主人頭, 而牠的主人,復原能力極高...打不死喔~厲害厲害! 暴力熊顏色:粉紅色,金色,銀色,紅色,藍色,黃色,還有罕見的綠色與混色。 粉紅色暴力熊性別:女 頭大身細,眼珠黑色,爪白色兼尖利,具有殺傷力,她多數用口爪殺人,殺完人後喜歡在街上徘徊。 小主人每次都被暴力熊揍得半死兼頭破血流, 但仍然不離不棄地緊緊抱住這隻血腥的寵物; Pity就算受到傷害亦要讓開心的回憶遮掩,然後繼續微笑期待小熊再次跟他一起溫習/做功課/看書;相信等待他的會是小熊的溫柔而非暴力傷害; 暴力熊和他小主人之間微妙的情感讓人感動又心酸; 這次轉輪科技所推出的暴力熊,內容包含小男孩Pity與粉紅熊Gloomy兩支一組。造形上善用Gloomy胖胖的軀體,將轉輪關節隱藏其中,全身有14處可動。可替換配件包含小男孩被打的表情,還有防止熊熊咬人的口罩以及牠嘴角流下來的血,原型制作為山口勝久。

明天是晴天嗎(明日晴れるかな)

因為最近的日劇:求婚大作戰,才聽到這首歌的。 桑田佳祐的"明日晴れるかな"。 歌詞的內容跟劇情還蠻貼切,求婚大作戰就劇情而言不是頂好的,但題材相當有趣,令人反省的地方也頗多。 很多時候很多事,如果再來一次,我們會怎麼選擇怎麼做? 這MV不同於日劇的片尾MV: 中文歌詞如下: 明天是晴天嗎 作詞:桑田佳祐  作曲:桑田佳祐  編曲:桑田佳祐 島健 炙熱的淚呼喚著愛 曾經閃爍的歲月 也迷失了方向 明天我依舊徘徊在街頭 沒有回頭路可走 側耳傾聽 心靈深處是什麼在私語 獨自躲在昏暗的街頭 回首當日的天空  上帝賜予我們孤獨與試煉 想哭就要放聲大哭 難道是命中注定 叫人不敢面對 日覆一日 不可思議 Oh baby No maybe 愛已走遠 情已不再 我只能佯裝嘆息 將怨恨拋給這世界 Oh baby you are maybe 憂喜交織 幸福的feeling 抱緊我 one more time 珍惜曾經的我 讓回憶刻骨銘心 往事已經隨風 人生路還漫長 只為見證夢想 誰來開啟奇跡之扉? 多想再一次觸碰你的笑顏 不知你是否發現命運的鑰匙 就握在你手中 Why baby? Oh tell me 愛恨纏綿 假裝視而不見 只為能守護在愛人身邊 Oh baby you are maybe 距離勝負僅一步之遙 站在崩潰邊緣的feeling 我想穿越 one more chance I talk to myself Oh baby No maybe 愛已走遠 情已不再 輕輕的嘆息背後 只留下深深的悔恨 Oh baby Smile baby 生命轉瞬即逝 每個人都在心中默默祈禱 明天是晴天嗎 在那遙遠的天空下 這些是有趣的文章: 釋日劇《求婚大作戰》中的「哈利路亞」 劇情解釋

The Nightmare before Christmas 聖誕夜驚魂

這部片是29 October 1993上映的,我是到2000年時,因為在卡通公司上班,同事借我VCD看之後,才了解" 聖誕夜驚魂 "的魅力所在。 在這之前,每每看到這奇怪骷髏頭的相關產品,總覺得怪怪的,這東西怎麼會有人喜歡。 隔很久的後來,自己也是跑去找了片DVD買回去,因為jack的魅力真的是太黯然太銷魂了。 當然,之後的"提姆波頓之地獄新娘"(Tim Burton's Corpse Bride)也沒忘記收藏。 不過這裡不寫故事內容啦!有興趣的google一下就會找到不少相關資料。 製作人提姆波頓Tim Burton,早在81年於迪士尼公司擔任動畫製作時,即開始策劃本片。全片在佔地4000平方呎的攝影棚內拍攝,動員超過120位動畫人員、藝術家、攝影師及技術人員,場景便有20個之多,耗時兩年才完成。 為了維持整部長片的一致水準,製片聘請了艾瑞克主格坦等14位偶動畫權威來指導技術人員。由於製作技術難度高,即使在一流人員的高效率工作下,60秒的鏡頭亦平均需耗費一週的工作天。在人物聲音的表現方面,則聘請喜劇明星凱瑟琳奧哈拉、威廉希金等人助陣。 這部片已經重看過3次了,每次看都還是會很感動,大師作品就是這樣,隔多久,看幾次,都還是會喚起所謂的感動粒子這樣的情緒。 這次剛好又收集到"聖誕夜驚魂"新的場景組(4組),嘿嘿,當然不能放過囉! 我喜歡傑克邪惡的表情,特別有張力。 動感十足的傑克。 除了新的四組,也順便拍了些舊版的場景組,有興趣的到我 flickr 相簿看。