跳至主要内容

· 閱讀時間約 3 分鐘
Ckai

本文將依 Options API、Composition API、<script setup> 的順序,先條列式三者的特徵,後面再附上最基本的程式碼比較其語法差異。

Options API

  • 使用 <script> 標籤
  • 比較舊
  • 效能或安全性與 Composition API 並無差異
  • 較不適合 TypeScript
  • 大型元件用 Options API 較難管理
  • 程式碼的可重用性較差

· 閱讀時間約 4 分鐘
Ckai

Vite 是什麼

Vite 是一種前端建置工具,可快速提供開發環境。
Vite 由 Vue.js 的核心團隊開發,但也支援 React 等前端框架。
以下是 Vite 的特色及優缺點:

Vite 的優點

  1. 快速的冷啟動
    Vite 使用 ES Module 的原生瀏覽器解析功能,並利用 HTTP/2 的特性,使啟動時間極為短暫。
    這意味著在開發模式下,可以感受到即時的重新載入與快速的編譯速度。

  2. 優異的開發體驗
    Vite 支援熱模組替換(HMR)與快速編譯重建,
    因此開發過程中能即時檢視修改的結果,進而提升開發效率。
    此外,Vite 也支援 TypeScript、CSS 預處理器等。

· 閱讀時間約 2 分鐘
Ckai

妥善建立索引可提升資料庫的讀取效能。在 MongoDB 的 CLI 當中可使用下列指令建立索引。

# 建立排序規則為 ASC 的索引
db.collection_name.createIndex({field: 1})

# 建立排序規則為 DESC 的索引
db.collection_name.createIndex({field: -1})

文本索引

上述指令可建立一般索引。如果建立索引的目的是提升查找文本(text)的效能,
則可考慮建立文本索引(Text Index),指令如下:

# 透過文本索引讀取資料
db.collection_name.find({$text: {$search: "string"}})

Stem 與 Stop Words

以英文句子「I am running in the park」為例,
am、the 等單獨存在時無法表達有實際意義的詞彙稱為 Stop Words(停用詞)。 文本索引主要參考 Stop Words 以外的詞與構成,而非儲存資料當中的一字一句。

根據文本索引篩選資料時,篩選的依據是傳入 Filter 當中的詞幹(Stem)。 以 running 為例,其詞幹為 run,而 runs 也可能被視為相同的詞幹。
總而言之,善用停用詞與詞幹的特性,都是有助於節省儲存空間或計算資源的方法。

· 閱讀時間約 1 分鐘
Ckai

覆蓋查詢(Covered Queries)係指在資料庫執行查詢時,
僅使用索引資料或索引結構就能回應該查詢,無需查詢實際的資料。

覆蓋查詢的優點是減少磁碟與記憶體的 I/O 操作,可提高查詢的執行速度和效率。
特別適用於大型資料集和複雜的查詢,可以減少系統的負載和資源消耗。

要實現覆蓋查詢,通常需要適當的資料庫設計與索引策略。
開發人員需要仔細考慮查詢中使用的欄位和索引的設置,
以確保索引能涵蓋所需的資料,進而實現覆蓋查詢的效果。

· 閱讀時間約 4 分鐘
Ckai

指令導覽

在指令後方輸入「--help」再送出指令,可檢閱該指令的相關說明。範例如下:

$ docker --help
$ docker ps --help

· 閱讀時間約 2 分鐘
Ckai

為什麼要使用 Docker?

  • Docker 可確保本地與遠端維持一致的環境,避免專案在線上布署後發生本地開發時不會發生的狀況。
  • 在多人協做專案中,Docker 可管理每位開發人員的開發環境,讓所有人輕鬆使用相同環境開發。

· 閱讀時間約 2 分鐘
Ckai

開始使用 Docker

  • 先在專案資料夾中新增 Dockerfile
    Dockerfile 是建立 Docker image(映像檔)的腳本
$ touch Dockerfile
  • Dockerfile 建立、編寫完畢後,用以下指令建立映像檔。
    注意:Docker Desktop 需保持開啟狀態。
$ docker build .

· 閱讀時間約 2 分鐘
Ckai

Remote Procedure Call

遠端程序呼叫(RPC)是一種 client/server 模式的通訊協議,伺服器端可接收用戶端傳遞的參數,並調用對應的函式,將函式執行結果回傳用戶端。 gRPC 是源自 Google 的開源技術,g 就是 google 的意思。其他類型的 RPC 則有 XML-RPC、JSON-RPC 等。

gRPC 的特色

  • 跨平台
    gRPC 不受限於特定語言或平台,即使伺服器端與用戶端使用不同語言也可通訊。

· 閱讀時間約 5 分鐘
Ckai

集合型別 Collection Types

若說 int, rune, byte, bool 等儲存單一值的型別為核心型別,
能儲存多個值的陣列(array)、切片(slice)、映射表(map)就可稱為集合型別。

Array

先宣告空陣列再賦值
// var 陣列名稱 [陣列容量]儲存型別
var array0 [10]int
fmt.Println(array0) // [0 0 0 0 0 0 0 0 0 0]

// 已宣告陣列 = [陣列容量]儲存型別{值1, 值2, 值3, ...}
array0 = [10]int{
1, 2, 3, 4, 5,
}
fmt.Println(array0) // [1 2 3 4 5 0 0 0 0 0]