Re: [請益] 後端精進的方向?
: → 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/Soft_Job/M.1636600658.A.81D
回到這次的主題來。
模板引擎(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方式獲取到的資料渲染到頁面上,但各自的實作略
有差別
至於前後端分離與前後端不分離之間的差異和優缺點我就不多加贅
述了。只希望有些人可以做點功課再來說話,不要人家就已經是煩
惱想要求解了,還在那邊被你亂。
--
從實作角度來看這跟偵測檔案產出程式碼沒啥差距吧
偵測socket產生HTML?
這種東西如果要說到 socket 就又扯遠了,我想以常人看到那句「 偵測檔案變化」所想到的要嘛是檔案內容或相關資訊變動而做出行 為,在這層面上來說不會想到是 socket。 以常見的架構來說,是 後端根據客戶端發送請求時夾帶的資料,在控制層裡依照需求去與 資料庫交互,獲取到資料後再放入,交由模板引擎產出 HTML。 另外這跟他扯到的 JS 框架很多也是這樣是兩回事,這也是為什麼 尤雨溪那篇對於提問者將東西混為一談很有意見,畢竟「前端框架 」和「模板引擎」是兩個概念,不論理念、實踐跟功能上都是完全 不一樣的東西。
我上次說的是wine測試成果不大 一堆dll跟我說100%有
什麼用 有時候還是得用native dll
雖然跟這個主題沒什麼關聯,但你上次的說法是「 Wine 開發者為何 不考慮一下自動化測試」,而不是測試成果不大,是我提了之後你才 改口的。
至於模板引擎很多實現都有輸出 要不要弄成檔案的差異
跟我講沒有產生...
那篇我給的建議就是繼續不純軟 我到底在亂什麼?
還嘴前後端不分離? 就你一個人知道? haha
沒嘴呀。模板引擎在早些年前後端不分離的架構下扮演著重要角色。 我覺得算是大家都知道的東西啦。生成程式碼或生成文件不是我要說 你的謬誤點,你的謬誤點是偵測檔案變化好嗎?
我也希望有人看不懂就不要在那邊五四三 的確沒有高深
只是你測不到 你還是繼續覺得你的理解才是對的最好
當然如果你繼續覺得最終html才是產出我也不反對
那個結果你跟我說是自動化測試結果... 後來有解釋了
這叫什麼自動化測試? 當然也知道他有測試 怎麼測而
所以一來你沒搞清楚自動化測試是什麼,二來根本連我貼了網址也沒 回去認真看嘛!
https://wiki.winehq.org/Conformance_Tests當初 Wine 的開發團隊為了進行自動化測試,建構了一組單元測試並 打包成每日更新的執行檔,讓世界各地的使用者可以運行之後獲得每 日的測試報告,不知道花費了多少心力。 另外自動化測試可以是白盒測試、黑盒測試也可以是混合的灰盒測試 ,並不是黑盒測試就不會是自動化測試。
已 前後端不分離可以用模板 分離也可以用模板
很多js的server本來就會根據檔案改變更新 這不是因應
變化是什麼?
前端框架有含模板 這麼一說php有cache起來就不算模板
摟? XD 到底是誰講得很高深
我不確定你有沒有帶過新人啦,但你這樣的敘述方式我真希望希望 沒有……不知道你說的 PHP 有 cache 起來究竟是指些什麼。如果 是指像是 Smart這樣的模板引擎的快取機制,他也是會先經過上述 將資料與模板進行合併產出 HTML 文件的過程,那是 Smart提供的 而不是 PHP 提供的。 另外前端框架比如 Vue 有提供元件樣板(template) ,但那與像 是 Jinja2 這類的模板引擎並不相同,上面尤大大那篇回答我真的 建議您可以看一下。
我說的自動化測試是智能測試 因應那個主題的智能 雞
蛋挑骨頭
根本牛頭不對馬嘴再來嘴別人不懂
自動化測試就自動化測試,智能測試又是什麼辣><
沒帶過新人也不適合帶人 你管我怎麼論述 一定得要有
專業的區隔感才可以嗎?
這不是專業的區隔感,是描述問題的精確性,你如果做了很多並不 那麼精確的描述,而且這不是為了比喻所以才用白話敘述,甚至說 了些似是而非的東西,那只是「竹篙湊菜刀」而已。
你只是自動而非智能 不然也不用人回報問題
說說的cache肯定是php的 而且框架本來就很多組件 這
不是藍加黃必須命名為綠的問題
紅明顯 你們兩個人一起定義並給出一個模板引擎的語法後
然後同時開個 GitHub repo 提交實作 看誰做得出來好
了 這是我在知乎看到人家吵架的時候的解法 只是給個建
議 以和為貴喔
這我是沒問題啦。另外如果你對於我上面的內容和我的說法有什麼 問題也可以提出來呀,我會這樣說是因為在我認知和所接收到的資 訊(比如上面 Evan You 的說法)中,大多數人在這樣情境下談及 的模板引擎並不是他所說的那樣。 如果他本身傳遞的內容就是錯誤的,這樣的狀況和你說的知乎上那 件事是不同的。
我已經描述的很準確了 如果要挑準確性 這個版很多都
很不準確 你要挑毛病是挑不完的 如樓上所說盡量換位
思考 不口出惡言
我記得當初在知乎的那兩個人是在吵誰比較懂 c 的 prepr
ocessor 跟 lexer
是你接受不了還是這是個錯誤? 強大的模板還是模板
雖然不是很懂你想要表示什麼,但是好像感覺很厲害的樣子:)
你剛剛講過 模板與框架 這是回應
我只記得s大不刷題
請定義一下你們認知的模板==
看一下文啦,我有給出定義。
我確實不刷題 如上篇所說我不覺得這是什麼了不得的技
術 要做都做的出來 比較底層的知識才是寶貴的
至於模板應該是特性符合就是了
刷題或許不是什麼了不得的技術,但他考驗的也是你所謂的底層的 知識:資料結構與演算法。另外這個不太了不得的技術,也不知道 你刷不刷得動呢。
尤雨溪的說法是準確的,詳細來說,任何模板功能的核心都是
string * data -> string
至於延伸的功能怎樣算,就要另外討論了
S大你說的是不是webpack 的hot reload
他是不是只是想說開發時的 autoreload 而已
他的文字表達真的不是很好懂
真的難懂 我覺得S大與其描述自己用的技術做了什麼 不如
直接說自己用什麼技術
是 這很多框架都有 來這邊本來就沒要談什麼技術 本來
就幾句帶過就可以 是有人想要挑骨頭反應過激
其實不只開發 生產都可以用
那推文的重點其實不是這個 只是表達這不是真正有技術
含量的東西
所以推荐該樓樓主最好還是碰底層比較好
原 Po 在文章裡面提及有太多技術都可以實現網站後端,甚至是前 後端可以一起包,對照他說的熟悉 Vue 和 React 的說法,以及謙 稱自己沒有什麼頭緒,我補充了關於框架和模板引擎的部分。 你倒好,扯個似是而非的東西出來,嘴裡說著模板語言現在又成了 熱重載(hat reloading)...... 可能你是名不經傳的大神,這樣 的東西都能隨隨便便「自己碰就能做出差不多的工具」,順帶跟你 提一下好了,不同模板引擎有不同的實作方式,有的甚至自定義了 自己的 BNF規則,並根據該規則解析模板字串來構造抽象語法樹, 最後才是透過抽象語法樹把丟入的資料生成出字串。 我不知道你說的底層是什麼啦,以 Web仔來說去跟網通系統廠工程 師談底層,我是沒什麼臉;至於要解釋成底層知識,我不覺得編譯 設計原理不隸屬於其中。 俗話說哦雞蛋裡撿骨頭找麻煩是因為雞蛋裡不會有骨頭,你是丟了 骨頭進去汙染了雞蛋讓人撿,還怪人反應過激?我還是那句話啦! 傳遞錯誤的知識比藏拙還可惡。
你吃過雞仔蛋嗎
你看得懂那是兩句話嗎 我上篇提的是web技術 而不是刷
題技術 只是純粹陳述事實 你還可以聯想到輕視的意思
刷題有少少底層沒錯 但知識只是冰山一角
那是問句呀,我自己覺得刷題不容易呀!您覺得不是什麼了不得的 技術那您一定信手拈來就在週賽榜上有名了吧:)
熱重載對於現今模板技術中不重要? 如你所說模板可以
有很多方式實現 所以我關心要怎麼實現了?
我很期待您分享一下熱重載對於現今模板技術的重要性,真的!
肯定不是臉的問題 我都不能以web評web摟 我只是陳述
事實web本來就不會高深 也許他會覺得很有趣 但時間久
還是會懂 我什麼時候跟他談底層? 請你告訴我
反應過激還怕人說阿 明顯不針對人 你在那邊自以為眼
尖做出來的反應不是反應過激是什麼 另一個詞講就是腦
補 傳遞什麼錯誤知識? 我主要傳遞的是web技術並沒高
深 你還探討別人是不是推論錯誤 然後嘴又很臭 我是在
做學問?
我是覺得 Web技術很高深啦!當然上述的內容在使用上看起來可 能是很淺顯的,但要發展到今天的規模和支持這麼多的項目,中 間一定有很多細節。我沒有自以為眼尖,只看到有人穿鑿附會東 拼西湊,在資訊科學領域裡面,我們都不應該頻頻「舉燭」:(
至於工具 有很多人都做的出來 自己做工具不用考慮與
別人經驗差距 也不一定得要協同做出 要做出好用差不
多的不難
上層工具做的出來是神 下到上都做的出來不就是上帝..
我肯定不是神 因為神不神不是我定義的 也是做不到很
多事情
這邊我就不知道你在說什麼了,但好像聽起來還是很厲害的樣子 。您一定很厲害的,什麼東西都瞧不上,什麼東西又都能說一說 ,至少比我厲害的多了,在我眼中真的很神 :)
"如上篇所說我不覺得這是什麼了不得的技術" 上篇我說
的是web技術而不是刷題技術 不用聯想在一起 XD
我不愛分享所以不用談這個 XD 至於web我看法不同 其
實不高深 很多細節本身也只是為了隱藏實作方式而已
並不是很重要 你沒有眼尖會看到別人說的隻言片語反應
這麼大? 穿鑿附會? 本身就有影響的附會什麼? 我在做
"專"題? 這個版是軟工不是資料科學研究
抱歉,我覺得都是很了不得的技術,是有很多前人鋪好了路把很 多東西抽象了才能讓你這樣拼湊 API就覺得好像完成了全世界。 我不知道為什麼你感覺什麼東西都能夠瞧不上眼,您如果覺得你 說的熱啟動對於現今的模板引擎有重大影響,您倒是說說呀!讓 人長長見識開開眼界,而不是噴了一句閃人又補一句說自己不愛 分享就作罷呀。 對了,我上面說的是資訊科學不是資料科學。我很期待跟您討論 技術,畢竟我覺得這些東西就像汪洋的大海,我只是在旁邊撿著 石頭的小孩子而已:) 如果能夠得到您的指教那一定可以讓我成 長很多的吧!
最後面那個我在說什麼? 回應你嘴臭酸人的說法 說自己
不是大神 沒有瞧不上 只是在說事實
不需要膜拜技術 把技術看很高 掌握技術才是真的 XD
怎樣才算是掌握技術呢?好想知道認為這些技術都不是什麼大不 了的東西的大大跟我分享><
我忘記s大有沒有抱怨台灣找不到好工作 只記得s大不刷題
你是不是覺得別人只會拼湊api? XD 不是瞧不上 是太多
浪費時間的技術 計算機本來就是要方便 你要我說我就
說? 本來就是發表看法不然呢 你自己先把你之前推文
發表的看法詳細解釋再說 原來以上只有一句...
當然在你這位大佬口中說資料科學就low掉了 這是人造
海洋 你都可以噴人了怎麼會是小孩呢? 肯定是大人 要
管東管西才能心情舒坦 我在指你只是在膜拜技術 你會
創造不就證明你不是一無所獲了 當然我不知道你能不能
本人被你噴的一無是處才要靜聽觀摩你的高見
我不是抱怨台灣找不到好工作 是台灣好工作真的少 以
我的level當然不如樓主這麼有行情 深入了解別人的工
程運作原理
14
如果為了薪水導向,那跟開發語言無關,跟產業有關 每個語言都很好,但根據它的長短處,實務應用的場景各有不同 如果你求的是全端快速開發網站,那 PHP、ROR 等等的成績有目共睹 如果你求的是商業生態系完整,那 .NET、Java 歷史悠久 如果你求的是運行的極速,這幾年 Go、Rust 能見度上升有其道理15
首Po各位好,我先講一下個人背景 目前是竹科系統廠網通工程師,資歷六年,年薪大概80-90 處理的事情大多就是一般系統廠的系統開發、解bug、主要是寫c 碰的東西通常都是Embedded system相關的軟韌體、通訊溝通的介面等等等 工作內容一部分是網頁前端,前端框架是用Backbone.js,後端CGI就是純PHP,
56
Re: [閒聊] 台灣人買房觀念是不是跟世界潮流相反很榮幸這篇文章可以引起大家的熱烈討論 對於有建設性的評論與指教 我都會再仔細思考 至於惡意批評與人身攻擊 我也會自動忽略 畢竟我是來闡述理念 不是來吵架的 但還是想要奉勸一句22
Re: 如果時間倒流重來一次,你/妳還會生小孩嗎?每次看到生不生小孩詢問我都覺得很奇怪 「你的人生還要人家決定?」 你爸媽講話都不會聽了何況陌生人? 這種討論最後只會淪為兩派的爭論,生小孩的說幸福不生小孩的說自由 這跟「吃素 VS 吃葷」「買房 VS 不買房」「結婚 VS 不結婚」25
[分享] 為什麼聊天會想不到該聊什麼話題?原因可能不僅是技術分享原由: 板友R問:「P大你好,想請問該如何克服跟新朋友聊天,不知道該聊什麼的窘境?我發現自 己的問題不是不會聊天,在工作上如果有明確的目的,比如和客戶或廠商聊天,我都知道 該講什麼,講到什麼程度是可以的,和上司的應對進退也還行,可是撇除工作以外,我和 剛認識的朋友,或是稍有好感的異性聊天時,常會覺得不知所措,不知道能夠聊什麼話題6
[閒聊] 想念資工碩,但野心不大。看到大家工作方面一直推電資,所以我也花了時間去了解一下電資在幹嘛。 因為我本身有嚴重疾病,屬於一般雇主看到就不要的那種,所以我這次在想 讀書只求樂趣、知識,以及自我成長,而不是為了薪水,因為我就算考上好 學校,甚至打敗自己文組畢業的缺點順利地從碩班畢業,雇主還是有很大的 概率不要我QAQ~4
Re: [請益] 按照老王三洋開泰四海遊龍操作會很慘吧其實我覺得花錢上課或是訂閱沒什麼問題 本來知識就不一定是免費的 只要那些知識你認為是能夠帶給你更大的效益 就是一個正確的投資 但是當然同樣的知識對不同的人一定有不同的效益5
[閒聊] 關於3080功耗的那檔事要講的其實也不多,因為剛好有可愛的版友提起我想起來就分享一下, Nvidia的人真的該打一下屁股 i9-190900k大概是T800那時代用的核心才對吧?沙拉康納可能都掛了剩他老婆在撐而已 好了不扯遠了,- 最近無聊在github逛街 那邊很多公開的程式碼可以讓人家去學 昨天發現有個東西是dcard圖片瀏覽器 主要就是可以把很多張圖片 弄個好看的排版一起看 我就去看一下code