面對新技術的心態

Drupal

使用 Drupal,不應該只是認為「別人都幫你寫好了模組、做了很漂亮的版型,只要抓下來拼湊、修改一下就可以交差了。」而是要學習到這個基於 hook 的 design pattern 要怎麼依樣畫葫蘆,在 Drupal core 上開發符合自己需求的程式,讓 Drupal 真正為自己所用。

不然,你做出來的網站就是會有很濃的拼裝車味道。

同時,也因為 Drupal 有自己的一套 architecture 與 design pattern,所以也不應該認為「反正只是 PHP。」言下之意好像 PHP 入門簡單、會的人多,隨隨便便都找得到人來開發。同款,不同師傅。

況且單看臺灣的話,真正寫得「好」的、精通 PHP 的開發者,事實上並不多。

當然啦,有人會說:「我只求能動、先求有不求好、能交差 60 分」,這種人基本上不是我寫這篇文想要鼓勵的對象,麻煩請關掉分頁,去享受你其他面向的快樂人生與成就,畢竟人各有志。

Rails

使用 Rails,也不應該被「10 倍速的快速開發網站魔法」之類的宣傳詞迷惑,而是要從中學得如何做出一個可維護的網站,包括透過 MVC 將系統元件分而治之、包括 DB schema versioning、包括從 ORM 學得 OOP 的基本精神與 metaprogramming 等,諸如此類的技術成長,自此就從「一隻程式通心粉式地把所有事情做完,之後再也看不懂這隻程式當初是在寫尛」的程度畢業,成為一個講究軟體工程、架構的進階開發者。

不然,其實你我也見過,很多去上了速成班的人,寫出來的 Rails 跟用 Raw PHP 差不多髒。這樣的「快速開發」只是製造用另一種語言寫出來的技術債而已。

順道一提,如果你在 Drupal 上的開發習慣、思維夠好夠清晰,來學習 Rails 基本上除了程式語言不同以外,不會有什麼障礙。

Docker

使用 Docker,也不應該把它當成是比較好用的 chroot 而已,而是要想說透過這樣的隔離,我可以更充分利用機器的運算資源,並透過 API 的呼叫,來操作容器裡頭包裝的程式元件,將思考的層次從「伺服器」轉化到「資源」。

此時你傳統「一個網站專案解決一切」的系統架構,為了 HA 與 scalability 就勢必要進行進一步的重構。

反之,如果你硬要把既有一把通抓架構的程式塞進 Docker 裡,搞了一堆有的沒的讓它跟在實體機、虛擬機做的事沒兩樣,其實還反而弄得更綁手綁腳,未蒙其利,先受其害,那麼拜託你不要去外面跟人宣傳說「我們也有用 Docker」。

TL; DR

其實我寫這篇只是想說,很多盲目追求技術的熱潮,並沒有搞懂本末終始核心精神,這樣營造出來的 ecosystem 其實只是在搞技術宗教崇拜,比誰的信眾多,其實是很不健康的一窩蜂,瘋潮一過,留不住多少人,對 IT 產業也就沒有什麼真正的助益。

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Leave a Reply

Your email address will not be published. Required fields are marked *