Re: [請益] 後端精進的方向?

作者: Hsins (翔)   2022-01-12 01:13:38
: → superpandal: 怎麼會有人想不開想要跑過來 這些東西其實你自己碰都 01/12 00:08
: → superpandal: 可以做出差不多的工具出來... 模板語言的話用什麼都 01/12 00:09
: → superpandal: 可以 很多目前看到的不外乎就是偵測檔案變化並生成程 01/12 00:10
: → superpandal: 式碼 還是偏底層比較好 路廣 01/12 00:11
: → superpandal: 可以說都在學怎麼應用這些工具 而不是真正的知識... 01/12 00:17
: → Hsins: 偵測檔案變化生成程式碼聽起來好屌ㄛ,你的模板可能跟大家 01/12 00:23
: → Hsins: 的模板不太一樣欸。 01/12 00:23
: → superpandal: 不然呢js很多框架就是這樣 haha 不然你以為光xml格式 01/12 00:27
: → superpandal: 的語法就可以跑... 01/12 00:27
不是啊,你可不可以不要每次都想要說個好像高深莫測的東西,但
是其實自己不是很理解呀?我覺得傳遞錯誤的知識比藏拙還要更可
惡耶。比如上次在那嘴人家 Wine 不做自動化測試,可是人家明明
付出了超級多的心力在那塊:
https://www.ptt.cc/bbs/Soft_Job/M.1636600658.A.81D.html
回到這次的主題來。
模板引擎(Templating Engines)這種東西雖然沒有什麼學術上明
確的定義,但絕對不是你所謂的「偵測檔案變化並生成程式碼」好
嗎?這邊我借用一下 Vue.js 的作者尤雨溪曾經在一篇回答中所使
用過的敘述:
「嚴格的模板引擎的定義:
輸入模板字串 + 資料,得到渲染過的字串。」
[REF]: https://www.zhihu.com/question/32524504/answer/55812327
或者在絕大多數的狀況下,甚至可以說是將資料(data)和模板(
template)合併然後生成 HTML 文件,再返回給發出 HTTP 請求的
客戶端。這些資料在後端會透過與資料庫進行交互取得,又不是三
十年前,你的資料不是來自於純文字檔案,請問哪裡偵測了檔案變
化?
在早期前後端分離架構還不流行時,這是十分常見的作法,常見的
模板引擎,比如:
- Spring 搭配 JSP, Freemaker, Thymeleaf 等
- Flask 搭配 Jinja2
- Laravel 搭配 Blade
- Django 自己就帶有模板引擎
- Express.js 搭配 Jade, EJS 等
- Rails 搭配 Erb, Haml 等
他們在使用上都很類似,比如以 JSP來說,使用上可能是這樣的
,其中 user 的資料會在 Controller 裡面從資料庫中獲取再帶
入:
<table border="1">
<c:forEach items="${users}" var="user">
<tr>
<td>${user.username}</td>
<td>${user.age}</td>
<td>${user.address}</td>
</tr>
</c:forEach>
</table>
如果使用過前端框架比如 React, Vue, Angular, Svelte之類的,
可能會發現在語法跟概念上有類似的地方,但在本質上是有所不同
的:
1. 模板引擎在後端將資料和模板組成 HTML 並返回給客戶端
2. 前端框架通常是透過轉換成 live DOM 或操作 virtual DOM 來
將透過 AJAX方式獲取到的資料渲染到頁面上,但各自的實作略
有差別
至於前後端分離與前後端不分離之間的差異和優缺點我就不多加贅
述了。只希望有些人可以做點功課再來說話,不要人家就已經是煩
惱想要求解了,還在那邊被你亂。
作者: shomingchang ( )   2022-01-12 01:19:00
從實作角度來看這跟偵測檔案產出程式碼沒啥差距吧偵測socket產生HTML?
作者: superpandal   2022-01-12 01:21:00
我上次說的是wine測試成果不大 一堆dll跟我說100%有什麼用 有時候還是得用native dll至於模板引擎很多實現都有輸出 要不要弄成檔案的差異跟我講沒有產生...那篇我給的建議就是繼續不純軟 我到底在亂什麼?還嘴前後端不分離? 就你一個人知道? haha我也希望有人看不懂就不要在那邊五四三 的確沒有高深只是你測不到 你還是繼續覺得你的理解才是對的最好當然如果你繼續覺得最終html才是產出我也不反對那個結果你跟我說是自動化測試結果... 後來有解釋了這叫什麼自動化測試? 當然也知道他有測試 怎麼測而已 前後端不分離可以用模板 分離也可以用模板很多js的server本來就會根據檔案改變更新 這不是因應變化是什麼?前端框架有含模板 這麼一說php有cache起來就不算模板摟? XD 到底是誰講得很高深我說的自動化測試是智能測試 因應那個主題的智能 雞蛋挑骨頭根本牛頭不對馬嘴再來嘴別人不懂
作者: MoonCode (MoonCode)   2022-01-12 02:24:00
紅明顯 你們兩個人一起定義並給出一個模板引擎的語法後然後同時開個 GitHub repo 提交實作 看誰做得出來好了 這是我在知乎看到人家吵架的時候的解法 只是給個建議 以和為貴喔
作者: superpandal   2022-01-12 02:26:00
我已經描述的很準確了 如果要挑準確性 這個版很多都很不準確 你要挑毛病是挑不完的 如樓上所說盡量換位思考 不口出惡言
作者: MoonCode (MoonCode)   2022-01-12 02:28:00
我記得當初在知乎的那兩個人是在吵誰比較懂 c 的 preprocessor 跟 lexer
作者: superpandal   2022-01-12 02:39:00
是你接受不了還是這是個錯誤? 強大的模板還是模板你剛剛講過 模板與框架 這是回應
作者: tnfshjcc (↖煞气a攜阿攜↘)   2022-01-12 04:15:00
我只記得s大不刷題
作者: Firstshadow (IamCatづミ'_'ミづ)   2022-01-12 05:11:00
請定義一下你們認知的模板==
作者: Hsins (翔)   2022-01-12 08:11:00
看一下文啦,我有給出定義。
作者: superpandal   2022-01-12 08:25:00
我確實不刷題 如上篇所說我不覺得這是什麼了不得的技術 要做都做的出來 比較底層的知識才是寶貴的至於模板應該是特性符合就是了
作者: CRPKT (crpkt)   2022-01-12 11:17:00
尤雨溪的說法是準確的,詳細來說,任何模板功能的核心都是string * data -> string至於延伸的功能怎樣算,就要另外討論了
作者: xxi511 (少北)   2022-01-12 12:19:00
S大你說的是不是webpack 的hot reload
作者: ttss4092 (玉雨霰)   2022-01-12 13:01:00
他是不是只是想說開發時的 autoreload 而已他的文字表達真的不是很好懂
作者: Lomonosov (羅蒙諾索夫院士)   2022-01-12 13:08:00
真的難懂 我覺得S大與其描述自己用的技術做了什麼 不如直接說自己用什麼技術
作者: superpandal   2022-01-12 15:33:00
是 這很多框架都有 來這邊本來就沒要談什麼技術 本來就幾句帶過就可以 是有人想要挑骨頭反應過激其實不只開發 生產都可以用那推文的重點其實不是這個 只是表達這不是真正有技術含量的東西所以推荐該樓樓主最好還是碰底層比較好
作者: MoonCode (MoonCode)   2022-01-12 19:45:00
你吃過雞仔蛋嗎
作者: superpandal   2022-01-12 20:56:00
你看得懂那是兩句話嗎 我上篇提的是web技術 而不是刷題技術 只是純粹陳述事實 你還可以聯想到輕視的意思刷題有少少底層沒錯 但知識只是冰山一角熱重載對於現今模板技術中不重要? 如你所說模板可以有很多方式實現 所以我關心要怎麼實現了?肯定不是臉的問題 我都不能以web評web摟 我只是陳述事實web本來就不會高深 也許他會覺得很有趣 但時間久還是會懂 我什麼時候跟他談底層? 請你告訴我反應過激還怕人說阿 明顯不針對人 你在那邊自以為眼尖做出來的反應不是反應過激是什麼 另一個詞講就是腦補 傳遞什麼錯誤知識? 我主要傳遞的是web技術並沒高深 你還探討別人是不是推論錯誤 然後嘴又很臭 我是在做學問?至於工具 有很多人都做的出來 自己做工具不用考慮與別人經驗差距 也不一定得要協同做出 要做出好用差不多的不難上層工具做的出來是神 下到上都做的出來不就是上帝..我肯定不是神 因為神不神不是我定義的 也是做不到很多事情
作者: tnfshjcc (↖煞气a攜阿攜↘)   2022-01-14 08:07:00
我忘記s大有沒有抱怨台灣找不到好工作 只記得s大不刷題
作者: superpandal   2022-01-14 23:12:00
你是不是覺得別人只會拼湊api? XD 不是瞧不上 是太多浪費時間的技術 計算機本來就是要方便 你要我說我就說? 本來就是發表看法不然呢 你自己先把你之前推文發表的看法詳細解釋再說 原來以上只有一句...當然在你這位大佬口中說資料科學就low掉了 這是人造海洋 你都可以噴人了怎麼會是小孩呢? 肯定是大人 要管東管西才能心情舒坦 我在指你只是在膜拜技術 你會創造不就證明你不是一無所獲了 當然我不知道你能不能本人被你噴的一無是處才要靜聽觀摩你的高見我不是抱怨台灣找不到好工作 是台灣好工作真的少 以我的level當然不如樓主這麼有行情 深入了解別人的工程運作原理

Links booklink

Contact Us: admin [ a t ] ucptt.com