如何評價王垠最新文章,《DRY原則的危害》

時間 2021-05-30 20:59:36

1樓:

[DRY原則的誤區](https://www.

yinwang.org/blog-cn/201

5/06/14/dry-principle

)他這篇文章所提出的問題確實存在:大家在了解一些程式設計原則後會出現濫用的情況,尤其是剛開始學習的時候,因為沒有仔細的去辨別各種程式設計原則的具體應用場景和背後的思想,就容易出現為了DRY而DRY,為了抽象而抽象,造成過早或者過度優化,從而過猶不及。這也是他在文章中的幾個標題所提到的:

抽象與可讀性的矛盾

抽象的時機問題

謹慎的對待所謂原則

但是在最後的內容裡,他提到了DRY該不該存在,該不該去在乎,甚至提出DRY原則的人有沒有資格來提,這其實就帶有很強烈的個人色彩了,容易引起大家的爭論。

[Goodbye, Clean Code — Overreacted](Goodbye, Clean Code)

[The Wrong Abstraction — Sandi Metz](The Wrong Abstraction — Sandi Metz)

[Redundancy vs dependencies: which is worse?](Redundancy vs dependencies:

which is worse?)

[重新認識 DRY 原則 · Issue #152 · lifesinger/blog](https://

2樓:韋易笑

顯然,王垠並不是反對抽象,他自己都說他做很多抽象工作,為啥很多人都往 「王垠反對任何抽象」 這個角度去理解了?他所反對的是目前技術人員只知道抽象的好處而絲毫沒意識到他的壞處。學校裡教的,書本上說的,很多大牛倡導的,到處是抽象。

然而世界不是乙個 DRY可以描述的,物理學都沒有找到統一的理論來描述自然,軟體業何能單純的認為 DRY 就是一顆銀彈呢?

他說的主要是這個角度而已,我在另乙個答案裡面同樣也說過過度抽象的問題:

什麼時候用C而不用C++? - 韋易笑的回答

從這點上來看,認識是一致的。另, @馮東 答案裡面的文章寫的不錯,建議看看:

不要乙個觀點和自己的習慣常識相違背就要跳出來反駁,多接觸下不同的東西,沒壞處。

----

3樓:仇偉佳

整篇文章除去那些比較極端的想法還是有可取之處,比如「等待」,等待抽象時機。

私以為,對於各種原則,還是要具體問題具體分析,文章中也有這層意思。文章的標題已經把DRY原則直接給斃了,後半段開始噴DRY的提出者,有些偏了。但我覺得大家在看文章時可以把這些極端的觀點過濾掉,關注有用的東西。

4樓:jeff wong

王垠說得很有道理。消除重複只是軟體開發的一種效果,並不是終極目標。在功能,效能,安全,運維等方面都滿足的情況下,如果有重複,但面對變化更加靈活更加游刃有餘,寧可有重複。

要我說,只要有多型,堅持開閉原則,有歷史系統,消滅重複是不可能的。而且就算消除了重複,在變化劇烈的系統中,可維護性也不一定好,更別提可擴充套件性,誰寫誰知道。

5樓:品雪

為了點浮名,連這個也要噴,而且基本是為了噴而噴,真是夠拼的。

現實生活裡用 A B C 命名會被人噴死的,好歹用個foo/bar吧。因為有這種不良習慣,抽取出去的實體或邏輯不能通過名字理解意義,所以 DRY 「自然」會加重記憶負擔而變得有害了。

6樓:技術人成長

有人說他膚淺,深的東西可能懶得寫呢,我覺得跟他有過接觸的人做出的評價才比較靠譜,寫文章有時候就是簡單舉例拋磚引玉一下,還有人以為他不怎麼懂設計模式,然而他做的事情你可能根本做不了。

7樓:boydc

但是談評價,應該既談缺點也談優點。

1. 抽象和可讀性的矛盾

2. 抽象的時機

3. 謹慎的對待所謂原則

我覺得我有過:

1. 為了把乙個問題套用到乙個設計模式裡面想很久,最後我覺得非常clean,別人看不太懂

2. 過早定義了很多抽象類,介面,使用者抱怨不好用(不管使用者水平如何)3. 曾經崇拜一些權威,一些Unix大牛,喜歡拜讀一些有觀點的文章,喜歡推崇一些略為絕對的原則

做程式設計師的都可以考慮一下自己有沒有類似的情況,以之為戒。吐槽誰不會,什麼文章考過GRE的人上來就可以隨便找出幾個邏輯漏洞。

8樓:

顯然王垠對於DRY的原則理解的膚淺,repeat的定義完全由設計者對需求的理解深刻程度和抽象程度而定,而不是機械的看到同名變數就抽象。實際上他是重新畫了個靶子再射箭。

9樓:

我覺得這篇文章的邏輯有點文不對題,標題是DRY原則的危害,但內容卻在談C++的過度抽象,實際上在DRY原則完全適用C語言等函式式程式設計,而DRY原則解決的是乙個效率問題。

但是在C++中,類的過度抽象往往並不是出於效率考慮,而是對物件導向思想的濫用,新手覺得自己既然學習了物件導向程式設計,那麼就應該用這種思想去解決一切問題,這和DRY原則沒關係。

那麼如何防止過度抽象呢?以我的經驗來說,除非你是寫乙個系統級的東西,這個系統就像乙個世界,裡面所有東西的性質呈樹狀組合,而你的抽象恰好都描述了這棵樹,那麼你的抽象就是合理的,反之,要麼你多度了,要麼就是根本沒有必要使用類這種思想,適當的封裝成函式就可以解決問題,不僅更有效率,也更容易理解。

10樓:xuli

其實沒什麼,大概意思就是無招勝有招;各種框架各種模式歸根到底都是為了解決問題,那麼時刻保持歸零思想去看待方法設計當然是很有必要。但對於大部分平凡的人,固化的知識也是很重要,雖然會導致一些問題,甚至一些深入骨頭的缺陷,但進步總得代價。

11樓:

客觀評價一下,此文寫的一般,舉的例子很簡陋,對「DRY」原則做了一點吹毛求疵般的挑剔,不足以證明「DRY」原則在巨集觀上是錯誤的。

=== 更新 ===

當然,對我而言,王垠說點啥總比啥也不說好。哈哈

如何評價王垠最新文章《關於離開美國的決定》?

曹神仙 都這麼多年了,還在談物件導向,函式式程式設計。12年的時候,因為看了他的文章 完全用linux工作 燃起了程式設計的興趣,這麼多年過去了,他在談的東西還是這些。對於有深刻思想的東西,他完全不屑,個人認為已逐漸淪為老憤青 看了好多回答,也讀了他的一些博文,感覺王先生可能有depression傾...

如何評價果殼最新文章《看CK的大碼模特不順眼嗎?誰管你,胖也可以自由地追求美》?

徐潘玉yiyi 自由追求美沒有錯,但這種廣告宣傳本身就是面向大眾的,如果不被消費者接受,廣告就失去了它的作用。而且肥胖的美是不健康的,本來就不應該贊成。和所謂美不美相比,健康才是最重要的。 真可怕 胖人可以拍廣告 胖人可以自信 胖人也當然有需求穿舒適的內衣 胖人不應當受到言語攻擊 胖人更可以追求美 ...

如何看待王垠的文章 《所謂「成功」》

sinfere 我看到了乙個高票評價的最後兩段話,忍不住說幾句 我說王垠要等到他自己死去,是因為他自己其實也很不幸地屬於他自己劃定的愚昧的人。他一方面不喜歡被別人打分,但另一方面又忍不住要用自己的價值尺度去衡量別人給別人打分。用自己的尺度評價其他人是很正常的,這簡直是乙個基本常識,包容不是不評價。他...