<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>EnriqueMark | 思考與隨筆</title><description>我始終認為，文章是思想的記錄，也是思考的緩存。</description><link>https://enriquemark.com/</link><language>zh-Hant</language><item><title>AI 時代的招聘與範式轉換</title><link>https://enriquemark.com/zh-hant/posts/AI%20%E6%97%B6%E4%BB%A3%E7%9A%84%E6%8B%9B%E8%81%98%E4%B8%8E%E8%8C%83%E5%BC%8F%E8%BD%AC%E6%8D%A2/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/AI%20%E6%97%B6%E4%BB%A3%E7%9A%84%E6%8B%9B%E8%81%98%E4%B8%8E%E8%8C%83%E5%BC%8F%E8%BD%AC%E6%8D%A2/</guid><description>有一點說法我覺得是沒錯的，那就是未來，尤其是現在的 AI 時代，招聘的整個方式和體系都一定會逐漸改變。因為所謂的古法程式設計，它帶來的收益會越來越低...</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>關於Bun在全量重構中的經驗</title><link>https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8EBun%E5%9C%A8%E5%85%A8%E9%87%8F%E9%87%8D%E6%9E%84%E4%B8%AD%E7%9A%84%E7%BB%8F%E9%AA%8C/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8EBun%E5%9C%A8%E5%85%A8%E9%87%8F%E9%87%8D%E6%9E%84%E4%B8%AD%E7%9A%84%E7%BB%8F%E9%AA%8C/</guid><description>我之前提到過 基於過程的質量控制 ，其實從 How Anthropic runs large-scale code migrations with Claude Code | Claude by...</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>關於程式碼閱讀</title><link>https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8E%E4%BB%A3%E7%A0%81%E9%98%85%E8%AF%BB/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8E%E4%BB%A3%E7%A0%81%E9%98%85%E8%AF%BB/</guid><description>談一下我自己對於「到底要不要看程式碼」的看法吧。 其實對我來講，我是主張「不要一行一行去讀程式碼」的立場的，這點在基於過程的質量控制裡面就談到過...</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>rust 概念</title><link>https://enriquemark.com/zh-hant/posts/rust%20%E6%A6%82%E5%BF%B5/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/rust%20%E6%A6%82%E5%BF%B5/</guid><description>rust本身比較有意思的地方是，他是一個強型別-記憶體安全的語言，所以說很多東西都會規定的很死，通過一定的動態犧牲，帶來了較大的安全性和穩健性...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>rust在ai開發中的優勢</title><link>https://enriquemark.com/zh-hant/posts/rust%E5%9C%A8ai%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E4%BC%98%E5%8A%BF/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/rust%E5%9C%A8ai%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E4%BC%98%E5%8A%BF/</guid><description>我最近一直在想rust的特性，這種強編譯時驗證的語言可以把大部分潛在問題都攔截在編譯期，意味著哪怕不寫測試，它只要寫出來天然就是一個自帶測試的語言，這種高度可驗證的特性讓其非常適合 ai 時代...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>分散式系統</title><link>https://enriquemark.com/zh-hant/posts/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/</guid><description>分散式的關鍵問題在於使系統在運作中逐漸收斂到一致，核心有三個因素：設定的預期校準點、觀測、誤差。我們希望的是縮小貫徹和校準點之間的誤差，因此每次測量後就可以得到應該修正的方向，然後不斷迭代收斂...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>單一職責</title><link>https://enriquemark.com/zh-hant/posts/%E5%8D%95%E4%B8%80%E8%81%8C%E8%B4%A3/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%8D%95%E4%B8%80%E8%81%8C%E8%B4%A3/</guid><description>我對單一職責（SRP）的啟發式理解是「能單測，沒有副作用，一個函式只做一件事」，當然我知道這不完全嚴謹。但作為快速判斷我覺得是好的。 能單測...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>基於過程的質量控制</title><link>https://enriquemark.com/zh-hant/posts/%E5%9F%BA%E4%BA%8E%E8%BF%87%E7%A8%8B%E7%9A%84%E8%B4%A8%E9%87%8F%E6%8E%A7%E5%88%B6/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%9F%BA%E4%BA%8E%E8%BF%87%E7%A8%8B%E7%9A%84%E8%B4%A8%E9%87%8F%E6%8E%A7%E5%88%B6/</guid><description>我現在越來越認為， Agent take 開發需要依賴於一套足夠的質量控制過程來保證。這就像製造業中的 QA 一樣，對關鍵部位進行抽樣，或者是對整個流程控制進行管控...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>複雜性與軟體設計</title><link>https://enriquemark.com/zh-hant/posts/%E5%A4%8D%E6%9D%82%E6%80%A7%E4%B8%8E%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%A4%8D%E6%9D%82%E6%80%A7%E4%B8%8E%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/</guid><description>將複雜軟體設計類比到生物上，確實極有啟發性。尤其是複雜系統的自組織原則——既然對於一個大型的生物系統來說，它可以在不需要掌握全局資訊的情況下就運作良好...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>非同步行為與局部資訊</title><link>https://enriquemark.com/zh-hant/posts/%E5%BC%82%E6%AD%A5%E8%A1%8C%E4%B8%BA%E4%B8%8E%E5%B1%80%E9%83%A8%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%BC%82%E6%AD%A5%E8%A1%8C%E4%B8%BA%E4%B8%8E%E5%B1%80%E9%83%A8%E4%BF%A1%E6%81%AF/</guid><description>level-triggered 跟 edge-triggered 的區分還挺有意思的，這是非同步I/O中的重要概念，指的就是觸發的模式...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>模組化和包管理</title><link>https://enriquemark.com/zh-hant/posts/%E6%A8%A1%E5%9D%97%E5%8C%96%E5%92%8C%E5%8C%85%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E6%A8%A1%E5%9D%97%E5%8C%96%E5%92%8C%E5%8C%85%E7%AE%A1%E7%90%86/</guid><description>pnpm workspace 是個很有意思的用法，可以把各個子目錄正式化為統一管理的程式模組，讓各個模組存在轉為可以通過 @xxx/xxx 形式引入的包...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>FROM、CTE和APPLY</title><link>https://enriquemark.com/zh-hant/posts/FROM%E3%80%81CTE%E5%92%8CAPPLY/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/FROM%E3%80%81CTE%E5%92%8CAPPLY/</guid><description>FROM 的主表一般就是左表，而 LEFT JOIN本質上就是取左表+兩表交集的部分，剩下的右表未交集部分則直接為null；而INNER JOIN則是直接取交集，兩表都有的才返回...</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>作為工程的 AI Coding</title><link>https://enriquemark.com/zh-hant/posts/%E4%BD%9C%E4%B8%BA%E5%B7%A5%E7%A8%8B%E7%9A%84%20AI%20Coding/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E4%BD%9C%E4%B8%BA%E5%B7%A5%E7%A8%8B%E7%9A%84%20AI%20Coding/</guid><description>Andrej Karpathy: From Vibe Coding to Agentic Engineering w/ Stephanie Zhan - YouTube Stop Prompting...</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>品味和審美</title><link>https://enriquemark.com/zh-hant/posts/%E5%93%81%E5%91%B3%E5%92%8C%E5%AE%A1%E7%BE%8E/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%93%81%E5%91%B3%E5%92%8C%E5%AE%A1%E7%BE%8E/</guid><description>在Al時代，每個程式設計師都活成了自己最討厭的那種team leader: 1.半年不寫一行程式碼，程式設計能力嚴重退化，還自詡「我也是搞技術的」 2.開會的時候把一線開發乾的活全說成是自己的功勞...</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>過度抽象</title><link>https://enriquemark.com/zh-hant/posts/%E9%81%8E%E5%BA%A6%E6%8A%BD%E8%B1%A1/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E9%81%8E%E5%BA%A6%E6%8A%BD%E8%B1%A1/</guid><description>抽象是好的，這沒錯，能隱藏複雜實現背後的細節，而只將結果暴露出來——但這一切是有代價的。對於使用者來説，一般情況下我們希望達到的結果是方便和便捷，不需要理解背後的一切即可用一個呼叫解決問題...</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>LINQ</title><link>https://enriquemark.com/zh-hant/posts/LINQ/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/LINQ/</guid><description>這個有點意思，叫做「語言整合查詢」（Language Integrated Query），可以在C#裡用類似sql的查詢方法，只要是列舉類都可以用這個...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Observable的pipe</title><link>https://enriquemark.com/zh-hant/posts/Observable%E7%9A%84pipe/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/Observable%E7%9A%84pipe/</guid><description>這就像一個中間截流管，可以説是Observable的中介軟體。裡面預定義了一些RxJS的處理方法，可以讓我們對返回的結果進行截留，然後按我的要求進行一個預處理...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Signal狀態和Form</title><link>https://enriquemark.com/zh-hant/posts/Signal%E7%8B%80%E6%85%8B%E5%92%8CForm/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/Signal%E7%8B%80%E6%85%8B%E5%92%8CForm/</guid><description>Angular有一個地方和React不太一樣，這裡的屬性變動本身就會觸發重新渲染，在React那邊就必須要狀態。而另一個方面則是這裡的服務函式，這個是全局單例，所有元件共享狀態...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>SimpleChanges</title><link>https://enriquemark.com/zh-hant/posts/SimpleChanges/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/SimpleChanges/</guid><description>這是一個專門用來記錄子元件Input變化的類，一般是和ngOnChanges搭配，作為元素傳入方法內。裡面是巢狀的鍵值對，分別是屬性名：SimpleChange（注意少了個s），下面是結構...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Subject、Observable和Observer</title><link>https://enriquemark.com/zh-hant/posts/Subject%E3%80%81Observable%E5%92%8CObserver/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/Subject%E3%80%81Observable%E5%92%8CObserver/</guid><description>Observable的pipe那裡説到了供水，但那邊只是被動的供水——如果我想要中間往裡面加水並讓所有吃水者都喝上新的水呢？比如從地下水換成山泉水，帶有甘甜的滋味（嗯......）...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>上下文管理</title><link>https://enriquemark.com/zh-hant/posts/%E4%B8%8A%E4%B8%8B%E6%96%87%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E4%B8%8A%E4%B8%8B%E6%96%87%E7%AE%A1%E7%90%86/</guid><description>通過漸進披露的模式把入口文件作為目錄，然後不斷建立分層索引的模式來進行逐漸的展現。就像OpenAI這篇文章説的一樣，AGENTS.md/CLAUDE.md應該是一份地圖，而不是全面的手冊...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>全端與跨領域的學習科學</title><link>https://enriquemark.com/zh-hant/posts/%E5%85%A8%E7%AB%AF%E8%88%87%E8%B7%A8%E9%A0%98%E5%9F%9F%E7%9A%84%E5%AD%B8%E7%BF%92%E7%A7%91%E5%AD%B8/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%85%A8%E7%AB%AF%E8%88%87%E8%B7%A8%E9%A0%98%E5%9F%9F%E7%9A%84%E5%AD%B8%E7%BF%92%E7%A7%91%E5%AD%B8/</guid><description>我最近確實是發現了，全端開發確實能讓人洞察到更多東西，尤其是那些前端和後端分別不同的坑和雷點。前端的bug有時候純粹是後端背鍋，比如出錯了卻只説出錯，而完全不提為什麼出錯，導致前端除錯除的寸步難行...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>反射</title><link>https://enriquemark.com/zh-hant/posts/%E5%8F%8D%E5%B0%84/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%8F%8D%E5%B0%84/</guid><description>反射在有些地方看上去有點像是委託，但兩者的差異還是蠻大的。委託的關鍵是編譯器安全，而反射則是犧牲了編譯時的安全檢查，而帶來了執行時的靈活性：它通過字串來呼叫或取到指定的物件...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>響應式表單</title><link>https://enriquemark.com/zh-hant/posts/%E5%93%8D%E5%BA%94%E5%BC%8F%E8%A1%A8%E5%8D%95/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%93%8D%E5%BA%94%E5%BC%8F%E8%A1%A8%E5%8D%95/</guid><description>angular的設計原則和react最大的差別是，後者基本是state就是一切，但前者會把各種功能包裝好，signal雖然很像state，但實踐中似乎很少直接操作signal...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>坑</title><link>https://enriquemark.com/zh-hant/posts/%E5%9D%91/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%9D%91/</guid><description>這裡有個坑，這倆是不能並用的，響應式表單內如果要單獨加ngModel，就必須給他加上單獨模式。因為響應式表單本身就自帶雙向繫結，都加的話就會衝突...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>委託</title><link>https://enriquemark.com/zh-hant/posts/%E5%A7%94%E6%89%98/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%A7%94%E6%89%98/</guid><description>C#的委託，事實上在DI裡面就已經在用了。假設我定義了一個func型別，叫A，然後在下面A()，這裡雖然我沒顯示寫delegete關鍵字，這就已經是委託了...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>控制反轉</title><link>https://enriquemark.com/zh-hant/posts/%E6%8E%A7%E5%88%B6%E5%8F%8D%E8%BD%89/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E6%8E%A7%E5%88%B6%E5%8F%8D%E8%BD%89/</guid><description>不懂ioc只會把DI用成臃腫的工廠模式——比如XML,JSON,TXT的格式轉換，在裡面new了一堆內容，並用列舉switch來判斷——但完全可以ioc，定義一個泛型，讓外部給入...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>資料導向型的模組設計</title><link>https://enriquemark.com/zh-hant/posts/%E6%95%B8%E6%93%9A%E5%B0%8E%E5%90%91%E5%9E%8B%E7%9A%84%E6%A8%A1%E5%A1%8A%E8%A8%AD%E8%A8%88/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E6%95%B8%E6%93%9A%E5%B0%8E%E5%90%91%E5%9E%8B%E7%9A%84%E6%A8%A1%E5%A1%8A%E8%A8%AD%E8%A8%88/</guid><description>我現在發現，與其將各種狀態都耦合在程式碼內部，不如用資料庫做統一的、共用的持久狀態管理。這樣各個功能模組彼此之間就可以去耦合，而以模組——抽象的單位積木——為存在彼此只關注資料...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>服務</title><link>https://enriquemark.com/zh-hant/posts/%E6%9C%8D%E5%8B%99/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E6%9C%8D%E5%8B%99/</guid><description>Angular 的這個 Service 看上去用法跟 Hook 是很像的。不過它們最大的差別就是：React 裡的 Hook 只能在元件裡面共享狀態...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>父子元件傳參</title><link>https://enriquemark.com/zh-hant/posts/%E7%88%B6%E5%AD%90%E7%B5%84%E4%BB%B6%E5%82%B3%E5%8F%83/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%88%B6%E5%AD%90%E7%B5%84%E4%BB%B6%E5%82%B3%E5%8F%83/</guid><description>angular確實是把訂閱者-接收者貫徹始終，包括子傳父在內也是利用了Observable的機制，子層發布一個事件，而父層則訂閲這個事件，等待其觸發後來執行相應的回調...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>絞殺榕模式</title><link>https://enriquemark.com/zh-hant/posts/%E7%B5%9E%E6%AE%BA%E6%A6%95%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%B5%9E%E6%AE%BA%E6%A6%95%E6%A8%A1%E5%BC%8F/</guid><description>Strangler Fig 是一種寄生植物，會逐漸纏繞並吸取宿主的營養，最終讓宿主枯萎，自己蓬勃生長取而代之，謂之「絞殺」...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>約束工程</title><link>https://enriquemark.com/zh-hant/posts/%E7%BA%A6%E6%9D%9F%E5%B7%A5%E7%A8%8B/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%BA%A6%E6%9D%9F%E5%B7%A5%E7%A8%8B/</guid><description>約束（Harness，或者說韁繩、馬鞍，限制馬的工具）工程，是個很有意思的概念，看上去更像是上下文工程的延申——核心的關鍵是把對agent的上下文約束，進展到整個環境約束...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>裝飾器</title><link>https://enriquemark.com/zh-hant/posts/%E8%A3%85%E9%A5%B0%E5%99%A8/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E8%A3%85%E9%A5%B0%E5%99%A8/</guid><description>ts這個裝飾器從本質上來說仍然是一個高階函式，和py的裝飾器在使用場景上是差不多的：當我需要給某個物件進行一個「包裝」，但又不想整個重寫這個原有的方法時，那我就要用裝飾器...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>雙向繫結回歸單向</title><link>https://enriquemark.com/zh-hant/posts/%E9%9B%99%E5%90%91%E7%B6%81%E5%AE%9A%E5%9B%9E%E6%AD%B8%E5%96%AE%E5%90%91/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E9%9B%99%E5%90%91%E7%B6%81%E5%AE%9A%E5%9B%9E%E6%AD%B8%E5%96%AE%E5%90%91/</guid><description>雙向繫結的模板寫法，在Angular裡其實算是個一次性的語法糖，本質上就是一次性繫結資料，資料變動觸發事件回調並更新的操作，給全部封裝在了一起，那就是預設的香蕉盒子寫法。 而這個當然是可以自主控制的...</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>CRTP</title><link>https://enriquemark.com/zh-hant/posts/CRTP/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/CRTP/</guid><description>CRTP是個很有意思的東西，全稱是泛型基類（Curiously Recurring Template Pattern），也就是限定子類輸入型別的基類...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>DI</title><link>https://enriquemark.com/zh-hant/posts/DI/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/DI/</guid><description>DI的核心點就是定義結構，而這個一般有兩種用法 介面 interface 抽象類 abstract class 核心的關鍵是DI容器需要知道自己處理物件的結構體，這樣才能進行後續處置...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>MVC和MVVM</title><link>https://enriquemark.com/zh-hant/posts/MVC%E5%92%8CMVVM/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/MVC%E5%92%8CMVVM/</guid><description>這倆最大的區別其實就是後者多了一個響應式的現代前端框架——以前是控制器去控制頁面更新，完全要手操，但現在只要資料變更，框架自動接管，這就是響應式更新...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>ai時代的學習</title><link>https://enriquemark.com/zh-hant/posts/ai%E6%97%B6%E4%BB%A3%E7%9A%84%E5%AD%A6%E4%B9%A0/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/ai%E6%97%B6%E4%BB%A3%E7%9A%84%E5%AD%A6%E4%B9%A0/</guid><description>A家的最新研究其實已經證明了我之前的想法，尤其是跟學習科學結合在一起，我們就會發現：學習新東西的確需要一些「有效的困難」。如果你完全一帆風順，說明這個東西可能不在學習區，或者說你根本沒在學習...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>plan 和 sdd 的場景</title><link>https://enriquemark.com/zh-hant/posts/plan%20%E5%92%8C%20sdd%20%E7%9A%84%E5%9C%BA%E6%99%AF/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/plan%20%E5%92%8C%20sdd%20%E7%9A%84%E5%9C%BA%E6%99%AF/</guid><description>plan 和 sdd 適合的場景是： 你知道該做什麼 或者你相信 AI 會做什麼 用akr的話來說的話，就是這種提前決定好情況和流程的ai使用，最適合情況已知而且非常成熟的情況下來做...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>上下文的憲法結構</title><link>https://enriquemark.com/zh-hant/posts/%E4%B8%8A%E4%B8%8B%E6%96%87%E7%9A%84%E5%AE%AA%E6%B3%95%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E4%B8%8A%E4%B8%8B%E6%96%87%E7%9A%84%E5%AE%AA%E6%B3%95%E7%BB%93%E6%9E%84/</guid><description>這篇研究也挺有意思的，裡面表明，就算是agents.md這樣的上下文檔案，也不總是什麼都往裡面寫就是最好的。這就是典型的上下文汙染問題...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>依賴注入</title><link>https://enriquemark.com/zh-hant/posts/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/</guid><description>依賴注入（DI）真的蠻有意思的，本質上來說就是一種更加抽象的封裝，把整個類變得更加通用化或單純化。比如我需要一個轉換器，比起把那些資料直接寫死在裡面，不如從外面傳入——但這裡還只是資料...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>單例和靜態類</title><link>https://enriquemark.com/zh-hant/posts/%E5%8D%95%E4%BE%8B%E5%92%8C%E9%9D%99%E6%80%81%E7%B1%BB/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%8D%95%E4%BE%8B%E5%92%8C%E9%9D%99%E6%80%81%E7%B1%BB/</guid><description>目前來看靜態建構函式就是比較好的辦法了，單例和基類的操作目前有點用不太到，畢竟也沒什麼共享的變動資料，基類的話，只有一個服務，強行去寫反而有點過度設計...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>工廠模式</title><link>https://enriquemark.com/zh-hant/posts/%E5%B7%A5%E5%BB%A0%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%B7%A5%E5%BB%A0%E6%A8%A1%E5%BC%8F/</guid><description>這個有點意思，本質上也是一種高階函式的運用，即將自己的對外介面暴露為接受一個key和func\&lt;key,V&gt;。這裡的key即是當前func的元素，V是C#型別宣告定義下的輸出型別...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>組合和繼承</title><link>https://enriquemark.com/zh-hant/posts/%E7%B5%84%E5%90%88%E5%92%8C%E7%B9%BC%E6%89%BF/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%B5%84%E5%90%88%E5%92%8C%E7%B9%BC%E6%89%BF/</guid><description>組合優於繼承的關鍵因素是去耦合，或者説，就像積木一樣的模組，而狀態則通過外部因素給入——大部分情況下采用靜態方法就足夠了，但少數情況下可能需要的是一個組合類，下面許多方法共享同樣的狀態——但是...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>組合</title><link>https://enriquemark.com/zh-hant/posts/%E7%BB%84%E5%90%88/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%BB%84%E5%90%88/</guid><description>能用「有一個」描述就用組合，只有「是一個」才用繼承。 我對這句話的理解是，如果彼此之間沒有實際意義上的繼承關係和依賴關係，而只是為了程式碼複用，那麼直接採用組合是最好的方法...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>繼承和約束</title><link>https://enriquemark.com/zh-hant/posts/%E7%BB%A7%E6%89%BF%E5%92%8C%E7%BA%A6%E6%9D%9F/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E7%BB%A7%E6%89%BF%E5%92%8C%E7%BA%A6%E6%9D%9F/</guid><description>這個地方有點意思，那就是繼承和約束，似乎有一點相通的意思，而且說到底，繼承本身也意味著對結構體本身的繼承，本質就是一種約束...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>解耦設計</title><link>https://enriquemark.com/zh-hant/posts/%E8%A7%A3%E8%80%A6%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E8%A7%A3%E8%80%A6%E8%AE%BE%E8%AE%A1/</guid><description>依賴注入這種設計哲學的核心依然是圍繞著一個關鍵詞——解耦。介面簡單，核心複雜。抽象對外暴露的就是簡單，而具體的過程則被封裝在實現之中...</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Serverless的網站部署</title><link>https://enriquemark.com/zh-hant/posts/Serverless%E7%9A%84%E7%BD%91%E7%AB%99%E9%83%A8%E7%BD%B2/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/Serverless%E7%9A%84%E7%BD%91%E7%AB%99%E9%83%A8%E7%BD%B2/</guid><description>響應式頁面主要指的是資料流的響應，但是對於前端的整個頁面展示來講，它其實是靜態網頁。 像現在比較知名的 SPA（單頁面應用），基本上都是靜態頁面...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>TS泛型和extends</title><link>https://enriquemark.com/zh-hant/posts/TS%E6%B3%9B%E5%9E%8B%E5%92%8Cextends/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/TS%E6%B3%9B%E5%9E%8B%E5%92%8Cextends/</guid><description>\&lt;T&gt;泛型物件應該是靜態語言中比較難以理解的一個概念。但就其本質而言，它就像是一個佔位符：通過告訴編譯器這裡未來會有某個型別——它既可以是已有的型別，也可以是自定義的型別...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>TS型別工具函式</title><link>https://enriquemark.com/zh-hant/posts/TS%E7%B1%BB%E5%9E%8B%E5%B7%A5%E5%85%B7%E5%87%BD%E6%95%B0/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/TS%E7%B1%BB%E5%9E%8B%E5%B7%A5%E5%85%B7%E5%87%BD%E6%95%B0/</guid><description>如果要取得某方法返回值的型別，這裡有一個快速的解法。 typeof A指的就是：獲取後面 A 值的型別。前面那個 ReturnType 是 TypeScript 內建的一大堆型別推斷工具之一...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>TS解構賦值</title><link>https://enriquemark.com/zh-hant/posts/TS%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/TS%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/</guid><description>解構賦值一般是對某個物件進行使用的。簡單來說，就是將其中的屬性拆分出來，然後將其賦值給局部變數。這個在函式中，有時會寫成一個不是很好讀的形式，但也是使用比較多的，這裡要記錄一下...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>claude code 的設計</title><link>https://enriquemark.com/zh-hant/posts/claude%20code%20%E7%9A%84%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/claude%20code%20%E7%9A%84%E8%AE%BE%E8%AE%A1/</guid><description>有點意思，claude code用的應該是agent team，而不是單個agent。上層會先梳理需求，然後產生中間 prompt和todo list，最終在將任務分工下去，然後最終匯總...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>關於全棧</title><link>https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8E%E5%85%A8%E6%A0%88/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%85%B3%E4%BA%8E%E5%85%A8%E6%A0%88/</guid><description>確實有一種觀點認為全棧工程師雖然很好，但問題是知識只有廣度而沒有深度，不夠專業化。從某種程度上我其實贊同這一點，但另一方面，我認為這種看法只側重了表象，而忽略了其他核心因素： 存在一個職業叫作架構師...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>後端互動</title><link>https://enriquemark.com/zh-hant/posts/%E5%90%8E%E7%AB%AF%E4%BA%A4%E4%BA%92/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%90%8E%E7%AB%AF%E4%BA%A4%E4%BA%92/</guid><description>我知道洋蔥模型：請求全部進來之後，出去時也會從這裡走一段。 中介軟體的話，用我的理解，有點像是 Python 裡面的 @ 裝飾器。在所有函式被呼叫之前都會先走一遍這裡...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>微服務</title><link>https://enriquemark.com/zh-hant/posts/%E5%BE%AE%E6%9C%8D%E5%8A%A1/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E5%BE%AE%E6%9C%8D%E5%8A%A1/</guid><description>一般的話，微服務之間都有一些相應的微服務框架，其核心點是通過 RPC 通訊進行來回的呼叫。 目前比較成熟的框架有： gRPC 還有阿里家的Apache Dubbo-這個可能更好用...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>正確的使用方法</title><link>https://enriquemark.com/zh-hant/posts/%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/</guid><description>我覺得運用LLM的關鍵點是讓自己跳脫出單純的寫程式碼這樣的固化思維——將自己作為一個規劃任務的主管，或者是微操大師去監察任務，而不是單純的讓自己成為一個局外人...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>記錄</title><link>https://enriquemark.com/zh-hant/posts/%E8%AE%B0%E5%BD%95/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E8%AE%B0%E5%BD%95/</guid><description>當時用agno主要目的就是實現agent功能： 實際上一開始我們的技術方案裡面沒有這個，最早設想的是單純prompt工程加基於ragflow的知識庫 但客戶突然需求變更，提出了更復雜的查詢和儲存需求...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item><item><title>防抖和競態問題</title><link>https://enriquemark.com/zh-hant/posts/%E9%98%B2%E6%8A%96%E5%92%8C%E7%AB%9E%E6%80%81%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://enriquemark.com/zh-hant/posts/%E9%98%B2%E6%8A%96%E5%92%8C%E7%AB%9E%E6%80%81%E9%97%AE%E9%A2%98/</guid><description>防抖很重要，尤其是在前後端有網路IO的情況下，如果使用者每次操作都要往後端發一個請求，那流量費和後端伺服器壓力就會很大。標準處置方法就是加個延遲，使用者在這個時間段內的連續操作...</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>