The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

重新認識 Apache Maven 建置與套件管理工具

許多寫 Java 的朋友都採用 Apache Maven 做為專案的建置工具,但是 Apache Maven 有相當多的內涵,我發現並沒有很多人可以很好的解釋這套工具,甚至有一些錯誤的認知,我自己也是在深入瞭解後才發現原來 Apache Maven 可以做這麼多事,甚至你可以拿 Apache Maven 來建置任意程式語言開發的專案。這篇文章我就來好好介紹一下這套優異的建置與套件管理工具。

... 繼續閱讀 ...

如何使用 Google Java Format 做到更決斷的 Java 原始碼編排風格

其實要在多套不同的 IDE 開發工具之間統一編碼風格(Coding Style)真的不太容易,不同 IDE 之間的程式碼格式化能力不同,有的強、有的弱,自動排版完多多少少還是會有些差異,因此很難做到真正的統一。因此 Google 已經漸漸移往更為決斷的 google-java-format 格式化工具,不太傾向依賴不同的 IDE 之間的程式碼格式化能力。本篇文章我打算分享我這兩天的研究成果,看如何在不同 Java 工具之間如何做到更完美的風格整合。

... 繼續閱讀 ...

如何套用 Google Java Style Guide 在不同的 Java 開發工具之間

知名的 Google Java Style Guide 是許多 Java 開發人員遵循 Java 程式碼撰寫風格的指引之一,該指引也定義了一組格式化定義檔,其中包含了 EclipseIntellJ IDEA 與其他 IDE 的整合,可以幫助你跨越開發工具之間的格式化差異,讓不同人使用不同 Java 開發工具,也能統一基礎 Java 程式碼的撰寫風格。

... 繼續閱讀 ...

如何使用 OpenSSL 建立一張含有 Certificate Revocation List (CRL) 的憑證

最近因為公司在建立 ISO 27001 資訊安全管理系統,在文件管理部分就會想說要有一個高強度且具備不可否認性的數位簽章(Digital Signature)。建立一組公司用的 CA 憑證並透過這張 CA 憑證簽發給員工使用的數位憑證其實很簡單,但之前一直沒機會研究如何手工打造 CRL 憑證撤銷清單,今天研究了一下,終於可以自行簽發 CRL 憑證了。

... 繼續閱讀 ...

.NET 與 Java 常見技術名詞與抽象概念對照表

雖然 .NET (C#) 與 Java 是兩個不同的語言,但這兩個都是 OOP 物件導向程式架構,而且 Java 出現的比較早,我們在 .NET 裡面也經常看到很多 Java 的影子,所以其實有不少相似之處。這篇文章我打算整理一下最近的感受,把一些常見的技術名詞與抽象概念做一些對照,幫助想要成為「斜槓青年」的朋友入門。

... 繼續閱讀 ...

在 Docker 或 Kubernetes 執行 SQL Server Linux 容器應注意記憶體限制問題

前幾天一樣在客戶端進行 Kubernetes 教育訓練的時候,發現有少部分學員無法正確部署應用程式,我們的例子是一個 ASP.NET Core 網站,搭配一個 SQL Server Linux 容器,然而在練習實作 livenessProbe 的時候,卻發現有些人怎樣都無法將 SQL Server Linux 容器啟動,但是若將 livenessProbe 設定移除,服務可以啟動。若將 Pod 中容器記憶體限制移除,服務也可以順利啟動。是不是有點詭異?這篇文章我就來說說這個來龍去脈!

... 繼續閱讀 ...

當 Kubernetes 或 MicroK8s 遇到 Docker Hub 下載限制時的解決之道

我這幾個星期在一間企業進行為期五天的 Kubernetes 教育訓練,我們的 Lab 環境都是用輕量級的 MicroK8s 為主,但是課程一開始就不太順利,因為上課人數有 20 位左右,他們都使用公司的網路,大家都共用一個 IP 連外,以致於碰上討人厭的 Rate limit on Docker Hub 問題,所以有些人無法成功架設起叢集,原因就是 image 下載不到造成的。這篇文章我就來說明在 MicroK8s 如何正確的解決 Docker Hub 無法下載 image 的問題。

... 繼續閱讀 ...

批次將所有 Java 原始碼檔案快速轉成 UTF-8 編碼的方法

最近公司接到一個老舊 Java 專案的升級改版案,由於原始碼全部都採用 Big5 編碼,導致在 Visual Studio Code 裡面無法成功編譯,雖然看了 Troubleshooting Guide for Encoding Issues 文件,也成功研究出維持 Big5 編碼也能持續開發的解決方案,但其實最好的解決方法,還是把所有 Java 原始碼變更為 UTF-8 才是王道。今天我就來分享幾個不同的方法,幫助你快速將專案的所有原始碼從 Big5 轉換成 UTF-8 字集編碼!

... 繼續閱讀 ...

使用 Dockerfile 建置容器映象(image)時應多注意「換行符號」帶來的影響

今天使用 Visual Studio Code 的 Remote Development 將一個 .NET 6 與 SQL Server 開發環境全部放到 Docker 容器中。雖然照著文件操作都很順利,但在專案加入版控之後,問題就出現了。這篇文章我想點出現今容器化、跨平台的時代中,換行符號其實不得不面對他,否則遇到問題會無所適從。

... 繼續閱讀 ...