我理想中的工作日行程,朝這方向努力。
2024/12/18
2024/12/16
Spring MVC 當Controller層已驗證過外部傳入的資料,Service層是否還要再驗證從Controller傳入的參數?
此篇為2019年想寫的草稿
要!永遠不要信任傳入的參數是被驗證過的,因此總是去驗證傳入參數。但實務上可能因為進度、偷懶或是沒特別要求,所以不會特別額外驗證。
2024/12/15
2024/12/14
2024/12/11
2024/12/4
2024/12/1
2024/11/30
2024/11/27
2024/11/26
2024/11/24
2024/11/23
2024/11/18
2024/11/17
2024/11/16
2024/11/15
2024/11/13
2024/11/11
2024/11/9
2024/10/27
2024/10/26
2024/10/24
2024/10/18
2024/10/13
2024/10/12
2024/10/6
2024/10/5
2024/10/3
2024/9/29
2024/9/19
2024/9/18
2024/9/17
2024/9/14
2024/9/12
2024 IntelliJ IDEA Community 建立Spring Boot 2專案
2024年在IntelliJ IDEA Community建立Spring Boot 2 Web專案過程如下。
2024/9/11
Windows Git Bash 複製/貼上 快速鍵
Windows在Git Bash使用複製貼上時,快速鍵非熟悉的Ctrl+C / Ctrl+V,而是Ctrl+Insert/Shift+Insert。
2024/9/9
2024/9/8
2024/9/7
2024/9/2
Java String 格式化浮點數無小數 format double float nubmer without decimal number
Java將浮點數double, float格式化為無小數的字串方式如下。
2024/9/1
2024/8/30
2024/8/25
2024/8/24
2024/8/21
2024/8/20
Eclipse Enhanced Class Decompilor無作用
因為要看沒有source code的jar的class檔內容而在Marketplace裝了Enhanced Class Decompilor plugin,但開啟class檔時仍無法看到解編的原始碼。
Eclipse 關閉web.xml引發的An internal error occurred during: "Loading descriptor ..."錯誤
關閉Eclipse匯入dynamic web project時,一直跳出由web.xml
引起的錯誤An internal error occurred during: "Loading descriptor ..."
的方式如下。
Java web.xml context-param contextConfigLocation用途
Java Web應用程式中web.xml
內的<context-param>
的contextConfigLocation
作用如下。
2024/8/19
Spring org.springframework.jndi.JndiObjectFactoryBean resourceRef property用途
Spring配置檔中在設定JNDI datasource時org.springframework.jndi.JndiObjectFactoryBean
的resourceRef
property的用途如下。
2024/8/18
2024/8/17
2024/8/16
2024/8/15
2024/8/14
2024/8/13
2024/8/12
2024/8/11
2024/8/10
2024/8/9
2024/8/8
2024/8/7
2024/8/6
2024/8/5
2024/8/4
2024/8/3
2024/8/2
2024/8/1
2024/7/31
2024/7/30
2024/7/29
2024/7/28
2024/7/27
2024/7/26
2024/7/25
2024/7/24
2024/7/22
2024/7/21
2024/7/20
2024/7/19
2024/7/18
2024/7/16
2024/7/15
2024/7/14
2024/7/13
2024/7/12
2024/7/11
2024/7/10
2024/7/8
2024/7/7
2024/7/6
2024/7/5
2024/7/4
2024/7/3
2024/7/2
2024/7/1
2024/6/30
2024/6/29
2024/6/28
2024/6/26
2024/6/24
Golang 使用errgroup.Group取得goroutine錯誤
Go的goroutine是另一條執行緒所以無法將錯誤以return
回傳到main goroutine,除了利用channel取得錯誤,也可利用errgroup.Group
來將錯誤回傳到main goroutine。
2024/6/23
2024/6/22
2024/6/21
2024/6/18
2024/6/17
2024/6/16
2024/6/15
2024/6/10
2024/6/9
2024/6/8
2024/6/7
2024/6/6
2024/6/5
2024/6/2
2024/5/30
2024/5/29
2024/5/27
2024/5/26
2024/5/24
2024/5/22
Golang 設定GCP IAM Service Account為可存取Cloud Storage Bucket的Policy Principle
Go以Google Cloud Client Libraries for Go將IAM Service Account設定為Cloud Storage Bucket的Policy Principle。
2024/5/21
2024/5/20
2024/5/18
2024/5/17
2024/5/16
2024/5/14
2024/5/12
2024/5/11
2024/5/8
2024/5/7
Redis 交易的樂觀鎖 transaction optimistic locking
Redis的Transaction(交易/事務)可將多個命令視為一個動作執行,並透過check-and-set(CAS)來實現樂觀鎖(optimistic locking)。
2024/5/6
2024/5/5
2024/5/4
2024/5/3
2024/5/2
2024/5/1
2024/4/30
2024/4/29
2024/4/28
2024/4/27
2024/4/25
2024/4/24
2024/4/22
2024/4/19
2024/4/18
Visual Studio Code 無法執行debug 錯誤xcrun: error: invalid active developer path
VS Code執行debug時無法運行,出現xcrun: error: invalid active developer path
錯誤。
2024/4/17
2024/4/16
2024/4/15
2024/4/11
AWS CLI 取得TargetGroup UnHealthyHostCount cloudwatch metrics統計資料
使用AWS CLI取得TargetGroup UnHealthyHostCount
cloudWatch metrics統計資料。。
2024/4/10
2024/4/9
2024/4/8
2024/4/7
2024/4/2
Golang 取得GCP Cloud Storage Monitoring Metric物件數量
Go以Google Cloud Client Libraries for Go來取得GCP Cloud Storage bucket的物件數量指標資料。
2024/3/31
2024/3/30
2024/3/27
Jenkins 2.4 Node Monitors設定位置
Jenkins 2.4的Node Monitors設定位置在Dashboard > Manage Jenkins > Nodes > Configure Node Monitors
。
2024/3/26
Jenkins Pipeline工作無法執行 Disk space is below threshold
Jenkins裝好後無法執行pipeline工作(即使是簡單的hello world pipeline)。點擊pipeline的[Build Now],只顯示"Build scheduled",但[Build History]沒有出現任何運行紀錄。
2024/3/25
2024/3/24
2024/3/23
2024/3/22
React Recharts繪製AWS EC2 Instance CPUUtilization指標折線圖
React使用Recharts繪製AWS EC2 Instance CPUUtilization指標折線圖(line chart)。
2024/3/21
Golang Gin 將請求參數綁定為struct
Gin可使用gin.Context.BindQuery
或gin.Context.ShouldBindQuery
將URL查詢參數(query string)轉為struct。
2024/3/20
Golang Gin BindJSON ShoudBindJSON 差別
Gin可用gin.Context.BindJSON
或gin.Context.ShouldBindJSON
將請求payload轉為struct,兩者差別如下。
2024/3/18
Golang 避免index out of range錯誤
Go以index(索引)從slice取值時,避免panic: runtime error: index out of range [x] with length [y]
錯誤。
Golang 取得GCP Monitoring Instance Disk寫入大小統計
Go以Google Cloud Client Libraries for Go來取得GCP Monitoring的instance [Disk write bytes]指標的時間序列資料。
2024/3/17
Golang 取得AWS EBS Volume CloudWatch metric統計資料
Go以Google API Client Libraries來取得EBS Volume metric統計資料。
2024/3/16
2024/3/12
Golang 取得GCP Monitoring Metric aggregated time series data
Go以Google API Client Libraries來取得CloudWatch metric的聚合時間序列資料。
2024/3/11
2024/3/10
GCP Monitoring Metric名稱與PromQL對照
由於PromQL語法只支援:
、_
特殊字元,因此GCP Monitoring Metric(指標)名稱,例如compute.googleapis.com/instance/cpu/utilization
中的.
和/
必須進行替換以便在PromQL中使用。
2024/3/9
2024/3/8
Golang 取得GCP Monitoring Metric time series data
Go以Google Cloud Client Libraries for Go來取得GCP Cloud Monitoring的metric time series data。
Golang 取得GCP Monitoring Metric descriptor
Go以Google Cloud Client Libraries for Go來取得GCP Cloud Monitoring的metric descriptor。
2024/3/7
GCP Monitoring Metric type
GCP Monitoring Metric kind種類
GCP Cloud Monitoring的metric測量值(time series)中都會包含MetricKind
(指標類型),用來說明測量值的衡量方式,分為以下三種:
Golang 建立GCP Monitoring Metric Client
Go以Google Cloud Client Libraries for Go來建立存取GCP Cloud Monitoring API的Monitoring Metric Client。
2024/3/6
2024/3/5
2024/3/4
2024/3/3
2024/3/2
2024/2/28
2024/2/26
Golang 使用機器映像建立GCP執行個體 Create VM instance from machine image
Go以Google API Client Libraries來建立GCP執行個體(VM instance)。
2024/2/25
2024/2/24
2024/2/23
2024/2/21
2024/2/20
2024/2/19
2024/2/18
2024/2/17
2024/2/16
2024/2/15
2024/2/14
2024/2/13
2024/2/10
2024/2/9
2024/2/8
2024/2/7
2024/2/6
2024/2/4
2024/2/3
2024/2/1
2024/1/29
2024/1/27
2024/1/23
2024/1/22
2024/1/21
2024/1/19
2024/1/14
2024/1/13
2024/1/11
Golang WebSocket Ping Pong範例
WebSocket Ping Pong中文通常又稱為心跳(heartbeat),是指WebSocket協議的控制碼(opcode),代表Control frame(控制幀/控制框)的Ping frame與Pong frame,用以偵測客戶端和伺服器間的連線是否存在,以實現長連線(Keep-Alive)的機制。參考RFC6455。
2024/1/9
2024/1/8
Golang 建立GCP執行個體 Create GCP Compute VM instance
Go以Google API Client Libraries來建立GCP執行個體(vm instance)。
Golang 取得GCP執行個體機器類型 Get GCP Compute VM instance machine types
Go以Google API Client Libraries來取得GCP執行個體的機器類型(machine types)。