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

看板Soft_Job作者 (迅雷不及掩耳盜鈴)時間2年前 (2022/01/12 01:13), 2年前編輯推噓5(6194)
留言101則, 10人參與, 2年前最新討論串2/3 (看更多)
: → 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

01/12 01:19, 2年前 , 1F
從實作角度來看這跟偵測檔案產出程式碼沒啥差距吧
01/12 01:19, 1F

01/12 01:21, 2年前 , 2F
偵測socket產生HTML?
01/12 01:21, 2F
這種東西如果要說到 socket 就又扯遠了,我想以常人看到那句「 偵測檔案變化」所想到的要嘛是檔案內容或相關資訊變動而做出行 為,在這層面上來說不會想到是 socket。 以常見的架構來說,是 後端根據客戶端發送請求時夾帶的資料,在控制層裡依照需求去與 資料庫交互,獲取到資料後再放入,交由模板引擎產出 HTML。 另外這跟他扯到的 JS 框架很多也是這樣是兩回事,這也是為什麼 尤雨溪那篇對於提問者將東西混為一談很有意見,畢竟「前端框架 」和「模板引擎」是兩個概念,不論理念、實踐跟功能上都是完全 不一樣的東西。

01/12 01:21, 2年前 , 3F
我上次說的是wine測試成果不大 一堆dll跟我說100%有
01/12 01:21, 3F

01/12 01:21, 2年前 , 4F
什麼用 有時候還是得用native dll
01/12 01:21, 4F
雖然跟這個主題沒什麼關聯,但你上次的說法是「 Wine 開發者為何 不考慮一下自動化測試」,而不是測試成果不大,是我提了之後你才 改口的。

01/12 01:24, 2年前 , 5F
至於模板引擎很多實現都有輸出 要不要弄成檔案的差異
01/12 01:24, 5F

01/12 01:25, 2年前 , 6F
跟我講沒有產生...
01/12 01:25, 6F

01/12 01:25, 2年前 , 7F
那篇我給的建議就是繼續不純軟 我到底在亂什麼?
01/12 01:25, 7F

01/12 01:28, 2年前 , 8F
還嘴前後端不分離? 就你一個人知道? haha
01/12 01:28, 8F
沒嘴呀。模板引擎在早些年前後端不分離的架構下扮演著重要角色。 我覺得算是大家都知道的東西啦。生成程式碼或生成文件不是我要說 你的謬誤點,你的謬誤點是偵測檔案變化好嗎?

01/12 01:32, 2年前 , 9F
我也希望有人看不懂就不要在那邊五四三 的確沒有高深
01/12 01:32, 9F

01/12 01:32, 2年前 , 10F
只是你測不到 你還是繼續覺得你的理解才是對的最好
01/12 01:32, 10F

01/12 01:39, 2年前 , 11F
當然如果你繼續覺得最終html才是產出我也不反對
01/12 01:39, 11F

01/12 01:51, 2年前 , 12F
那個結果你跟我說是自動化測試結果... 後來有解釋了
01/12 01:51, 12F

01/12 01:52, 2年前 , 13F
這叫什麼自動化測試? 當然也知道他有測試 怎麼測而
01/12 01:52, 13F
所以一來你沒搞清楚自動化測試是什麼,二來根本連我貼了網址也沒 回去認真看嘛! https://wiki.winehq.org/Conformance_Tests 當初 Wine 的開發團隊為了進行自動化測試,建構了一組單元測試並 打包成每日更新的執行檔,讓世界各地的使用者可以運行之後獲得每 日的測試報告,不知道花費了多少心力。 另外自動化測試可以是白盒測試、黑盒測試也可以是混合的灰盒測試 ,並不是黑盒測試就不會是自動化測試。

01/12 01:53, 2年前 , 14F
已 前後端不分離可以用模板 分離也可以用模板
01/12 01:53, 14F

01/12 01:54, 2年前 , 15F
很多js的server本來就會根據檔案改變更新 這不是因應
01/12 01:54, 15F

01/12 01:55, 2年前 , 16F
變化是什麼?
01/12 01:55, 16F

01/12 02:03, 2年前 , 17F
前端框架有含模板 這麼一說php有cache起來就不算模板
01/12 02:03, 17F

01/12 02:03, 2年前 , 18F
摟? XD 到底是誰講得很高深
01/12 02:03, 18F
我不確定你有沒有帶過新人啦,但你這樣的敘述方式我真希望希望 沒有……不知道你說的 PHP 有 cache 起來究竟是指些什麼。如果 是指像是 Smart這樣的模板引擎的快取機制,他也是會先經過上述 將資料與模板進行合併產出 HTML 文件的過程,那是 Smart提供的 而不是 PHP 提供的。 另外前端框架比如 Vue 有提供元件樣板(template) ,但那與像 是 Jinja2 這類的模板引擎並不相同,上面尤大大那篇回答我真的 建議您可以看一下。

01/12 02:06, 2年前 , 19F
我說的自動化測試是智能測試 因應那個主題的智能 雞
01/12 02:06, 19F

01/12 02:06, 2年前 , 20F
蛋挑骨頭
01/12 02:06, 20F

01/12 02:09, 2年前 , 21F
根本牛頭不對馬嘴再來嘴別人不懂
01/12 02:09, 21F
自動化測試就自動化測試,智能測試又是什麼辣><

01/12 02:18, 2年前 , 22F
沒帶過新人也不適合帶人 你管我怎麼論述 一定得要有
01/12 02:18, 22F

01/12 02:19, 2年前 , 23F
專業的區隔感才可以嗎?
01/12 02:19, 23F
這不是專業的區隔感,是描述問題的精確性,你如果做了很多並不 那麼精確的描述,而且這不是為了比喻所以才用白話敘述,甚至說 了些似是而非的東西,那只是「竹篙湊菜刀」而已。

01/12 02:20, 2年前 , 24F
你只是自動而非智能 不然也不用人回報問題
01/12 02:20, 24F

01/12 02:24, 2年前 , 25F
說說的cache肯定是php的 而且框架本來就很多組件 這
01/12 02:24, 25F

01/12 02:24, 2年前 , 26F
不是藍加黃必須命名為綠的問題
01/12 02:24, 26F

01/12 02:24, 2年前 , 27F
紅明顯 你們兩個人一起定義並給出一個模板引擎的語法後
01/12 02:24, 27F

01/12 02:24, 2年前 , 28F
然後同時開個 GitHub repo 提交實作 看誰做得出來好
01/12 02:24, 28F

01/12 02:24, 2年前 , 29F
了 這是我在知乎看到人家吵架的時候的解法 只是給個建
01/12 02:24, 29F

01/12 02:24, 2年前 , 30F
議 以和為貴喔
01/12 02:24, 30F
這我是沒問題啦。另外如果你對於我上面的內容和我的說法有什麼 問題也可以提出來呀,我會這樣說是因為在我認知和所接收到的資 訊(比如上面 Evan You 的說法)中,大多數人在這樣情境下談及 的模板引擎並不是他所說的那樣。 如果他本身傳遞的內容就是錯誤的,這樣的狀況和你說的知乎上那 件事是不同的。

01/12 02:26, 2年前 , 31F
我已經描述的很準確了 如果要挑準確性 這個版很多都
01/12 02:26, 31F
還有 35 則推文
還有 5 段內文
01/12 21:03, 2年前 , 67F
還是會懂 我什麼時候跟他談底層? 請你告訴我
01/12 21:03, 67F

01/12 21:05, 2年前 , 68F
反應過激還怕人說阿 明顯不針對人 你在那邊自以為眼
01/12 21:05, 68F

01/12 21:05, 2年前 , 69F
尖做出來的反應不是反應過激是什麼 另一個詞講就是腦
01/12 21:05, 69F

01/12 21:08, 2年前 , 70F
補 傳遞什麼錯誤知識? 我主要傳遞的是web技術並沒高
01/12 21:08, 70F

01/12 21:09, 2年前 , 71F
深 你還探討別人是不是推論錯誤 然後嘴又很臭 我是在
01/12 21:09, 71F

01/12 21:10, 2年前 , 72F
做學問?
01/12 21:10, 72F
我是覺得 Web技術很高深啦!當然上述的內容在使用上看起來可 能是很淺顯的,但要發展到今天的規模和支持這麼多的項目,中 間一定有很多細節。我沒有自以為眼尖,只看到有人穿鑿附會東 拼西湊,在資訊科學領域裡面,我們都不應該頻頻「舉燭」:(

01/12 21:17, 2年前 , 73F
至於工具 有很多人都做的出來 自己做工具不用考慮與
01/12 21:17, 73F

01/12 21:18, 2年前 , 74F
別人經驗差距 也不一定得要協同做出 要做出好用差不
01/12 21:18, 74F

01/12 21:18, 2年前 , 75F
多的不難
01/12 21:18, 75F

01/12 21:22, 2年前 , 76F
上層工具做的出來是神 下到上都做的出來不就是上帝..
01/12 21:22, 76F

01/12 21:23, 2年前 , 77F
我肯定不是神 因為神不神不是我定義的 也是做不到很
01/12 21:23, 77F

01/12 21:23, 2年前 , 78F
多事情
01/12 21:23, 78F
這邊我就不知道你在說什麼了,但好像聽起來還是很厲害的樣子 。您一定很厲害的,什麼東西都瞧不上,什麼東西又都能說一說 ,至少比我厲害的多了,在我眼中真的很神 :)

01/13 18:42, 2年前 , 79F
"如上篇所說我不覺得這是什麼了不得的技術" 上篇我說
01/13 18:42, 79F

01/13 18:44, 2年前 , 80F
的是web技術而不是刷題技術 不用聯想在一起 XD
01/13 18:44, 80F

01/13 18:48, 2年前 , 81F
我不愛分享所以不用談這個 XD 至於web我看法不同 其
01/13 18:48, 81F

01/13 18:49, 2年前 , 82F
實不高深 很多細節本身也只是為了隱藏實作方式而已
01/13 18:49, 82F

01/13 18:50, 2年前 , 83F
並不是很重要 你沒有眼尖會看到別人說的隻言片語反應
01/13 18:50, 83F

01/13 18:52, 2年前 , 84F
這麼大? 穿鑿附會? 本身就有影響的附會什麼? 我在做
01/13 18:52, 84F

01/13 18:53, 2年前 , 85F
"專"題? 這個版是軟工不是資料科學研究
01/13 18:53, 85F
抱歉,我覺得都是很了不得的技術,是有很多前人鋪好了路把很 多東西抽象了才能讓你這樣拼湊 API就覺得好像完成了全世界。 我不知道為什麼你感覺什麼東西都能夠瞧不上眼,您如果覺得你 說的熱啟動對於現今的模板引擎有重大影響,您倒是說說呀!讓 人長長見識開開眼界,而不是噴了一句閃人又補一句說自己不愛 分享就作罷呀。 對了,我上面說的是資訊科學不是資料科學。我很期待跟您討論 技術,畢竟我覺得這些東西就像汪洋的大海,我只是在旁邊撿著 石頭的小孩子而已:) 如果能夠得到您的指教那一定可以讓我成 長很多的吧!

01/13 18:55, 2年前 , 86F
最後面那個我在說什麼? 回應你嘴臭酸人的說法 說自己
01/13 18:55, 86F

01/13 18:57, 2年前 , 87F
不是大神 沒有瞧不上 只是在說事實
01/13 18:57, 87F

01/13 19:00, 2年前 , 88F
不需要膜拜技術 把技術看很高 掌握技術才是真的 XD
01/13 19:00, 88F
怎樣才算是掌握技術呢?好想知道認為這些技術都不是什麼大不 了的東西的大大跟我分享><

01/14 08:07, 2年前 , 89F
我忘記s大有沒有抱怨台灣找不到好工作 只記得s大不刷題
01/14 08:07, 89F
※ 編輯: Hsins (111.71.215.8 臺灣), 01/14/2022 14:09:16

01/14 23:12, 2年前 , 90F
你是不是覺得別人只會拼湊api? XD 不是瞧不上 是太多
01/14 23:12, 90F

01/14 23:13, 2年前 , 91F
浪費時間的技術 計算機本來就是要方便 你要我說我就
01/14 23:13, 91F

01/14 23:14, 2年前 , 92F
說? 本來就是發表看法不然呢 你自己先把你之前推文
01/14 23:14, 92F

01/14 23:14, 2年前 , 93F
發表的看法詳細解釋再說 原來以上只有一句...
01/14 23:14, 93F

01/14 23:16, 2年前 , 94F
當然在你這位大佬口中說資料科學就low掉了 這是人造
01/14 23:16, 94F

01/14 23:17, 2年前 , 95F
海洋 你都可以噴人了怎麼會是小孩呢? 肯定是大人 要
01/14 23:17, 95F

01/14 23:18, 2年前 , 96F
管東管西才能心情舒坦 我在指你只是在膜拜技術 你會
01/14 23:18, 96F

01/14 23:19, 2年前 , 97F
創造不就證明你不是一無所獲了 當然我不知道你能不能
01/14 23:19, 97F

01/14 23:20, 2年前 , 98F
本人被你噴的一無是處才要靜聽觀摩你的高見
01/14 23:20, 98F

01/14 23:24, 2年前 , 99F
我不是抱怨台灣找不到好工作 是台灣好工作真的少 以
01/14 23:24, 99F

01/14 23:25, 2年前 , 100F
我的level當然不如樓主這麼有行情 深入了解別人的工
01/14 23:25, 100F

01/14 23:26, 2年前 , 101F
程運作原理
01/14 23:26, 101F
文章代碼(AID): #1XtRh5jE (Soft_Job)
文章代碼(AID): #1XtRh5jE (Soft_Job)