昨天在我們新手寫程式 LINE 群組,有幾個業界工程師&新手在討論:
如果前端要銜接後端的話,是不是學 node.js 比較快?
https://line.me/ti/g2/nipkjq2WoZPKX5dTn9tE9266aEOt6EOICFGa1g
這主題很好,我決定單獨寫一篇文章討論這件事情
首先,我很推薦新手前端也去學一點後端,這樣對整體概念會更清楚
這位網友提到的 node.js 很不錯,但是我更推薦去學 php,簡單幾個原因說明如下
常見的後端語言,在寫網站時,都需要套件&框架才能開發
我建議你直接寫 php 做好玩的小網站,不要用框架
php 雖然現在都用 laravel 框架,但古早時代大家都寫純 php
如果現在只是自己做個小專案,當然寫純 php 也是夠用的
學框架沒什麼不好,但是,在新手一開始的階段,我更推薦從單純的東西開始學起
一來上手很快,二來等於是紮穩馬步,三來之後學框架可以去思考:如何用純 php 語言寫出框架元件
如果自己想補充後端知識,就試試純 php 吧!先別學 laravel,晚點再去學就好
這件事比較 tricky,javascript 語言本身支援非同步,這在前端 UI 處理很好用
也就是常用的 async/await,.then().then().then()
或者到處傳 callback function 那些的
但是!我認為在寫後端的時候,這個語言特色會讓後端開發時,顯得有點囉唆
以後端讀取檔案內容來說,絕大多數情況下,你就是要現在就讀取好檔案、讀取完才讓程式接著繼續跑,才有意義
幾乎不存在「非同步去讀取檔案,不等結果,先直接去處理別的任務」這種情況
於是 node 後端程式碼就需要去傳 callback function 或者 async/await
我認為這有點囉唆,這些情境實在沒必要用「非同步程式設計」處理!
node 社群自己也知道,所以除了 fs.readFile
之外,還有提供 fs.readFileSync
函式
作為一個教育者,我很不喜歡跟新手解釋,為甚麼會有這兩種函式,差異在哪
我認為新手後端,多去學非同步程式設計的觀念與技巧,是徒增挫折
用 python/php/ruby/java 寫後端,都不會遇到這個困擾
新手後端就學好 http 協定,GET 跟 POST 參數是怎麼傳遞的,怎麼使用 session,怎麼連接資料庫就好了
不要多被一個 asynchronous programming 困擾
本身是前端工程師,再去學後端想用 node 繼續寫 javascript 當然很合理
不過,長遠來說,多學幾種程式語言,對職業生涯比較健康
首先,你會更有自信一點,並且,能夠開始比較各種程式語言的差異與哲學
很多在 A 語言理所當然的事情,在 B 語言是很罕見的
很多在 A 語言社群大家都說「對」的事情,在 B 語言社群大家都說「錯」
長遠職業生涯來說,你需要至少寫過多種程式語言,才會發現大多數事情都只是「不同社群」的「主觀偏好」
你會發現網路上多數講的斬釘截鐵的對錯觀念,都只是一種偏執。你的觀點會更全面
以這位網友的狀況來說,本身是前端,其實,學 nodejs 或 php 都不錯啦
我個人是偏好 php > nodejs 一點,這樣
以上,簡單分享,希望對類似狀況的朋友有幫助!