又到了一年一度抉擇的季節(?) 我是Web backend developer出身的,每年都要對自已的吃飯傢伙/玩具/工作技能做次檢查。看看有沒有值得更新的知識,為的是強調開發的速度,品質,效能,維護性和滿足需求。 雖然慢慢的,工作時間上寫程式的比重減少,喇賽的比重增加了(結果喇賽比寫程式重要…這是結論嗎?) 不過我每次有空動工寫code都是很happy的,覺得和在玩積木沒兩樣。我相信做積木的人比較辛苦,不過有人願意玩自已做的東西應該也很開心才對。 前兩年以Node.js( express, socket.io…) /Ruby (rails)為主做開發。也碰了些前端的東西(React, Vue.js…) 那今年來聊聊考慮試試新的開發框架這件事,以下列的東西實際上還沒試寫過,但我相信它們都很好。其實不管是用什麼語言或是框架,既然spec訂出來了,差別就只差在開發的速度和執行效能。所以選擇的理由只是因為適合我個人的考量,不代表你的考量(我的partner說他就是喜歡一個問題有很多人提出很多解法XD)。 由於前端後來就採用了Vue.js的做法(React也很好,概念上其實是部分相通的),所以看了一下它現在建議的Server Side Render的solution,理論上只要後端是Nodejs Server應該都能做SSR。 擷圖自 https://github.com/nuxt/nuxt.js (Vue.js SSR solution)
以下是三個考量的選項: 1.Express:本來就一直都有在用,只是不想一直寫es5的寫法,還是有點想看看別的解決方案。(koa被我略過了….它其實也很好,就是沒緣份吧。) 2.AdonisJS:查了一下,http://www.adonisjs.com/ 實際上我也覺得不錯,但是Node.js社群很喜歡一件事有n種解法(其中有m種是rails like的),再過一陣又會開始玩新的了。不是說這樣不好,而是正式開發專案沒辦法常常換來換去這樣。我也希望做每個project都可以換一個framework玩,但是真的要在一起總是希望可以久一點。 3.Elixir (Phoenix) :Elixir以Erlang為基礎,支持分布式、高容錯、實時應用程式的開發…巴啦巴啦的,用過的朋友都說好。 雖說最後是心屬Elixir(想要寫寫比較純的FP language + 不用面對一堆很新或很舊的npm/yarn package不知要挑哪個),但是還是會繼續寫Node.js 為什麼? 因為JS是個神奇的語言,當你覺得它沒救的時候,它還是有辦法玩出新花樣像purescript(這個有朋友在推坑了), clojurescript, bucklescript, elixirscript….還有很多新奇的東西會在JS上面發生,明年是不是又有更好的做法出來,誰知道呢? 一點雜感分享,歡迎討論或指教。
AdonisJS自己写req和res,让我想起以前的thinkjs,费力不讨好
难得在cnode看到有人提到Elixir啊。。