Welcome to Galaxy Software Services Corporation !
選單
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw

修改 docker container 預設使用 stdout stderr以致不易查看的問題​

  75 點擊
  0 評論
每一個 Dockerfile 都可能或多或少地「定義」了一些應用程式本身與外在環境的關係,這次我們以 Nginx 為例,各位可以把它看做是一個輕量級的網頁伺服器。當我們把 Nginx 塞到 Docker 裡面,可能有許多細節我們不會想花時間去了解太深入,畢竟以 Scrum 的精神先讓事情發生,所以用以下的指令把它跑起來:  docker run -d --name nginx -p 8080:80 nginx 依這個官網 Image 預設行為,它會把 log 寫到 /var/log/nginx 目錄下,分別是外部訪問的紀錄在 access.log 以及錯誤在 error.log,但這兩個檔案又被連結到 STDOUT / STDERR 去了,好處是不太會因為檔案太大而爆掉,但壞處就是...
繼續閱讀
75 點擊
0 評論

為什麼程式需要單元測試? - 視覺化篇

  197 點擊
  3 評論
Photo by Hello I'm Nik on Unsplash
此篇文章主要帶大家利用手邊工具將測試視覺化,有興趣就往下看吧! 稍微回顧前一篇,我們已經有了測試程式,但目前只能知道程式碼有測試過,實際上沒有一個依據可以判斷哪邊的程式碼很冗,除非你的 IDE 強大到能告訴你,不然用肉眼看還真的蠻困難的... 那測試視覺化是要看什麼東西啊?以我們這邊的案例就是看測試...
繼續閱讀
197 點擊
3 評論

以自簽憑證搭配-hashicorp-vault

  89 點擊
  0 評論
過去筆者在幾篇文章中,陸續都有提到 HashiCorp Vault 的入門應用。但不知有沒有人在實際操作時,發現每次在 Vault Client 下任何指令前,都要先設置一個 VAULT_ADDR 環境變數指向 Vault Server,如果是本機既是 Vault Server 又是 Vault Client 的話,這環境變數內容是 http://127.0.0.1:8200 或 http://localhost:8200 都可以,有點麻煩不是嗎? 先介紹一下為何都要設這個環境變數:在預設情況下,Vault Client 會向本機的 8200 埠發出 https Request 試圖與 Vault Server 通訊。注意,是 https 喔!正因為我們之前的 Vault 組態很陽春,並不支...
繼續閱讀
89 點擊
0 評論

Autofac 如何協助 Dot NET Core MVC 應用程式達成DI - 概述圖解

  102 點擊
  0 評論
Autofac為可以幫忙達成DI的套件,其運作可以參考運作描述,與如何協助ASP.NET MVC達成DI。 這次要了解如何為Dot NET Core MVC應用程式達成DI,勢必也要先了解Dot NET Core原本是如何運作的。可以參考 " Dot NET Core Host Start With Startup Class - 框架運作概略圖解" ,以圖來觀察比較容易。 所以會挑出原本 Dot NET Core 產生 Service Provider 的地方做比較,然後替換成Autofac套件所使用的物件。 原本Dot NET Core 產生 Service Provider如下: 利用預設的 ServiceFactoryAdapter 與 DefaultServiceProv...
繼續閱讀
102 點擊
0 評論

Dot NET Core Host Start With Startup Class - 框架運作概略圖解

  71 點擊
  0 評論
Net Core 為一跨平台的應用開發,其此框架上可以加上許多自製服務,稱之為容器也不為過。 如果要細說明此框架,完整明瞭,可以寫出一整本厚厚的書。但如果要先瞭解框架主要的運作過程,尤其是搭配MVC控制器,是可以將此用圖解的方式將其軌跡整理出來,將其作出關係圖,當作踏入此框架的一個指引,近而未來可以抓出蛛絲馬跡來深入探討。 以下是對一個 Dot NET Core 專案搭配 MVC Controller 的概述圖解,使用的 Framework 為 .NET Core 3.1: 先展現出專案的進入點與 Startup 類別: 接著由進入點 Main 來進行 Host 相關建置: 首先進入第一個函示CreateHostBuilder(),使用靜態類別 Host。接著S1的路線新增Host...
繼續閱讀
71 點擊
0 評論

長期服務的秘密儲藏庫

  42 點擊
  0 評論
上次在保護你的密碼文中,提到了 Hashicorp Vault 的簡單應用,但那畢竟是為了快速入門,也不想在一篇文章裡放太多元素。如果要能夠長期服務,我們來看看必須增加哪些認識: 脫離試用情境最小組態檔初始化封存與解封使用內建的 Cubbyhole首先是「脫離試用情境」,還記得上次在安裝後,我們是開一個命令列視窗,執行 vault server -dev 並且留在那不動嗎?這個行程的生命週期自然就隨著 Ctrl+C 或關閉視窗,或關機而結束了。為了下次執行時能用共同的組態設定,執行命令要改成 vault server -config=<configFile> 這樣的形式。<configFile> 代表的是組態設定檔的絕對路徑,例如 "C:\Users\david\Do...
繼續閱讀
42 點擊
0 評論

Event-driven 運用 - 以Queue來實務模擬運作

  125 點擊
  0 評論
最近有架構師前輩指導,得知了 Event-driven 的好處。 Event-driven 可以拿 Observer pattern 來做類似的說明比較,大致上就是有什麼動作執行同時就觸發事件來作即時的通知,可以達成 Real Time 的效果。 傳統大多都是以 polling 的方式,不斷地讓系統去花費資源,得到要執行的目的。而 Event driven 卻恰恰相反,可以讓系統處於閒置的狀態,當真正有需求進來時才會真正花費系統資源處理,所以是可以有節省資源與有效運用資源的好處。未來的系統,應該可以搭配此一概念廣泛使用,達成未來的需求目的。 我們可以使用Queue來達成即時通知的效果,做到Event-driven RealTime 的目的; 以簡單的例子來模擬 Event...
繼續閱讀
125 點擊
0 評論

Autofac 內部運作如何幫助 .NET MVC Controller 做到 DI - 概述運作圖解

  101 點擊
  0 評論
Autofac 可以協助達成 IOC、DI 的目的,內部如何達成可以參考此篇"Autofac 套件如何達成IOC 目的- 概述圖解" 內容。套件也可以協助幫忙達成MVC架構的DI,使用上其實非常方便。但在一番了解 Autofac 初步的運作後,有些想知道運作原理傾向的開發者大多也會對如何達成 .NET MVC 之 DI 這個原理有些好奇,怎麼對MVC Controller建構子參數做Resolve的?  所以概述如何做到DI的目的,會分以下順序 開發者如何於 .NET MVC 架構使用AutofacMVC 架構生成 Controller 之過程圖解Autofac 如何於MVC辦到DI之簡述以簡單的例子作範例 以下會進行相關描述: 1. 如何於 .NET MVC 架構使用Autofa...
繼續閱讀
101 點擊
0 評論

Autofac 套件之如何快速擴充客製註冊方法 - 以變更RegisterDecorator為例

  90 點擊
  0 評論
上一篇討論了 Autofac套件內部是如何運作的,稍微了解整個流程,雖然不是百分百都將所有細節都展現出來,但也可以了解近七、八成的主要執行方式。 這篇是要幫助,利用這個套件後,欲加上自己的註冊方式,或者遇到沒有支援的情境時要擴充一個註冊函示,要如何下手。 其實觀察套件供註冊的方式,與其它貢獻者貢獻出來的新的註冊函示,都是利用了C#的 Extension Method 的特性。這篇也僅僅是利用了此一特性,做了一個擴充的簡單範例。如果熟悉上一篇的內容,可以設計出獨特的註冊情境,利用它的 Container  ComponentRegistry 、 RegistrationBuilder、 ComponentRegistration 等內容來操作。 而此篇只是利用改寫的方式,做...
繼續閱讀
90 點擊
0 評論

Autofac 套件內部如何達成 IOC 目的 - 概述圖解

  124 點擊
  0 評論
IOC概念幫助我們節省了開發與維護的時間,是非常有感的。以往我們如果自己寫一個幫助自己專案的IOC工具,因為時間上的安排通常會做得比較直接簡約,能夠達成抽換(外部嵌入注入或專案內部物件注入)就算是達成目的,已經不錯了。作法大致上是使用一個static的集合來記錄Type與對應的設定要怎麼產生實例。 而許多套件方面卻又提供了更多的情境來使用。不但產生的實例可以注入到各種架構,還可搭配情境、生命週期、記憶體方面限制等等,使用上讓開發者感覺有非常豐富的支援。其中挑選了 Autofac來使用與探討,原因是: 1. 有足夠不藏私的說明文件. 2. 支援各種架構的使用,套件有持續維護 (包含新的語法來簡化程式). 3. 有多個貢獻者提供擴充與問題修正. 4. 為開源套件,代表使用上也可以自己客製擴充. ...
繼續閱讀
124 點擊
0 評論