程序員的口頭禪:技術上無法實現(xiàn)
「技術上無法實現(xiàn)」這句口頭禪,我在過去多年的程序員職業(yè)生涯中經(jīng)常聽見,甚至我自己就曾說過很多次。最近當我再次聽到有人說出這句話時,就不禁思考起來,為什么程序員愛說這句話呢?為什么曾經(jīng)我也時不時說這句話呢?
不知
當我剛開始工作的第一年,我在一家銀行客戶現(xiàn)場工作。當時要給銀行的出納管理部做一個系統(tǒng),這個系統(tǒng)有個功能就是上傳各個國家的高清真假幣鑒別對比圖片,然后銀行的出納和柜員就可以在系統(tǒng)上學習各國家紙幣的鑒別方式了。
針對這些高清紙幣圖片,客戶為了怕別人盜取亂用,就要求必須對對圖片做加背景水印的功能。當我們在召開需求討論會時,我聽到這個需求就懵了,因為完全不知道要怎么做。畢竟當時我才剛剛開始學習如何做 Web 化的管理系統(tǒng),從來沒有用程序處理過圖片。
彼時,當我想起程序化的圖片處理時,我就只能想起像 PhotoShop 這樣的高度專業(yè)化的圖片處理工具軟件,覺得這肯定是一個很復雜的事情。所以,當我們討論起加背景水印的功能時,我自然脫口而出:“這在技術上無法實現(xiàn)?!?/p>
然后我們進一步說起,當前他們是怎么做的,確實是找了專門的外包設計公司用 PhotoShop 來給圖片一張張手工加的水印。這聽起來是一個比較繁瑣的過程,所以,當我回答在技術上無法實現(xiàn)時,客戶都是業(yè)務人員,也不太懂程序技術上的事,聽到我的回答就略顯失望。
好吧,如今回想起來,當時我說技術上無法實現(xiàn)時,僅僅是我當時并不知道如何去實現(xiàn)。而且想當然的感覺要進行圖片處理,必須要具備像 PhotoShop 一樣的專業(yè)背景知識,而這在當時的我而言是完全不能想象的。
因此,當時我說出的那句:技術上無法實現(xiàn),僅僅是因為不知和不解而心懷畏懼。
不愿
有一年,我出差在客戶現(xiàn)場趕項目,連續(xù)加班了四個周末,也就是大概一個月在連續(xù)上班。終于我們的項目快要如期上線了,每個通宵的早晨,看著東方慢慢變得紅潤透亮的天空,感覺已經(jīng)快要看到了勝利的曙光。
就在這樣一個曙光照耀的早晨,項目經(jīng)理跑來對我們說:“原有的一塊業(yè)務邏輯今天在和客戶聊起時,他們說也只是試試這個流程,可能要改變。但我們的實現(xiàn)方式太僵硬,都是硬編碼趕出來的。要不我們改成更靈活的可以通過配置的方式,一旦上線后再改起來就更麻煩了,我可以先去和客戶再溝通下,再給我們爭取點時間?!?/p>
一下子,我們都被打擊的不行,改成配置怎么改?邏輯那么復雜,又不是那種簡單的開關式配置。當然,項目經(jīng)理早已脫離技術一線時間頗久,也一時半會兒沒啥方案。在沉默的思考了一陣后,我又說出了那句話:“邏輯太復雜,變動太大,這在技術上無法實現(xiàn)?!?/p>
老實說,當時我只是想趕快離開這沉默的討論會,去美美的睡上一覺。其實,那時我心里是有一個方案的,如今看來不是什么優(yōu)秀的方案,只是當時我唯一知道且可行的方案。就是通過動態(tài)類加載機制,把業(yè)務邏輯外移,流程內(nèi)置的方式去可以動態(tài)熱加載新的業(yè)務邏輯類。但這意味著可能面臨一次重大的重構,又是兩周的持續(xù)加班,而我當時只想睡上一覺。
后來,這個故事在我睡醒后依然以我妥協(xié)結束。我建議了這個方案,最后當