javascript
【译】《学习JavaScript设计模式》(二)
原書鏈接Learning JavaScript Design Patterns
水平有限很多地方不通順,錯翻漏翻歡迎交流。
模式測試,原生模式&約法三章
記住并不是所有的算法啊,最佳實踐啊,解決方案啊什么的都可以被稱為一個完整的模式的。很可能它就缺了點什么,而社區里的那些家伙就喜歡揪著這小辮子不放,直到它經過千錘百煉出關。即使一個模式已經滿足了所有模式標準,還需要經過時不時的合適的測試審查的調教才能成長為一個真正的男人,哦不,模式。
回頭看看Alexander說過的,一個模式既是一個過程,也是一個完整的事物。
學習模式設計的過程中,我們遇到"原生模式"這玩意兒也不是啥大驚小怪的事。這是個啥?Well,一個還沒通過模式測試畢業考試的模式通常就叫原生模式。原生模式的主人把它造出來之后拿到社區里讓大家一起玩兒,但是由于年紀太小了,還沒被從里到外翻云覆雨地玩。
或者把原生模式生下來的人對這一系列的測試根本沒啥興趣,給脖子上掛個出生證明就讓它自生自滅去了。我們通常把這個出生證明叫做"patlets"。
也不怪他們,給這些模式寫個完整的文檔確實讓人萌生退意。回頭看看早期的一些工作,滿足下列條件的模式才能成為好的模式:
解決了一個特定的問題: 我寫了一個模式出來,一歲出頭鵝蛋臉眉眼帶笑鼻子挺直嘴角上揚唇紅齒白,可她只能看啥事都做不了有啥用啊。能做事兒,這是一個好的模式最關鍵的特征。
高手都是會隱藏的: 我們知道解決問題的技術通常都是從一些出名的基本原理衍生出來的。最好的設計模式通常不直接給出問題的答案,這被人認為是解決困難問題的必要步驟。高手嘛,教的都不是形,而是意。
給出的概念一定要是被證實過的: 設計模式要給他們的功能提供專業鑒定書,沒有專業鑒定書的都是野路子上不了臺面。只有勇士和走投無路的人才敢用那些沒來歷的野生模式。
必須闡釋清楚代碼關系: 有些情況下,模式只是解釋了一些模塊。很多已經成型的模式可能也只是吊樣,但是官方定義的模式必須闡釋更底層的系統關系結構并解釋清楚代碼之間的關系。
看到這兒你或許覺得自己不去學習那些不太規則的原生模式沒什么關系吧。可不是這樣。很多原生模式也是依壁雕鑿,當然不是說所有的原生模式都樣兒,但是肯定有不少很好的原生模式,使用我上面告訴你的方法來自行判斷吧。
為了保持模式的可重用性,我們要約法三章,并將三規則核心價值觀時刻牢記心中(別問我這仨有啥區別,核心價值觀記住就行了):
對目標的可用性: 模式是怎么被認為是成功的?
有用性: 為什么這個模式被認為是成功的?
適用性: 這是一個因為有廣泛適用性所以能成為一個模式的設計嗎?如果是,好好寫文檔吧。重寫或者定義模式的時候,記住上面三點是非常重要的。
總結
以上是生活随笔為你收集整理的【译】《学习JavaScript设计模式》(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到做棉鞋是什么意思
- 下一篇: CentOS7.0 安装 tomcat-