學習新工具需要時間,但由於我們早已慢慢地將鏡週刊原有的程式碼用 Nuxt 重寫,大家都對這個框架有一定的掌握,成本因此不高;反之,它能夠提升團隊的開發效率。
要不要寫測試呢?鏡週刊的網站有寫,但考量到 READr 的產品性質,可能這個禮拜上線的能,下個禮拜就拿掉了,寫測試有點冗贅,而且會大大拖慢開發速度,因此就決定不寫了。
另外,在 READr 改版之際,Vue 3.0 也正在如火如荼地開發中。從維護鏡週刊網站的經驗,讓我相當認同 Composition API RFC 對於 Options API 提出的批評,也深受 Composition API 的承諾所吸引。由於 READr 沒有支援 IE 的煩惱,加上 Nuxt 官方社群也有提供相關套件,因此我便決定引進,以提升程式碼的可讀性與複用性(Vue 3.0 快出來啊~)。 在時間壓力下開發實驗味較濃的網站,思緒大抵就是在「可維護」與「快速」之間來回擺盪。
該不該元件化呢?該怎麼取名呢?該怎麼組織原始碼呢?該不該把這個部分抽取成一個函式呢?
有需要想這麼多嗎?這個東西未來應該不會被複用吧?要花時間重構這段代碼嗎?不是有句話這麼說:過早的最佳化是萬惡之源?但,怎樣才算是「過早」呢?
以下是我在痛苦又快樂的掙扎中,暫時總結出的幾個原則:
簡而言之,盡快讓功能上線、東西沒壞就先不要修;不要對未來通靈、不要對需求通靈,能找得到人問就問,找不到人⋯⋯再通靈(但目前還沒遇到啦)。
開發新功能很有趣,維護一個中大型網站則很刺激。未來 READr 的功能會愈加愈多(或許也會砍掉很多?),網站也會愈來愈難維護。身為一名工程師,責任就是讓使用者愈少意識到我們的存在愈好(「吼工程師!網站又壞掉啦!」),讓讀者每次都能順暢、開心地體驗整個網站。
如果你有發現任何 bugs,或想許願什麼新功能,都歡迎填寫表單或私訊粉專,讓我們一起把 READr 變得更好。