程序員如何偷懶?偷懶是一種至高境界
如果你對(duì)如何開發(fā)軟件了如指掌,學(xué)東西又很快,并且孜孜不倦地從試驗(yàn)和錯(cuò)誤中學(xué)習(xí)。有什么異常你能立刻采取措施,迅速刷新瀏覽器,查看方法是否奏效。
不行?再試!有時(shí)候,哪怕你已經(jīng)懊惱得要捶墻,也不得不繼續(xù)試驗(yàn)。(各位要是也有為Internet Explorer調(diào)試網(wǎng)站的經(jīng)驗(yàn),對(duì)此就深有體會(huì)了。)
成為一個(gè)軟件開發(fā)人員就意味著,你需要做一大堆重復(fù)性的任務(wù),而這正是懶惰這個(gè)品質(zhì)滋生的土壤。那些厭倦于這種重復(fù)性任務(wù)的程序員立馬會(huì)想到——可不可以建一個(gè)工具來(lái)自動(dòng)執(zhí)行呢?他們知道每一次修改代碼之后如何自動(dòng)刷新瀏覽器。他們會(huì)制作工具自動(dòng)清理數(shù)據(jù)庫(kù)和測(cè)試再次導(dǎo)入的文件。只要有模式存在,他們就能發(fā)現(xiàn)它,自動(dòng)運(yùn)作它。
很多時(shí)候,我發(fā)現(xiàn)那些需要使用軟件內(nèi)置的客戶,因?yàn)榭偸鞘謩?dòng)處理一些重復(fù)性的進(jìn)程,以至于他們自己竟然忘記了這種浪費(fèi)時(shí)間和精力、效率又低的方法本身就是一個(gè)問(wèn)題。
尋尋覓覓那個(gè)“懶惰”的程序員
如果你聘請(qǐng)的軟件開發(fā)人員,能一下子融進(jìn)團(tuán)隊(duì)的工作,明白當(dāng)前遇到的困境,并且如果足夠幸運(yùn)的話,他甚至只需要幾個(gè)小時(shí)就能快速提出解決方案。有時(shí)候方案會(huì)略顯復(fù)雜,但是我不得不坦言,將工作流程放到Excel中通常并非一個(gè)長(zhǎng)期的***解決方案。
如果你想要找到業(yè)務(wù)流程關(guān)于框架原型的解決方案,Ruby on Rails是你的***。它擁有所有你需要的任何工具,只需要幾小時(shí),就能建立起一個(gè)雖然略顯混亂但是快捷的自動(dòng)化進(jìn)程。如果想要整潔一點(diǎn),可以直接與業(yè)務(wù)流程相關(guān)。優(yōu)化業(yè)務(wù)流程能讓我們和我們的客戶心情更愉悅,甚至可能產(chǎn)生的效益更高。
有時(shí)候我會(huì)覺(jué)得,懶惰的程序員,其實(shí),更優(yōu)秀。不過(guò)這并不是說(shuō),走捷徑就一定是正確的解決方案。懶惰的開發(fā)人員知道,捷徑終非長(zhǎng)久之計(jì)??茖W(xué)的規(guī)劃能讓人事倍功半,他們深謀遠(yuǎn)慮,思慮長(zhǎng)遠(yuǎn)。他們的眼睛總是朝著遠(yuǎn)方。當(dāng)然該走捷徑的時(shí)候,他們毫不猶豫。有的想法一開始出來(lái)的時(shí)候只是一些片段,并不具體或者是基于某些假設(shè)的,那些所謂“懶惰”的程序員卻會(huì)絞盡腦計(jì)地思考并且去嘗試這些新鮮事物:測(cè)試、測(cè)量反饋、***根據(jù)結(jié)果得出結(jié)論。如果,我們直接在假設(shè)的基礎(chǔ)上去做軟件,一旦需要重做,那將耗費(fèi)更多資源。這種建議,我相信任何有腦子的人都會(huì)pass掉。
后期如果需要做任何改動(dòng),因?yàn)橛兄敱M又科學(xué)的規(guī)劃,所以對(duì)于“懶惰”的開發(fā)人員而言就是小菜一碟。反而是那種“勤奮”的開發(fā)人員,因?yàn)檫^(guò)度設(shè)計(jì),而把自己限制在了一個(gè)固定的思維中——程序要么不做,要做一開始就得有個(gè)上千個(gè)功能。這是個(gè)劃時(shí)代的創(chuàng)舉啊!我真是個(gè)天才!這些家伙如是想??梢?**卻發(fā)現(xiàn)他設(shè)計(jì)的條條框框不能做到隨著業(yè)務(wù)的改變而及時(shí)重塑。
所以如果你下次再聽到別人說(shuō)懶惰是一種可貴的品質(zhì),就不要吐槽了。懶惰在編程的世界不再是一個(gè)貶義詞,而是一種夸贊!