1. 程式人生 > >程式設計師的遮羞布:這個需求技術上無法實現

程式設計師的遮羞布:這個需求技術上無法實現

老讀者都知道的,我在三線小鎮洛陽工作。公司很小,開發人員最多的時候也就十來個,最少的時候也就我一個光桿司令。由於掌握著公司所有的核心程式碼,所以我一直很囂張。老闆也拿我沒辦法,有時候為了追加一個功能,還得看我臉色。而我呢,經常甩給老闆的一句話就是:“這個需求技術上無法實現。”

有時候,老闆被我逼急了,就在辦公室大發雷霆,但我仍然毫不示弱:“實現不了就是實現不了,你發脾氣也沒用。”老闆的需求也沒有太過分,無非就是讓我追加一些類似“自動賺錢”的功能。哈哈哈,開個玩笑。

說句實在話,老闆有些需求的確很難在技術上實現,但有些不是的。我丟擲“技術上無法實現”這個說法無非是想堵住老闆的嘴,因為需求是做不完的,還不如拿這些時間寫點文章和各位分享一下。看到沒,我對寫作是真愛啊,對各位讀者朋友們是真愛啊。

01、技術很渣

不得不承認啊,我的技術是很渣的。雖然已經有十年的工作經驗了,但也就是一個初級程式設計師的水平。這話不是出於自謙,而是出於自知之明。

舉個例子,自我批評一下。前幾天我在某園上更新了一篇技術文,題目叫做《Stack Overflow 上 370萬瀏覽量的一個問題:如何比較 Java 的字串?》,我覺得寫得蠻有趣的,蠻深入的。結果呢,被噴了,截圖羞辱一下自己。

由於技術很渣的原因,有時候老闆提出來的需求就會令我束手無措。記得有一次,他想做一個“二維碼海報分享”的功能:使用者點選“我的海報”,後臺獲取使用者的微信暱稱和頭像後,根據自定義的海報模板,生成使用者專屬的二維碼海報。

二維碼海報我見過很多,大家應該也司空見慣了,但要我用程式碼實現出來,以前還真的沒有做過。於是我就扔下一句話:“這個需求技術上無法實現。”

雖然技術很菜,但我不想自暴自棄。晚上睡覺的時候,我就在琢磨:“這個二維碼海報還真的有必要花點時間研究一下,如果說這個需求都實現不了,可真的有點說不過去。”

第二天到公司後,我就開始動手研究。花了不到一個小時的功夫,我就有了大致的思路。

  • 使用者點選選單的時候,獲取使用者名稱和使用者頭像的地址。
  • 載入海報背景,並獲取 Graphics2D 物件。
  • 利用 Graphics2D 在海報上列印使用者暱稱。
  • 利用 Graphics2D 在海報上列印使用者頭像。
  • 利用 Graphics2D 在海報上繪製使用者專屬二維碼。
  • 將生成的二維碼海報檔案上傳至微信的臨時素材庫。
  • 呼叫微信 API 返回臨時素材 ID。

思路有了,就需要動手實操。經過一番試錯後,發現老闆這個需求在技術上是可以實現的。等我把這個功能更新上去後,老闆得意洋洋地拍著我的肩膀說:“王二,你真牛逼啊。”

PS:大家如果對二維碼海報比較感興趣的話,可以檢視我另外一篇文章《Java生成仿金山詞霸的二維碼分享海報》,原始碼在 GitHub 上已經開源,地址如下:

https://github.com/qinggee/poster/tree/jinshanciba

說實話,老闆拍我肩膀的時候,我有點臉紅——“這個需求技術上無法實現”竟然成為了我的遮羞布。如果大家對技術有追求的話,請不要輕易地說出這句話。

02、懶得做

關於公司的事情,我很少提過。但經常有讀者問我:“二哥,你在洛陽做什麼工作呀?”為了滿足大家的好奇心,這裡就透露一下:做一個微信商城。

這下要失望了吧。其實不管做什麼,只要能生存下去就不算差。我們還在“苟延殘喘”,哈哈哈(苦笑)。

既然是微信商城,微信支付是少不了的。但老闆偏偏不放過我,還要做支付寶支付。大家都知道的,微信公眾號裡是不允許使用支付寶支付的;也不能說不支援吧,需要跳轉到手機自帶的瀏覽器,複製一長串字元,再跳轉到支付寶等等。特別麻煩,並且沒啥必要。

基於這樣的場景,我義正言辭地回絕了老闆:“這個需求技術上無法實現。微信公眾號,怎麼支付寶支付嘛?要做你自己做!”

老闆的臉色瞬間鐵青。但還是得忍住,誰叫我這麼橫呢。

隔天,我們再碰面的時候,老闆又賊心不死,非要我研究研究,說在某某個商城上就見到了支付寶支付;另外,微信支付需要有 90 天的試用期,試用期是沒辦法下發資金的,做支付寶支付很有必要,雖然支付不好用,但最起碼可以解決下發資金的問題啊。

出於“給錢就辦事”的職業操守,我極不情願地開始了支付寶支付的研究,沒想到,挺簡單的。API 上說得清楚,SDK 也對支付做了相關的封裝,於是我花了不到一天的時間就完成任務了。

等我把這個功能更新上去後,老闆再次得意洋洋地拍著我的肩膀說:“王二,你真牛逼啊。”

說實話,老闆拍我肩膀的時候,我臉上泛起了紅暈——“這個需求技術上無法實現”竟然成為了我推脫的藉口。如果大家對工作有擔當的話,請不要輕易地說出這句話。

03、反思

在一線大廠的同學可能很少有機會像我這樣,直接和老闆硬剛,除非是公司草創階段。但我想,應該免不了要和產品硬剛。

很多時候,產品提出的需求,總會認為技術上實現絕對沒有問題,然後經過技術評估後,得到的反饋是不建議這麼做,然後問題就來了:產品認為,是開發人員不想做,故意提出各種難題或者有意卡殼。

真的是這樣嗎?我想答案除了開發人員不想做,還有就是不會做。當然了,還有真的做不出來。

講道理,“只要想做,沒有什麼是技術上實現不了的”這句話就等同於“世上無難事,只怕有心人。”要想反駁,絕非易事。但也有幾個靠譜的答案,比如說“停機問題”、“錢給到位”。

就我們程式設計師自身的成長來說,出於對技術的敬畏,出於職業的發展,我們應該儘量少說“這個需求技術上無法實現”,多說“哦,我想一想,我研究研究。”

04、鳴謝

好了各位讀者朋友們,以上就是本文的全部內容了。**能看到這裡的都是最優秀的程式設計師,升職加薪就是你了。如果覺得不過癮,還想看到更多,我再推薦幾篇給大家。

@程式設計師,別再迷戀多執行緒工作了

@程式設計師,請掌握這些核心生存技能

@程式設計師,請萬分珍重你的第一份工作

程式設計師一般通過什麼途徑接私活?

如果大家有什麼問題需要我的幫助,歡迎留言喲。如果想發洩一下情緒的話,求輕噴。

日常操作來了!如果是二哥的鐵桿讀者的話,求點贊,讓更多需要營養的同學看到這篇文章。如果想要第一時間看到二哥更新的文章,可以掃描下方的二維碼,關注我的公眾號。bye-bye,我們下篇文章見!