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

優(yōu)秀的程序員就像藝術(shù)家?

開發(fā) 后端
優(yōu)秀的代碼能不能算藝術(shù)品?軟件工藝這一理論是否有點(diǎn)矯枉過正?怎么樣才算是一名真正“優(yōu)秀”的程序員?

優(yōu)秀的代碼能不能算藝術(shù)品?軟件工藝這一理論是否有點(diǎn)矯枉過正?怎么樣才算是一名真正“優(yōu)秀”的程序員?

讓我們先從一個(gè)問題引入話題。假設(shè)你雇了一個(gè)水管工替換地下室里已經(jīng)老化的舊水管,在整個(gè)過程中,這家伙一個(gè)勁地給你灌輸這些水管是有多么多么的有藝術(shù)美感。

[[122928]]

“哇哦,看看這根管子彎曲的角度,它與墻壁對(duì)齊得是這么的漂亮!簡(jiǎn)直就是藝術(shù)品??!”你會(huì)怎么看這個(gè)水管工?

寫代碼也是如此。再也沒有比一個(gè)開發(fā)人員非要將他的代碼寫成藝術(shù)的模式更糟的了。上述比喻來自一篇廣受好評(píng)的文章《programming is not a craft》,其作者是Dan North,“Agile troublemaker”和BDD方法的創(chuàng)始人。

軟件藝術(shù)

該理論的作者是 Kevlin Henney、Bob Martin、Corey Haines和Glenn Vanderburg,以下就是軟件藝術(shù)的要領(lǐng)。

  • 不僅得能正常運(yùn)作,還應(yīng)該精心制作
  • 不僅可以應(yīng)對(duì)變化,還能穩(wěn)步增值
  • 有良好的個(gè)體交流,以及專業(yè)人士組成的社區(qū)
  • 和諧的客戶合作關(guān)系,富有成效的伙伴關(guān)系

而現(xiàn)在的問題是,很多軟件開發(fā)人員往往會(huì)因?yàn)樘^自大反而不能很好地完成軟件項(xiàng)目。因?yàn)樽源髸?huì)讓他們將軟件藝術(shù)捧得很高,North 說。Web服務(wù)和J2EE的項(xiàng)目就是這方面的例子,該項(xiàng)目的失敗有很大一部分歸咎于將軟件藝術(shù)放到了過于崇高的地位。

優(yōu)秀的程序員

你或許早就在一些小的IT項(xiàng)目中就領(lǐng)略過上述問題的存在了。如果有開發(fā)人員堅(jiān)持使用某種特定的美學(xué)技術(shù)而不愿意務(wù)實(shí)的話,那么我敢肯定他已經(jīng)被所謂的“軟件藝術(shù)”洗腦了。

好的代碼應(yīng)該是高效的代碼,而不是因?yàn)樗拿烙^。不管它是什么樣子,只要它可靠、高效就成。換言之就是不管黑貓白貓,能抓老鼠的就是好貓。也可以歸結(jié)為理解和實(shí)現(xiàn)簡(jiǎn)單流程的能力。

“一個(gè)經(jīng)驗(yàn)豐富的編程團(tuán)隊(duì)完全可以在很短的時(shí)間內(nèi)拿出驚人的業(yè)務(wù)成績(jī)。只有真正的專業(yè)人士和真正的軟件匠手才能在毫無頭緒一團(tuán)糟中,例如各種企業(yè)軟件,發(fā)現(xiàn)被拋棄的優(yōu)雅與樸素。”——Dan North

但可悲的是,即使是優(yōu)秀的程序員也經(jīng)常會(huì)忘記何謂優(yōu)秀軟件的核心功能——過分重視所謂的軟件藝術(shù)往往是罪魁禍?zhǔn)住?/p>

“軟件從業(yè)者——具有諷刺意味的是,尤其是一些優(yōu)秀人才——卻經(jīng)常會(huì)犯此錯(cuò)誤。他們愛上了軟件本身,然后覺得自己已經(jīng)化身成了軟件藝術(shù)工匠。”——Dan North

程序員的才華

全文這個(gè)辯論是基于一個(gè)問題展開的,這個(gè)問題就是:軟件工程是否是藝術(shù)形式的一種?

據(jù)說性能和效率的比重在軟件行業(yè)里已經(jīng)有所下降,而怎么樣才能成為一名優(yōu)秀的開發(fā)人員卻依然沒有達(dá)成共識(shí)。“偉大的程序員,只需要幾個(gè)小時(shí)或者幾天就能完成普通程序員需要數(shù)周或者數(shù)月才能搞定的任務(wù)。”Dan North堅(jiān)持這么認(rèn)為。

“作為買家,你難道不想知道你的系統(tǒng)是由大師級(jí)工匠還是臨時(shí)工做的嗎?你付了錢,就應(yīng)該有這個(gè)知情權(quán)。所以如何辨別兩者就很重要了。”——Dan North

North也承認(rèn),好不好看并不能讓我們正確區(qū)分兩者。任何開發(fā)人員都可以自詡為軟件匠手,也能做到對(duì)何為“軟件架構(gòu)之美”侃侃而談。North誠(chéng)摯地希望能有有識(shí)之士重新編寫軟件藝術(shù)的概念,這是最基礎(chǔ)的理念問題。

站在背后的代碼

我們并不在乎水管長(zhǎng)啥樣——反正是埋在里面的。這同樣適用于軟件。無論是客戶還是用戶,都只關(guān)心代碼是否能工作以及頁(yè)面看上去ok就行。

“同樣的,我只想請(qǐng)專家電工來給我的房子布線而不是一個(gè)濫竽充數(shù)的家伙,我也只想要專業(yè)程序員來寫代碼,” North鄭重其事地說,“我最討厭的就是,一個(gè)自命不凡自以為是的水管工一刻不停地談?wù)撍麅?yōu)雅美麗富有藝術(shù)感的水管。”

譯文鏈接:http://www.codeceo.com/article/art-of-programming.html
英文原文:The ‘art’ of good programming
翻譯作者:碼農(nóng)網(wǎng) – 小峰

責(zé)任編輯:張偉 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2017-01-15 17:06:16

程序員藝術(shù)家

2013-07-24 09:31:45

大數(shù)據(jù)迪斯尼

2011-08-24 14:03:34

LiveSketchiOS

2017-11-14 21:30:15

2012-09-10 09:16:54

2012-08-20 09:26:17

程序員算法排列算法

2014-08-29 11:09:44

程序員

2022-05-30 13:38:51

區(qū)塊鏈人工智能Web3

2024-03-28 13:18:34

AI模型

2020-03-09 11:14:25

程序員技術(shù)設(shè)計(jì)

2020-03-29 08:19:56

程序員代碼

2022-06-16 12:03:44

NFT加密網(wǎng)絡(luò)攻擊

2012-05-25 10:54:24

程序員

2015-06-17 14:24:48

優(yōu)秀程序員整潔代碼

2021-05-29 07:32:14

優(yōu)秀程序員代碼

2015-10-12 08:56:37

程序員成長(zhǎng)法則

2022-07-28 11:13:08

人工智能模型

2012-11-01 13:46:54

程序員

2021-12-07 14:27:49

區(qū)塊鏈社區(qū)幣硬幣

2013-08-05 09:55:47

程序員
點(diǎn)贊
收藏

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