最近有個客戶讓我幫一個網站修復一些 bugs。
呀……當我第一次知道又要幫其他人執屎的時候,其實我是拒絕的!因為我覺得……呀……你不能叫我修、馬上修,第一,我要先看一下,……後來客戶跟我說這次真的是很簡單的,一個關於旅遊的資訊網站,只要修復些發不出 email 的小 bugs 就行。
一個小小的旅遊資訊網站,再加上只是要修復些發不出 email 的問題。聽起來就算有坑也大不了那里去啊,想到這里我就含笑答應了。
結果拿到代碼一看,我不禁倒抽一口涼氣。
主要是,這個網站的架構太混亂,簡直就像作者隨手拿幾塊 lego 搭起來的玩意。
憑着我對這個 project 粗淺的認知,我試着畫一下它的架構圖。
整個架構的精粹就一個快字。開發者只要專注開發 Frontend 就行了,其他所有都是現成的,直接就可以重覆利用。能用現成 platform/service 就絕不自己搭建,devops 的功夫都省了。今天你 confirm design, 我明天就可以整個網站開發出來給你。畢竟時間就是金錢,天下武功惟快不破。
除此之外,你可能說同樣 Wordpress 套層皮也可以做到啊,但若果我掏出上面張架構圖,就問你能不能騙值多點錢?
看到這裏,小朋友你是否有很多問號?
這樣的架購,維護起來會怎樣呢?如果客戶提出比較複雜的需求又能不能支持呢?
呵呵。
維護?小朋友你想多了,這種公司或開發者明顯打算做一次性生意,管殺不管埋,做完交貨就走人,維護關我鳥事。(不然都不會找到我)
複雜的需求?親,這邊建議你砍掉重練哦,整個網站重新做哦,最多這次給你九折優惠哦親~
我不去猜測開發者爲什麼要這樣做,其實無非就是成本和時間問題,但能不能別將簡單的事性複雜化?哪怕你簡簡單單寫個 Wordpress theme 我也敬你是條好漢。
在這個項目裏,包含了:
- 4 個 Repositories
- 3 個不同的 nodejs versions
- 2 個 Netlify accounts
- 一堆 bugs
發不出 email 原因就是其中一個 nodejs version 太低,AWS Lambda 已經不支持了。結果爲了升級 nodejs version 又要重寫那些 Lambda functions。
你只要看過一眼 DB structure, 你就知這系統有多隨便,明顯不打算繼續開發和維護的。
最關鍵是,production 上面調用的 SendGrid templates 居然是在開發者的開發者帳號中,還丟失了。我也是嘆爲觀止。
當然,我負責執屎填坑當然是不爽的,但我認爲最慘的還是客戶,畢竟他們可能不理解手上這玩意兒有多垃圾。若果他朝一日真想滿足更多的需求或功能,除了推倒重來別無他法。我想這也是爲什麼 IT agent / vendor 公司一般給人技術垃圾印象的原因,因爲大部分的確只打算做一次性生意,坑一筆就跑。