昨天在我們新手寫程式 LINE 群組,有幾個業界工程師&新手在討論:

如果前端要銜接後端的話,是不是學 node.js 比較快?

https://line.me/ti/g2/nipkjq2WoZPKX5dTn9tE9266aEOt6EOICFGa1g

這主題很好,我決定單獨寫一篇文章討論這件事情


首先,我很推薦新手前端也去學一點後端,這樣對整體概念會更清楚

這位網友提到的 node.js 很不錯,但是我更推薦去學 php,簡單幾個原因說明如下

無框架開發

常見的後端語言,在寫網站時,都需要套件&框架才能開發

  • python 需要 django
  • ruby 需要 rails
  • java 需要 spring
  • node 需要 express

我建議你直接寫 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 一點,這樣

以上,簡單分享,希望對類似狀況的朋友有幫助!

按讚的人:

共有 0 則留言