自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

設(shè)計(jì)模式已經(jīng)隕落了?

開(kāi)發(fā) 后端
你現(xiàn)在是坐在一個(gè)程序員旁邊嗎?如果是的話,那么在你讀下面的段落之前,有一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。讓他們到一邊去,問(wèn)問(wèn)他們兩個(gè)問(wèn)題并記錄下答案。

 

你現(xiàn)在是坐在一個(gè)程序員旁邊嗎?如果是的話,那么在你讀下面的段落之前,有一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。讓他們到一邊去,問(wèn)問(wèn)他們兩個(gè)問(wèn)題并記錄下答案。首先問(wèn)他們“什么是設(shè)計(jì)模式?”然后再問(wèn)“說(shuō)出你能回憶的設(shè)計(jì)模式的名字。”確保你是在一對(duì)一的情況下問(wèn)的,否則在一個(gè)房間的其他程序員會(huì)插話。如果你是個(gè)程序員,在閱讀下面的段落之前先寫下你的答案吧。

設(shè)計(jì)模式是用來(lái)解決軟件開(kāi)發(fā)中重復(fù)出現(xiàn)的問(wèn)題,久經(jīng)考驗(yàn)的方法。當(dāng)程序員遇到反復(fù)出現(xiàn)的問(wèn)題時(shí),他們通過(guò)應(yīng)用合適的設(shè)計(jì)模式來(lái)解決問(wèn)題。設(shè)計(jì)模式是由最聰明的電腦科學(xué)家設(shè)計(jì)出來(lái)的,歷經(jīng)了時(shí)間的考驗(yàn),它們被認(rèn)為是好的方法。使用設(shè)計(jì)模式,程序員不需要自己想方法去解決所有的編程難題,他們可以使用設(shè)計(jì)模式。設(shè)計(jì)模式節(jié)約開(kāi)發(fā)時(shí)間,能開(kāi)發(fā)出更靈活,可靠和健壯的軟件。設(shè)計(jì)模式重用了概念的想法,解決方法的設(shè)計(jì)理念,考慮了他人的使用。它是非常棒的想法,讓許多事情更合理了。

但事實(shí)是:設(shè)計(jì)模式已經(jīng)(幾乎)隕落了。

設(shè)計(jì)模式應(yīng)用的成功的先決條件是程序員在遇到重復(fù)出現(xiàn)的問(wèn)題時(shí)能夠意識(shí)到它們的存在。但如果程序員不能意識(shí)到問(wèn)題的存在,他們將不會(huì)知道已經(jīng)有人解決過(guò)類似的問(wèn)題了,也不會(huì)知道還有設(shè)計(jì)模式的存在。他們不是應(yīng)用設(shè)計(jì)模式來(lái)解決這些普遍存在的問(wèn)題,而是閉門造車,用自己的方法來(lái)解決問(wèn)題。他們花了更多的時(shí)間卻寫出可靠性差的代碼。

設(shè)計(jì)模式的隕落是因?yàn)榇蟛糠殖绦騿T不足夠了解它們,要解決問(wèn)題時(shí)不能意識(shí)那些重復(fù)出現(xiàn)的問(wèn)題的存在。如果他們不能意識(shí)到問(wèn)題,他們就不能用設(shè)計(jì)模式來(lái)解決問(wèn)題。

在面試中我要求過(guò)幾千個(gè)程序員解釋設(shè)計(jì)模式背后的概念,讓他們寫下每個(gè)他們能夠回憶起的設(shè)計(jì)模式的名字。但相當(dāng)多的程序員根本就不知道什么是設(shè)計(jì)模式,或者他們的相關(guān)知識(shí)太薄弱,以致于就算碰到問(wèn)題時(shí),他們的知識(shí)也不夠處理這些問(wèn)題。很少的程序員可以說(shuō)出他們對(duì)設(shè)計(jì)模式的理解。非常少的人知道多于四五種。更少的人可以描述出設(shè)計(jì)模式能夠解決的問(wèn)題。這意味著大多數(shù)程序員在日常工作中遇到一些普遍的問(wèn)題時(shí),他們會(huì)用自己的方法去解決,而不是采用很普遍的解決方法(設(shè)計(jì)模式)。

不了解設(shè)計(jì)模式的程序員們當(dāng)讀到用設(shè)計(jì)模式開(kāi)發(fā)的代碼時(shí)會(huì)感到迷惑。他們不能夠理解其他程序員為什么要用這種方法來(lái)解決問(wèn)題。他們面對(duì)這樣一些非常普遍的問(wèn)題時(shí)或者遇見(jiàn)設(shè)計(jì)模式的代碼時(shí),顯得笨手笨腳。

設(shè)計(jì)模式也是一種通用語(yǔ)——一種程序員皆知的語(yǔ)言,可以用術(shù)語(yǔ)來(lái)闡述復(fù)雜的問(wèn)題,便于讓其他人明白。但設(shè)計(jì)模式已經(jīng)隕落了;你不能用一種你不懂的語(yǔ)言來(lái)交流,大部分程序員都不能作為一種概念來(lái)使用它們。設(shè)計(jì)模式是一種很少人會(huì)說(shuō)的通用語(yǔ)。

但設(shè)計(jì)模式還沒(méi)有完全衰退,許多聰明的程序員仍然知道它們,使用它們。這些人是個(gè)例外。正是他們努力推廣的結(jié)果,才能讓MVC這個(gè)設(shè)計(jì)模式讓所有程序員都熟知,就算是對(duì)設(shè)計(jì)模式知之甚少的人都熟知。

設(shè)計(jì)模式已經(jīng)衰退了是因?yàn)榇蟛糠殖绦騿T沒(méi)有意識(shí)到它在計(jì)算機(jī)科學(xué)中的重要性。許多雇主會(huì)考察應(yīng)聘者對(duì)設(shè)計(jì)模式知識(shí)的理解。如果你是一個(gè)專業(yè)的程序員,你應(yīng)該對(duì)設(shè)計(jì)模式有深入的理解。你應(yīng)該記住設(shè)計(jì)模式能夠處理的問(wèn)題,這樣你碰到它們時(shí),你能快速識(shí)別出它們。沒(méi)有理由找捷徑,也不能對(duì)它只一知半解。去成為一個(gè)設(shè)計(jì)模式方面的專家吧——努力學(xué)習(xí),成為真正的專家。我們需要更多的程序員成為設(shè)計(jì)模式方面的專家。如果有了足夠的專家,可能有一天我們可以說(shuō)設(shè)計(jì)模式是一個(gè)成功。

原文鏈接: supercoders   翻譯: 伯樂(lè)在線 - 唐小娟

譯文鏈接: http://blog.jobbole.com/21578/

責(zé)任編輯:林師授 來(lái)源: 伯樂(lè)在線
相關(guān)推薦

2022-10-30 17:32:25

設(shè)計(jì)模式單例模式

2021-02-01 10:01:58

設(shè)計(jì)模式 Java單例模式

2022-12-27 08:01:09

設(shè)計(jì)模式https://mp

2022-09-26 08:09:11

DBA硬件Oracle

2023-11-02 21:11:11

JavaScript設(shè)計(jì)模式

2021-05-25 14:10:34

AI 數(shù)據(jù)人工智能

2021-02-15 22:07:18

項(xiàng)目策略模式

2024-10-10 09:52:14

2024-12-09 06:00:00

單例模式代碼

2021-07-02 21:49:47

黑客惡意軟件網(wǎng)絡(luò)攻擊

2009-12-24 14:37:46

2022-11-02 09:00:02

編程語(yǔ)言拓荒者

2012-05-08 16:07:38

Android

2013-11-26 16:09:34

Android設(shè)計(jì)模式

2020-08-21 07:23:50

工廠模式設(shè)計(jì)

2020-10-23 09:40:26

設(shè)計(jì)模式

2020-11-03 13:05:18

命令模式

2020-11-04 08:54:54

狀態(tài)模式

2023-04-10 09:20:13

設(shè)計(jì)模式訪客模式

2022-01-12 13:33:25

工廠模式設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)