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

看板: soft_job時間: 2022年01月12日作者: Hsins

: → 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方式獲取到的資料渲染到頁面上,但各自的實作略 有差別 至於前後端分離與前後端不分離之間的差異和優缺點我就不多加贅 述了。只希望有些人可以做點功課再來說話,不要人家就已經是煩 惱想要求解了,還在那邊被你亂。 --
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.215.250 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1641921221.A.B4E.html
1Fshomingchang: 從實作角度來看這跟偵測檔案產出程式碼沒啥差距吧 01/12 01:19
2Fshomingchang: 偵測socket產生HTML? 01/12 01:21
這種東西如果要說到 socket 就又扯遠了,以常見的架構來說,是 後端根據客戶端發送請求時夾帶的資料,在控制層裡依照需求去與 資料庫交互,獲取到資料後再放入,交由模板引擎產出 HTML。 另外這跟他扯到的 JS 框架很多也是這樣是兩回事。
3Fsuperpandal: 我上次說的是wine測試成果不大 一堆dll跟我說100%有 01/12 01:21
4Fsuperpandal: 什麼用 有時候還是得用native dll 01/12 01:21
雖然跟這個主題沒什麼關聯,但你上次的說法是「 Wine 開發者為何 不考慮一下自動化測試」,而不是測試成果不大,是我提了之後你才 改口的。
5Fsuperpandal: 至於模板引擎很多實現都有輸出 要不要弄成檔案的差異 01/12 01:24
6Fsuperpandal: 跟我講沒有產生... 01/12 01:25
7Fsuperpandal: 那篇我給的建議就是繼續不純軟 我到底在亂什麼? 01/12 01:25
8Fsuperpandal: 還嘴前後端不分離? 就你一個人知道? haha 01/12 01:28
沒嘴呀。模板引擎在早些年前後端不分離的架構下扮演著重要角色。 我覺得算是大家都知道的東西啦。生成程式碼或生成文件不是我要說 你的謬誤點,你的謬誤點是偵測檔案變化好嗎?
9Fsuperpandal: 我也希望有人看不懂就不要在那邊五四三 的確沒有高深 01/12 01:32
10Fsuperpandal: 只是你測不到 你還是繼續覺得你的理解才是對的最好 01/12 01:32
11Fsuperpandal: 當然如果你繼續覺得最終html才是產出我也不反對 01/12 01:39
※ 編輯: Hsins (111.71.215.250 臺灣), 01/12/2022 01:50:50
12Fsuperpandal: 那個結果你跟我說是自動化測試結果... 後來有解釋了 01/12 01:51
13Fsuperpandal: 這叫什麼自動化測試? 當然也知道他有測試 怎麼測而 01/12 01:52
14Fsuperpandal: 已 前後端不分離可以用模板 分離也可以用模板 01/12 01:53

soft_job熱門文章

29 [請益] 刷leetcode找工作
109 soft_job 2021-12-31 17:00
30 [請益] 面試結果請益
114 soft_job 2021-12-20 09:22
-19 [請益] 熟悉Python大神
41 soft_job 2021-12-19 23:18

全站熱門文章

30 [問題] 輪胎磨耗指示線
58 car 2022-01-11 18:42
45 [問題] CX5/RAV4/CRV選擇
100 car 2022-01-11 18:13
31 [問題] 有好玩的塔防嗎?
53 c_chat 2022-01-11 17:39