新聞中心
我老爸曾經(jīng)常說一句話:“慢點來,孩子,這樣你才能更快地完成工作?!?/p>

創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10余年時間我們累計服務(wù)了上千家以及全國政企客戶,如汽車玻璃修復(fù)等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致贊賞。
我已經(jīng)在舊金山海灣區(qū)的許多高科技初創(chuàng)公司里工作過了。今年我52歲,我緩慢地、充滿思考地編程。我有點像是一個寫代碼的設(shè)計師,如果你繼續(xù)讀下去,會發(fā)現(xiàn)這點真的很明顯。
當(dāng)我最近開發(fā)的一個項目中有一群信仰快速、細(xì)微迭代改變代碼的年輕程序員時,慢速編程對我來說成了一個問題。在工作中,我們在同一個代碼庫下開發(fā),好像這就是一大鍋湯,我們只需要不斷且費力地攪動它,一個神奇完整的東西就會出現(xiàn)了。
這真的沒什么用。
這些開發(fā)者中的很多人都很相信一個謬論:所有的工程師都是可以被替代的,所以不該有人為某一段特定的代碼負(fù)責(zé),任何程序員在任何時候都能改變?nèi)我獠糠值拇a。畢竟,我們有像Github(看看這個《14個最佳免費Hithub開發(fā)者工具》、《你不可不知的10個Github功能》)這樣極好的服務(wù)來管理和融合來自很多程序員的很多不同步的代碼改變。只要每人都不斷地提交代碼,同時不造成破壞,一切都會變好的。
這純粹是胡說八道!
你不能期許沒有設(shè)計過程就開始編程。設(shè)計在人類文明剛出現(xiàn)是就已經(jīng)存在了。當(dāng)下最新較好用的開發(fā)工具,不論有多好用,都不能替代建立大教堂、鐵路和長篇電影的最佳實踐和現(xiàn)實生活中的合作。
任何數(shù)量的編程也不能生成一種工具來減少軟件開發(fā)時間,開發(fā)速度快到連猴子都能完成團隊代碼的速度。
節(jié)律異常
在一群快速開發(fā)的程序員中做一名慢速程序員的意外事故是我變得節(jié)律異常了,這樣我的編程節(jié)奏就通過其他程序員連續(xù)不斷地快速機器迭代給打斷了。我的編程風(fēng)格是由不同的尺度和時間表的有機弧線來定義的,每條弧線都從探索、嘗試、出錯、創(chuàng)造性地解決問題和臨時變量開始?;旧暇褪谴罅康哪_手架之類的搭建工作,這樣一幅畫就開始成形了。然后,我再回頭做些修修補補的細(xì)節(jié)工作。每條弧線的末端就像是快要完成的代碼。我為代碼貢獻的開發(fā)弧線就等同于一個策略、設(shè)計方案和體系結(jié)構(gòu)的出現(xiàn)。
有時候,一個成熟的生物出現(xiàn)后,我會回到原點重新開始,因為我想到了一個怎么去做的更好方法。有時候我錯了,有時候我是對的。在這個生物完全成形并開始盯著我看之前,真的沒辦法知道該怎么做。
無論如何,回到熬大鍋湯的程序員話題。問題是:在整個軟件生態(tài)系統(tǒng)中都沒有停滯,沒有平靜的過程來獲得牽引力和應(yīng)用設(shè)計過程,這樣一個開發(fā)者,即使是一個快速程序員,怎么能做出好的設(shè)計呢?
任何說快速編程跟慢速編程一模一樣(除了速度之外)的程序員,都沒有理解設(shè)計流程。出于同樣的原因,很多神經(jīng)系統(tǒng)科學(xué)家現(xiàn)在相信貫穿整個大腦的諸如流體之類的神經(jīng)元放電的“涌流”(相當(dāng)于我們所說的“狀態(tài)”來了)有一個時間上的反射過程,這個反射過程與思想和意識有緊密的聯(lián)系,所以說,好的設(shè)計需要時間。
慢速編程運動
根據(jù)維基百科描述:“‘慢速編程運動’是‘慢速運動’的一部分,它是一個強調(diào)細(xì)致設(shè)計,高質(zhì)量代碼,軟件測試和思考的軟件開發(fā)哲學(xué)。它致力于避免拼湊代碼,有漏洞的代碼以及過度快速的發(fā)布周期。”
維基百科上還提到這個與“慢速軟件運動”有關(guān)的內(nèi)容:“作為敏捷軟件開發(fā)的一部分,全世界成群的開發(fā)者們都在尋找更有先見性的項目,這是為了一個更可持續(xù)發(fā)展的職業(yè)生涯,并達(dá)到工作和生活的均衡。他們建議做些像結(jié)對編程、代碼審查和代碼重構(gòu)之類的實踐,這些都會讓你獲得可靠而強健的軟件應(yīng)用程序?!?/p>
在舊金山海灣區(qū)的風(fēng)險投資支持的軟件開發(fā)正處于間距短到發(fā)燙的快軌上。資金動態(tài)在過程中提出反常的需求,那這個過程***留給設(shè)計演變的自然晝夜節(jié)律??觳⒉豢倳谩嶋H上,更慢點有時候真的意味著更快,尤其是當(dāng)一切都討論過并做過的時候。
還有另外一個問題:對技術(shù)近乎宗教般的癡迷,以及對工具有著戀物癖一樣的愛(看看這些好用的工具《你應(yīng)當(dāng)知道的7個Java工具》、《提高程序員工作效率的5個工具》)。人們想知道為什么軟件寫的很爛,軟件很爛是因為紙上談兵??焖俪绦騿T建立解決問題的工具來解決能幫他們寫代碼的工具的問題。
這就我我一直認(rèn)為我們需要年齡較大的人們:女人,教育工作者,和藝術(shù)家參與軟件開發(fā)周期的原因。更多的人與人之間的聯(lián)系,更少的物與人之間的聯(lián)系。我不是說在開發(fā)團隊之外,坐在幫助臺前或者做些UI花朵之類的安排工作,我的意思是就讓他們在軟件開發(fā)團隊內(nèi)部,以確保軟件能在***程度上與人性共鳴。
很高興我不是一個摸到鍵盤就不會思考的程序員
我的一個朋友是個成熟的女性軟件工程師,他做了一個有趣的小測試:“軟件編程不是敲代碼”。每個人都明白這點,但并沒有什么疼痛能經(jīng)常的點醒我們。Brendan Enrick討論了這個問題。我們程序員花時間將我們的手指戳到鍵盤上的事實讓這項體力活動看起來等同于編程,但編程實際上是把思想、設(shè)計、語言、邏輯和精神構(gòu)建變成一種能存儲在電腦內(nèi)存中的形式的行為。
我妻子經(jīng)常走到院子里來問我:“你在編程么?”通常我的回答就是“是的,我在編程”。這時候一般我都在拿著一把園藝剪在修剪枝枝丫丫或者在為院子里的花草樹木施肥。
植物、灰塵、剪刀跟編程的關(guān)系就好像鍵盤和發(fā)著輝光的屏幕之間的關(guān)系一樣緊密。
我們正在從一個工業(yè)時代和被增長率定義的經(jīng)濟時代過渡到可持續(xù)發(fā)展時代。是的,新軟件和新業(yè)務(wù)都需要增長。但為了持續(xù)發(fā)展,他們需要帶著愛心的關(guān)懷緩慢地增長。就像一杯好酒,像一個嬰兒一樣。
原文:The Case for Slow Programming
譯文:http://www.php100.com/html/it/focus/2014/1202/7955.html
(翻譯:PHP100_Alex)
文章標(biāo)題:“慢速編程”讓你擺脫不思考戳手指狀態(tài)
分享地址:http://m.fisionsoft.com.cn/article/cdjedhe.html


咨詢
建站咨詢
