發表文章

目前顯示的是 9月, 2025的文章

(影片) Karate 介紹

  Karate 由Intuit作为开源工具发布。该工具旨在用于自动API测试,并具有使API测试变得轻而易举且实际上令人愉快的所有必需功能。 与需要大量编码的其他自动化API测试工具不同,即使只是做基本的东西,Karate开箱即用。您可以在不了解任何编程语言的情况下构建最复杂的请求 - 响应操作。您所要做的就是使用纯文本Gherkin样式编写要素文件。 因为Karate是一个完整的DSL并且位于Cucumber-JVM之上 ,所以你可以像任何标准的Java项目一样运行测试并生成报告,但是你不是编写Java代码,而是用一种用来处理HTTP,JSON的语言来编写测试。或XML简单易用。 虽然没有使用Karate的先决条件,但如果您对HTTP,JSON,XML,JsonPath以及XPath和JavaScript有基本的了解,它会有所帮助。 Karate 是一个集成 API 测试、模拟和性能测试的开源框架,它利用类似于 Gherkin 的语法(Given/When/Then)来编写易于理解的测试脚本。其核心架构基于 Java,并与 JUnit 结合使用,通过 Maven 或 Gradle 集成。 https://www.youtube.com/watch?v=0pv2qTB-YeY

Mapstruct

MapStruct 在系統開發過程中,難免會遇到各類物件的轉換,如DB Entity物件轉換成領域物件 (Domain Object)或值物件 (Value Object)、領域物件、值物件轉換成 DTO物件,在物件的轉換過程中常伴隨著反覆的物件創建與設值,如果物件的欄位較多,就容易出現有些欄位設定遺漏,此時若沒有透過單元測試等手段驗證,就容易 造成在系統內部物件轉換或與外部系統溝通的傳遞過程中遺失資訊。 MapStruct可以處理上述提到的問題,簡化物件間轉換欄位映射 (mapping)過程。MapStruct採用annotation processor技術,在Java編譯時期自動生成對應 的Setter、Getter與Constructor等相關程式碼。 https://www.tpisoftware.com/tpu/articleDetails/2443 https://blog.csdn.net/u013066244/article/details/129823436 

Note LLM

  Note LLM 以Google Gemini 2.0為基礎、被譽為「最強AI筆記神器」的NotebookLM,你用過了嗎?不僅能生成摘要,還能產出Podcast形式的音訊!以下文章幫你一次整理NotebookLM的功能、使用方式與方案比較。 NotebookLM是什麼? NotebookLM(Notebook Language Model)是由Google開發的AI筆記助理,專為研究與寫作設計。它能讀取使用者上傳的文件,根據內容生成摘要、回答問題,甚至提供相關資訊,幫助整理思路與加速寫作流程。同時,NotebookLM聲明,絕不會將個人資料用於模型訓練。 NotebookLM有哪些功能、亮點? 生成摘要:上傳 PDF、網站、YouTube 影片、音訊檔案、Google文件或 Google簡報,NotebookLM就會運用Gemini 2.0的多模態理解能力生成摘要、分析資料。 即時分析資料:NotebookLM可以協助彙整所有上傳來源的內容,快速提供、分析資訊。 Audio Overview:透過Audio Overview功能,NotebookLM可以把筆記內容、研究資料轉換成Podcast形式的音訊檔案。 資料庫建立:NotebookLM能為每個研究資料、寫作內容進行整理,並歸納在專屬的筆記本當中,增加蒐集、檢索資料的效率。此外,NotebookLM也能根據你所提供的資料進行回應,而非僅透過預設的訓練資料提供回答。 NotebookLM如何使用? 廣告 進入NotebookLM網站。 註冊與登入:用戶登入Google帳號後,即可將文件上傳至NotebookLM。 建立新筆記本:上傳純文字、PDF、Google文件、Google簡報、網站、音訊檔案或YouTube影片,AI會自動解析內容,提供摘要與重點標註。 互動式問答:用戶可以直接向 AI 提問,如「這份筆記的重點是什麼?」NotebookLM 會根據內容給出回答,甚至補充相關資訊。 整理與標籤分類:AI會根據內容自動生成標籤,幫助用戶快速分類與檢索。 https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94...

SSE (Server-Sent Events)

 淺談 Server-Sent Events 與 Server 互動 一般的 get/post request 都是基於 HTTP 的標準根據請求來回覆回應的,一旦回應完成連線就會中斷。但如果有些更複雜的需求需要讓後端發送訊息給前端,比較好的方式就是建立 websocket,讓 request 保持連線。不過有時候為了一個需求要建立 websocket 會有點麻煩。因此 Server-Sent Events 就是為了這種需求而誕生的。 Server-Sent Events 以下簡稱 SSE。若說 websocket 是雙向溝通的話,SSE 其實是單向溝通的,也就是說,一但連線建立之後,就只能接收 Server 端來的訊息。實際的使用情境例如: 上傳超大檔案需要通知 client 端上傳處理進度。 轉檔需要通知 client 端處理進度。 非同步的商業邏輯處理需要通知 client 端狀況。 從 Server 傳送訊息 要從 Server 傳送訊息也蠻簡單的,只要在 response 宣告 header 。 Content-Type: "text/event-stream" 建立好連線之後就可以接收 SSE 的訊息做後續的處理。 限制 SSE 的限制是 有限的連線數。 只能處理基本 text 的訊息, 不能自訂 custom header ,例如要傳 Authorization 就不行。這個問題其實蠻大的,因為通常會需要做這種需求都會需要驗證使用者登入狀態,用 header 來處理 auth。

AOP 剖面導向程式設計

圖片
  AOP(Aspect-oriented programming)剖面導向程式設計 一般我們在寫程式時,很常需要處理譬如錯誤紀錄、權限驗證,乃至於額外可能增加使用者查詢歷程等等,就以錯誤紀錄來說,一個方法(Function)要用Nlog進行錯誤紀錄,通常會是這樣子。 使用AOP架構好處多多,減少重工又可以讓你的程式碼更加簡單易懂,因為共用的邏輯抽離之後,就只需要專注於商業邏輯的撰寫,只是對於C#新手來說,可能門檻比較高,不過整體來說,專案若是套用了AOP架構後,整個大升級,不管幾百幾千的方法,如果要加上一堆共用基制的話,都不用怕 https://ithelp.ithome.com.tw/articles/10229664

Prometheus Operator1

  https://yunlzheng.gitbook.io/prometheus-book/part-iii-prometheus-shi-zhan/operator/what-is-prometheus-operator https://erhwenkuo.github.io/kubernetes/observability/metrics/kube-prometheus-stack/setup-prometheus-and-grafana-on-kubernetes/#_1 https://claire-chang.com/2022/12/16/prometheus-operator/ https://blog.amis.com/kubernetes-operators-prometheus-3584edd72275https://blog.amis.com/kubernetes-operators-prometheus-3584edd72275

JS 和 TS 比較

  JS 動態型別 弱型別 TS 靜態型別 強型別 TS: 是 JavaScript 的一個超集,主要提供了型別系統和對 ES6 的支援,它由 Microsoft 開發. TypeScript 是 JavaScript 的超集,.js 檔案可以直接重新命名為 .ts 即可 缺點: 有一定的學習成本,需要理解介面(Interfaces)、泛型(Generics)、類別(Classes)、列舉型別(Enums)等前端工程師可能不是很熟悉的概念 typescript教學: https://medium.com/....../%E7%B6%B2%E9%A0%81%E5%B7%A5...... … https://willh.gitbook.io/....../int....../what-is-typescript (重要!!) https://hackmd.io/@Heidi-Liu/typescript Hello world 的TS程式: https://willh.gitbook.io/....../intro....../hello-typescript