程序員的口頭禪:技術(shù)上無法實(shí)現(xiàn)

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

「技術(shù)上無法實(shí)現(xiàn)」這句口頭禪,我在過去多年的程序員職業(yè)生涯中經(jīng)常聽見,甚至我自己就曾說過很多次。最近當(dāng)我再次聽到有人說出這句話時,就不禁思考起來,為什么程序員愛說這句話呢?為什么曾經(jīng)我也時不時說這句話呢?

不知

當(dāng)我剛開始工作的第一年,我在一家銀行客戶現(xiàn)場工作。當(dāng)時要給銀行的出納管理部做一個系統(tǒng),這個系統(tǒng)有個功能就是上傳各個國家的高清真假幣鑒別對比圖片,然后銀行的出納和柜員就可以在系統(tǒng)上學(xué)習(xí)各國家紙幣的鑒別方式了。

針對這些高清紙幣圖片,客戶為了怕別人盜取亂用,就要求必須對對圖片做加背景水印的功能。當(dāng)我們在召開需求討論會時,我聽到這個需求就懵了,因?yàn)橥耆恢酪趺醋?。畢竟?dāng)時我才剛剛開始學(xué)習(xí)如何做 Web 化的管理系統(tǒng),從來沒有用程序處理過圖片。

彼時,當(dāng)我想起程序化的圖片處理時,我就只能想起像 PhotoShop 這樣的高度專業(yè)化的圖片處理工具軟件,覺得這肯定是一個很復(fù)雜的事情。所以,當(dāng)我們討論起加背景水印的功能時,我自然脫口而出:“這在技術(shù)上無法實(shí)現(xiàn)?!?/p>

然后我們進(jìn)一步說起,當(dāng)前他們是怎么做的,確實(shí)是找了專門的外包設(shè)計(jì)公司用 PhotoShop 來給圖片一張張手工加的水印。這聽起來是一個比較繁瑣的過程,所以,當(dāng)我回答在技術(shù)上無法實(shí)現(xiàn)時,客戶都是業(yè)務(wù)人員,也不太懂程序技術(shù)上的事,聽到我的回答就略顯失望。

好吧,如今回想起來,當(dāng)時我說技術(shù)上無法實(shí)現(xiàn)時,僅僅是我當(dāng)時并不知道如何去實(shí)現(xiàn)。而且想當(dāng)然的感覺要進(jìn)行圖片處理,必須要具備像 PhotoShop 一樣的專業(yè)背景知識,而這在當(dāng)時的我而言是完全不能想象的。

因此,當(dāng)時我說出的那句:技術(shù)上無法實(shí)現(xiàn),僅僅是因?yàn)椴恢筒唤舛膽盐窇帧?/p>

不愿

有一年,我出差在客戶現(xiàn)場趕項(xiàng)目,連續(xù)加班了四個周末,也就是大概一個月在連續(xù)上班。終于我們的項(xiàng)目快要如期上線了,每個通宵的早晨,看著東方慢慢變得紅潤透亮的天空,感覺已經(jīng)快要看到了勝利的曙光。

就在這樣一個曙光照耀的早晨,項(xiàng)目經(jīng)理跑來對我們說:“原有的一塊業(yè)務(wù)邏輯今天在和客戶聊起時,他們說也只是試試這個流程,可能要改變。但我們的實(shí)現(xiàn)方式太僵硬,都是硬編碼趕出來的。要不我們改成更靈活的可以通過配置的方式,一旦上線后再改起來就更麻煩了,我可以先去和客戶再溝通下,再給我們爭取點(diǎn)時間?!?/p>

一下子,我們都被打擊的不行,改成配置怎么改?邏輯那么復(fù)雜,又不是那種簡單的開關(guān)式配置。當(dāng)然,項(xiàng)目經(jīng)理早已脫離技術(shù)一線時間頗久,也一時半會兒沒啥方案。在沉默的思考了一陣后,我又說出了那句話:“邏輯太復(fù)雜,變動太大,這在技術(shù)上無法實(shí)現(xiàn)。”

老實(shí)說,當(dāng)時我只是想趕快離開這沉默的討論會,去美美的睡上一覺。其實(shí),那時我心里是有一個方案的,如今看來不是什么優(yōu)秀的方案,只是當(dāng)時我唯一知道且可行的方案。就是通過動態(tài)類加載機(jī)制,把業(yè)務(wù)邏輯外移,流程內(nèi)置的方式去可以動態(tài)熱加載新的業(yè)務(wù)邏輯類。但這意味著可能面臨一次重大的重構(gòu),又是兩周的持續(xù)加班,而我當(dāng)時只想睡上一覺。

后來,這個故事在我睡醒后依然以我妥協(xié)結(jié)束。我建議了這個方案,最后當(dāng)