Home avatar

仍在整理中的筆記

在 dockerfile 內使用 alpine 的 dotnet sdk image 建置 dotnet 服務

在我以前的工作環境中,由於建置機採用地端管理,且有儲存容量等限制,如何利用 docker 的 build cache 來增加儲存空間的利用率成了必須思考的議題。

也因為我在規劃 包含 opentelemetry auto instrumentation 的 base image 時,也會需要同時發布多種不同 linux 版本的 image,因此,這邊特別研究了多種不同 linux 發行版的 dotnet build 參數並應用在 dockerfile 之中,來讓一份 dockerfile 可以發布多種不同的成品,並且使用相同的建置階段。

這邊使用的 github repo 為 YuChia-Wei/otel-dotnet-auto-instrumentation

幫 AspNetCore WebApi 包上自己的 response model,Part 3 : 其他包裝方法

先前在撰寫 wrapping response action filter 的時候其實有利用 ChatGPT 進行輔助,在與 ChatGPT 對話的過程中也有討論到使用 Middleware 處理回應包裝的部分,我想利用這一篇記錄一下當時的對話內容以及結論。

因此,本文大部分內容都是由 AI 產出,我再進行整理與調整。

警告
本文中所使用的方式我並沒有在正式環境中使用,僅是因為在先前與 ChatGPT 討論的過程中有針對這種做法進行討論,然後覺得這段適合保留下來而有這一篇文章。

幫 AspNetCore WebApi 包上自己的 response model,Part 2 : 包裝例外

這篇為 「幫 AspNetCore WebApi 包上自己的 response model」 的第二部分 「包裝例外」。

我將介紹如何在 ASP.NET Core Web API 中統一處理例外狀況,並將其包裝成標準化的回應格式。

我會介紹以下兩種例外資料的包裝方法:

  1. 使用 UseExceptionHandler Middleware
  2. 使用 IExceptionFilter 介面

幫 AspNetCore WebApi 包上自己的 response model,Part 1 : 包裝 api 回應

在設計 web api 時,通常會想要有一個自己系統專用的標準化回應格式,我在前一份工作中因為已經有底層的前輩建立好相關的處理套件,所以一直以來都沒特別研究怎麼包裝以及自訂回應欄位。

最近在自己的練習專案中嘗試去實作相關機制,才發現原來要考慮的東西有點多,這邊我就來分享一下我的做法以及其他可以用的方式與用途。

該使用 SDK 還是 WebApi 的形式提供服務?

大家在使用 dotnet 或其他可以打包成功開套件做分享的程式語言時,可能都會想到一個問題

  1. 現在 WebApi 那麼盛行,我該如何抉擇要使用 Web Api 還是 套件 的形式發布我的服務、功能呢?
  2. 我覺得我新寫的功能好棒棒,我想發布成 nuget package 分享給團隊,但是不確定合不合適

這邊我簡單梳理一下一些需要考量的點~

建立 RKE2 叢集並且安裝 Rancher / istio

我初期在公司建立地端 Kubernetes 叢集以進行 POC 時,都是使用 kubeadm 這套官方工具進行的 (我早期文章就是基於此撰寫的)。

但是當需要將 Kubernetes 拓展到其他單位時,那相對複雜的安裝與管理方式卻是第一個難以躍過的門檻。

因此,後續改用 RKE2 建立,並且導入 Rancher 進行 Kubernetes 叢集管理。從 2022 年末使用至今,由於我們公司的運用情境相對簡單,因此沒出現太多難以處理的問題。

這篇紀錄我的 RKE2 + Rancher 的安裝命令,主要內容都是依據 iThome Kubernetes Summit 2022 時我參與的 SUSE 工作坊講師提供的資訊進行調整,並適度的加上一些說明。

2023 年度回顧

今天是 2023 年的最後一天,趁著今年還沒結束,來回顧一下我在今年的技術發展狀況吧~

不過,因為這一年都沒怎麼寫 blog (都靠 hackmd 紀錄筆記),希望不要不小心把去年的事情寫成今年 XD

程式碼重構 - 基本概念

重構:在不影響程式碼邏輯的前提下進行程式碼修改的行為

重構行為應使用 IDE 隨附的重構命令處理,以降低人為操作的錯誤,且盡可能在進行重構前加入測試,避免重構後發生錯誤。

本文記錄我過往經驗中,對於重構的一些想法與概念,也有在上課後老師所提供的想法。

vim memo

我在幾年前上過 91 的極速開發後,已經習慣在日常的文字編輯工具以及開發工具中啟用 vim 來進行文字編輯,這邊我將先前整理的一些資料整理出來以方便查閱。

詳細內容以及我自己使用的 vimrc 檔案後續會再安排公開,目前先讓我繼續鎖在私有git 裡面吧