<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Jimmy Ho</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>http://jiaming0708.github.io/</id>
  <link href="http://jiaming0708.github.io/" rel="alternate"/>
  <link href="http://jiaming0708.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Jimmy Ho</rights>
  <subtitle>機密檔案</subtitle>
  <title>Secret Note</title>
  <updated>2026-02-10T02:42:55.000Z</updated>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Testing" scheme="http://jiaming0708.github.io/categories/Testing/"/>
    <category term="Testing" scheme="http://jiaming0708.github.io/tags/Testing/"/>
    <category term="Dotnet" scheme="http://jiaming0708.github.io/tags/Dotnet/"/>
    <id>http://jiaming0708.github.io/2026/02/10/relearning-testing-mock-stub-fake/</id>
    <link href="http://jiaming0708.github.io/2026/02/10/relearning-testing-mock-stub-fake/"/>
    <published>2026-02-10T02:42:55.000Z</published>
    <summary>
      <![CDATA[<p>趁著年前有點時間來讀一本放在桌上有段時間的書 <strong>單元測試的藝術 - 以 JavaScript 為例</strong>，裡面講到 Stub&#x2F;Mock&#x2F;Fake 差異的時候沒有很懂，因此重新學習了這三個的含義以及應用情境。</p>]]>
    </summary>
    <title>重新學習單元測試中的 Stub/Mock/Fake</title>
    <updated>2026-02-10T02:42:55.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Frontend" scheme="http://jiaming0708.github.io/categories/Frontend/"/>
    <category term="Frontend" scheme="http://jiaming0708.github.io/tags/Frontend/"/>
    <category term="Thinking" scheme="http://jiaming0708.github.io/tags/Thinking/"/>
    <id>http://jiaming0708.github.io/2026/01/20/component-design-thinking/</id>
    <link href="http://jiaming0708.github.io/2026/01/20/component-design-thinking/"/>
    <published>2026-01-20T05:32:20.000Z</published>
    <summary>
      <![CDATA[<p>一位同事發的 PR 是要調整 Ranking 的 render 邏輯，看完以後覺得可以紀錄一下雙方的思維差異。</p>]]>
    </summary>
    <title>前端元件設計思維探討</title>
    <updated>2026-01-20T05:32:20.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="DevOps" scheme="http://jiaming0708.github.io/categories/DevOps/"/>
    <category term="DevOps" scheme="http://jiaming0708.github.io/tags/DevOps/"/>
    <category term="TFS" scheme="http://jiaming0708.github.io/tags/TFS/"/>
    <id>http://jiaming0708.github.io/2025/12/29/understand-tfs-build-release/</id>
    <link href="http://jiaming0708.github.io/2025/12/29/understand-tfs-build-release/"/>
    <published>2025-12-29T00:48:35.000Z</published>
    <summary>
      <![CDATA[<p>TFS 全名是 Team Foundation Server，可以說是 Azure DevOps Server 的前身，這套是 2005 年上市的距今已經 20 年。<br>在進現在的公司之前，我只有用過 Azure DevOps 耳聞過 TFS，進來使用後才發現這個系統有些觀念和目前常見的 CI&#x2F;CD 平台(例如 Github Action)是不太一樣的。<br>問了同事也說的不是很清楚，這邊做個筆記。</p>]]>
    </summary>
    <title>搞懂 TFS Build/Release</title>
    <updated>2025-12-29T00:48:35.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="IIS" scheme="http://jiaming0708.github.io/tags/IIS/"/>
    <category term="nginx" scheme="http://jiaming0708.github.io/tags/nginx/"/>
    <id>http://jiaming0708.github.io/2025/11/08/remove-server-info-in-header/</id>
    <link href="http://jiaming0708.github.io/2025/11/08/remove-server-info-in-header/"/>
    <published>2025-11-08T01:47:18.000Z</published>
    <summary>
      <![CDATA[<p>公司最近做了資安檢測，有被檢測出來 response 中不應該帶入 server 的版本相關資訊，才不會因此而被拿來做為攻擊的依據，以下會說明 IIS 和 nginx 各自怎麼設定。</p>]]>
    </summary>
    <title>移除 Nginx/IIS 伺服器資訊</title>
    <updated>2025-11-08T01:47:18.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Frontend" scheme="http://jiaming0708.github.io/categories/Frontend/"/>
    <category term="Vue" scheme="http://jiaming0708.github.io/categories/Frontend/Vue/"/>
    <category term="Vue" scheme="http://jiaming0708.github.io/tags/Vue/"/>
    <category term="Frontend" scheme="http://jiaming0708.github.io/tags/Frontend/"/>
    <id>http://jiaming0708.github.io/2025/09/10/vue-create-app/</id>
    <link href="http://jiaming0708.github.io/2025/09/10/vue-create-app/"/>
    <published>2025-09-10T01:34:29.000Z</published>
    <summary>
      <![CDATA[<p>最近在公司比較舊的架構 MVC + Vue，發現可以不要有 RootComponent 的宣告，並且還會根據 html 上有沒有那個 component 決定是不是要 render，這樣的做法在 React&#x2F;Agnular 的世界中都沒看過，因此很好奇的去研究了一番。</p>]]>
    </summary>
    <title>Vue 的 CreateApp 寫法和比較</title>
    <updated>2025-09-10T01:34:29.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Database" scheme="http://jiaming0708.github.io/categories/Database/"/>
    <category term="Database" scheme="http://jiaming0708.github.io/tags/Database/"/>
    <category term="Saas" scheme="http://jiaming0708.github.io/tags/Saas/"/>
    <id>http://jiaming0708.github.io/2025/09/04/supabase-intro/</id>
    <link href="http://jiaming0708.github.io/2025/09/04/supabase-intro/"/>
    <published>2025-09-04T09:05:15.000Z</published>
    <summary>
      <![CDATA[<p>最近因為一個案子，開始碰觸到了 Supabase 這個資料庫，接下來想要來介紹 Supabase 我所用到的部分。</p>]]>
    </summary>
    <title>Supabase 初體驗</title>
    <updated>2025-09-04T09:05:15.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2025/04/17/dotnet-core-options-pattern/</id>
    <link href="http://jiaming0708.github.io/2025/04/17/dotnet-core-options-pattern/"/>
    <published>2025-04-17T00:44:29.000Z</published>
    <summary>
      <![CDATA[<p>最近看到同事使用 Options 模式，不確定是否有更好的實現方式，因此決定重新複習 Options 在 ASP.NET 中的使用方法。</p>]]>
    </summary>
    <title>[DotnetCore] Options 模式的使用方法</title>
    <updated>2025-04-17T00:44:29.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Linux" scheme="http://jiaming0708.github.io/categories/Linux/"/>
    <category term="Linux" scheme="http://jiaming0708.github.io/tags/Linux/"/>
    <id>http://jiaming0708.github.io/2025/02/13/ftp-s3/</id>
    <link href="http://jiaming0708.github.io/2025/02/13/ftp-s3/"/>
    <published>2025-02-13T01:12:27.000Z</published>
    <summary>
      <![CDATA[<p>在一台 linux 的主機上有 FTP 的服務，背後其實是傳到 AWS 的 S3 上面，這篇會記錄如何去找到這個背後的 S3 key 和 bucket 心路歷程。</p>]]>
    </summary>
    <title>如何確認 FTP 掛載的 s3 資料夾</title>
    <updated>2025-02-13T01:12:27.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2024/11/27/dotnet-core-httpclient-header/</id>
    <link href="http://jiaming0708.github.io/2024/11/27/dotnet-core-httpclient-header/"/>
    <published>2024-11-27T01:12:04.000Z</published>
    <summary>
      <![CDATA[<p>使用 HttpClient 來呼叫其他的服務取得資料，要加上 header 有幾種作法，底下來看看怎麼用</p>]]>
    </summary>
    <title>[DotnetCore] HttpClient 加上 Header 的作法</title>
    <updated>2024-11-27T01:12:04.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="Infrastructure" scheme="http://jiaming0708.github.io/categories/Backend/Infrastructure/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <category term="Infrastructure" scheme="http://jiaming0708.github.io/tags/Infrastructure/"/>
    <id>http://jiaming0708.github.io/2024/11/20/correlation-request-difference/</id>
    <link href="http://jiaming0708.github.io/2024/11/20/correlation-request-difference/"/>
    <published>2024-11-20T13:35:54.000Z</published>
    <summary>
      <![CDATA[<p>在現代分散式系統中，當有多個服務共同協作來處理單一請求時，對於整個請求的追蹤與調試變得至關重要。這時，<strong>X-Correlation-Id</strong> 和 <strong>X-Request-Id</strong> 這些 HTTP 標頭能提供幫助。</p>
<blockquote>
<p>本篇由 ChatGPT 產生<br>程式片段測試有效，可安心服用</p>
</blockquote>]]>
    </summary>
    <title>X-Correlation-Id 與 X-Request-Id 差異介紹</title>
    <updated>2024-11-20T13:35:54.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2024/11/15/dotnet-9-cet-issue/</id>
    <link href="http://jiaming0708.github.io/2024/11/15/dotnet-9-cet-issue/"/>
    <published>2024-11-15T12:17:42.000Z</published>
    <summary>
      <![CDATA[<p>在 11&#x2F;13 的時候 Dotnet 9 正式亮相了，很興奮地馬上跟上，同事們也都裝了，但悲劇馬上發生。</p>]]>
    </summary>
    <title>[Debug]Dotnet 9 的 CET 問題</title>
    <updated>2024-11-15T12:17:42.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <category term="Authorization" scheme="http://jiaming0708.github.io/tags/Authorization/"/>
    <id>http://jiaming0708.github.io/2024/09/21/dotnet-policy-base-authorization/</id>
    <link href="http://jiaming0708.github.io/2024/09/21/dotnet-policy-base-authorization/"/>
    <published>2024-09-21T09:19:36.000Z</published>
    <summary>
      <![CDATA[<p>接到一個需求是希望能夠針對某些 API 檢查使用者的權限，使用者的權限維護於資料庫中，例如權限名稱叫做 <code>Published</code>，底下會介紹如何使用 <code>Policy-based authorization</code> 的機制來實現。</p>]]>
    </summary>
    <title>[DotnetCore] 實作原則型授權</title>
    <updated>2024-09-21T09:19:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2024/09/13/json-string-enum-converter/</id>
    <link href="http://jiaming0708.github.io/2024/09/13/json-string-enum-converter/"/>
    <published>2024-09-13T11:32:22.000Z</published>
    <summary>
      <![CDATA[<p>最近在寫需求時，前端回報 API 的某個欄位不是應該數字 enum 嗎，怎麼變成文字，檢查以後才發現，前人使用 <code>JsonStringEnumConverter</code> 這個功能將 enum 全部轉成 string 輸出給前端。</p>
<p>為了要讓舊有 API 維持，新的 API 也可以照所希望的輸出成數字，而去找了一些解法。</p>]]>
    </summary>
    <title>[DotnetCore] JsonStringEnumConverter 的應用</title>
    <updated>2024-09-13T11:32:22.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="Infrastructure" scheme="http://jiaming0708.github.io/categories/Backend/Infrastructure/"/>
    <category term="Infrastructure" scheme="http://jiaming0708.github.io/tags/Infrastructure/"/>
    <id>http://jiaming0708.github.io/2024/09/02/intro-middle-service/</id>
    <link href="http://jiaming0708.github.io/2024/09/02/intro-middle-service/"/>
    <published>2024-09-02T13:46:15.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>本篇由 ChatGPT 產生</p>
</blockquote>
<h3 id="什麼是中台服務？"><a href="#什麼是中台服務？" class="headerlink" title="什麼是中台服務？"></a>什麼是中台服務？</h3><p><strong>中台服務</strong>是一種將業務邏輯、數據資源和技術能力統一管理、調用的平台化解決方案。它的目的是在前台應用（如用戶端應用、網站）和後台系統（如數據庫、業務系統）之間建立一個靈活的中間層，以支持企業的敏捷業務需求和快速創新。</p>
<p>中台服務的核心思想是通過將企業中的共性業務邏輯、數據資源抽象出來，並將其構建成可復用的服務組件，供不同的前台應用調用。這樣，前台應用無需關注底層業務邏輯和數據處理，而專注於用戶體驗和快速迭代。</p>]]>
    </summary>
    <title>中台服務說明及介紹</title>
    <updated>2024-09-02T13:46:15.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="AWS" scheme="http://jiaming0708.github.io/tags/AWS/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2024/06/21/upload-image-to-s3-via-lambda-function/</id>
    <link href="http://jiaming0708.github.io/2024/06/21/upload-image-to-s3-via-lambda-function/"/>
    <published>2024-06-21T05:56:09.000Z</published>
    <summary>
      <![CDATA[<p>透過 AWS Lambda Function 來做為中介上傳檔案到 S3，底下會分享兩種不同的 body 內容如何用 c# 實作。</p>]]>
    </summary>
    <title>[DotnetCore] Lambda Function 實作上傳圖片至 S3</title>
    <updated>2024-06-21T05:56:09.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Database" scheme="http://jiaming0708.github.io/categories/Database/"/>
    <category term="SqlServer" scheme="http://jiaming0708.github.io/categories/Database/SqlServer/"/>
    <category term="Database" scheme="http://jiaming0708.github.io/tags/Database/"/>
    <category term="SqlServer" scheme="http://jiaming0708.github.io/tags/SqlServer/"/>
    <category term="TSQL" scheme="http://jiaming0708.github.io/tags/TSQL/"/>
    <id>http://jiaming0708.github.io/2024/06/21/tsql-cte-introduce/</id>
    <link href="http://jiaming0708.github.io/2024/06/21/tsql-cte-introduce/"/>
    <published>2024-06-21T01:45:22.000Z</published>
    <summary>
      <![CDATA[<p><strong>CTE的簡介</strong> Common Table Expressions（CTEs）是一種在SQL查詢中定義臨時結果集的方法。CTE在T-SQL中的應用可以提高查詢的可讀性和維護性，使得複雜的查詢邏輯更加清晰。<br><strong>為何使用CTE</strong> 使用CTE的主要原因在於它可以讓我們將查詢邏輯分解成可讀性更強的小塊。CTE在遞迴查詢和處理分層數據時特別有用。</p>
<blockquote>
<p>本篇由 ChatGPT 產生</p>
</blockquote>]]>
    </summary>
    <title>[SQL] T-SQL 中的 CTE 介紹與應用</title>
    <updated>2024-06-21T01:45:22.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="CICD" scheme="http://jiaming0708.github.io/categories/CICD/"/>
    <category term="Jenkins" scheme="http://jiaming0708.github.io/categories/CICD/Jenkins/"/>
    <category term="Jenkins" scheme="http://jiaming0708.github.io/tags/Jenkins/"/>
    <category term="CICD" scheme="http://jiaming0708.github.io/tags/CICD/"/>
    <id>http://jiaming0708.github.io/2024/04/17/ubuntu-as-jenkins-slave-node/</id>
    <link href="http://jiaming0708.github.io/2024/04/17/ubuntu-as-jenkins-slave-node/"/>
    <published>2024-04-17T02:00:10.000Z</published>
    <summary>
      <![CDATA[<p>本篇會介紹如何使用 Ubuntu 來作為 Jenkins Slave Node 並且採用 SSH 的方式做連線。</p>]]>
    </summary>
    <title>使用 Ubuntu 來作為 Jenkins 的 Slave Node</title>
    <updated>2024-04-18T01:50:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/categories/Backend/DotnetCore/"/>
    <category term="DotnetCore" scheme="http://jiaming0708.github.io/tags/DotnetCore/"/>
    <id>http://jiaming0708.github.io/2024/03/14/dotnet-core-publish-web-config/</id>
    <link href="http://jiaming0708.github.io/2024/03/14/dotnet-core-publish-web-config/"/>
    <published>2024-03-14T01:10:46.000Z</published>
    <summary>
      <![CDATA[<p>Dotnet Core 在發布的時候預設會輸出 web.config，發佈到 IIS 伺服器如果有要調整 web.config 的內容，可以用以下幾種做法來達成。</p>]]>
    </summary>
    <title>[DotnetCore] web.config 發布控制</title>
    <updated>2024-03-14T01:10:46.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Backend" scheme="http://jiaming0708.github.io/categories/Backend/"/>
    <category term="C#" scheme="http://jiaming0708.github.io/categories/Backend/C/"/>
    <category term="C#" scheme="http://jiaming0708.github.io/tags/C/"/>
    <category term="Blazor" scheme="http://jiaming0708.github.io/tags/Blazor/"/>
    <id>http://jiaming0708.github.io/2024/01/30/blazor-wasm-host-server-api-404-issue/</id>
    <link href="http://jiaming0708.github.io/2024/01/30/blazor-wasm-host-server-api-404-issue/"/>
    <published>2024-01-30T05:24:30.000Z</published>
    <summary>
      <![CDATA[<p>在 Dotnet 8 以前，微軟有提供過 WASM 可以直接給 API server 託管的功能，等於是只要架一個網站就可以前後端分離，但這樣的設定會衍生打不存在的 API 不會回傳 404，反而是回傳前端 index.html。</p>]]>
    </summary>
    <title>[Blazor] 在 API 伺服器上託管 WASM 遇到的 404 問題</title>
    <updated>2024-01-30T05:24:30.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Jimmy Ho</name>
    </author>
    <category term="Frontend" scheme="http://jiaming0708.github.io/categories/Frontend/"/>
    <category term="Blazor" scheme="http://jiaming0708.github.io/categories/Frontend/Blazor/"/>
    <category term="Blazor" scheme="http://jiaming0708.github.io/tags/Blazor/"/>
    <id>http://jiaming0708.github.io/2024/01/22/blazor-pass-method-be-parameter/</id>
    <link href="http://jiaming0708.github.io/2024/01/22/blazor-pass-method-be-parameter/"/>
    <published>2024-01-22T06:37:19.000Z</published>
    <summary>
      <![CDATA[<p>Blazor 的參數基本上可以分為事件外拋和傳值進去，但有時候會希望子元件能去執行母元件的某個方法，這個時候可以使用 c# 的 Delegate 的行為來實作。</p>]]>
    </summary>
    <title>[Blazor] 傳遞方法為參數</title>
    <updated>2024-01-22T06:37:19.000Z</updated>
  </entry>
</feed>
