學習後端基礎 - 後端通訊設計模式 1

software

學習後端基礎 - 後端通訊設計模式 1

做網站工程師也有一段時間了,但是一直沒有機會去拆解後端的每個環節,並且深入瞭解底層原理。前陣子剛考完 AWS 的三張證照,考完之後覺得學習不能停歇,於是就把先前買的 Hussein Nasser 老師在 Udemy 上開的後端基礎課程拿出來看,希望能有很大的收穫。 課程裡面最一開始講到了幾種設計模式:Request Response、Synchronous vs Asynchronous、Push、Polling、Long polling、Server sent events、Pub/Sub 等等。這些設計模式對於後端工程師來說應該耳熟能詳,但我也認為說對於沒有實務經驗的新手,應該也可以用一套比較生動的比喻,讓大家都能夠了解各個設計模式的核心概念,以及優缺點。 Request — Response 模式是最經典的,也是一切的基礎。客戶端向伺服器要些資料,伺服器回應這些資料,這就是一次的請求跟回應。而這個請求的結構是由客戶端跟伺服器定義的,兩邊總會有一個協議,傳遞格式化的訊息。做網站後端,最熟悉的一定就是 HTTP 請求了吧,它的格式大概就長下面這個樣子。

By Shiangogo
《逆思維》提醒我重新思考 1

《逆思維》提醒我重新思考 1

好幾個月前在酷澎上買了幾本書,《逆思維》是其中一本。為什麼會買這本書呢?我也忘記為什麼了,大概是因為我覺得我的人生有點卡住了,想要有先人來指點迷津吧?《逆思維》這本書的書名,看起來就是會帶著我以不同的角度,看待這個世界所發生的問題,這麼做說不定就會發現一條出路。 我知道我從小就是一個還算聰明(但是很懶)的人。並不是主觀上的我覺得我很聰明,小時候的智力測驗至少有 120 以上,我在學校的成績也算滿前面的,沒有讀頂大應該是某種神秘力量阻止我好好用功讀書而已。 為什麼我會寫上面這段呢?不是想要吹說我很聰明我好棒。這本書的第一章就有提到,「聰明」可能是聰明人的枷鎖。聰明人更容易辨識出事物的規律、模式,以至於形成刻板印象——從小到大我的想法、觀點,甚至我支持的信念幾乎都是對的,照著這個經驗來肯定沒錯。作者提出了幾種心智模型: 1. 極端教派領袖:我永遠是對的! 2. 政治家:我們是對的,他們是錯的! 3. 傳教士:我是對的! 4. 檢察官:你是錯的 5. 科學家:我也許錯了!

By Shiangogo
養成習慣的練習

life

養成習慣的練習

好幾年前吧,我看了《原子習慣》這本書,一兩個月前又再把它看了一遍。我覺得我是看了這本書,瞭解了書中的一些概念沒錯,但就是沒有很認真的把這本書運用在生活中。我想要每天早睡、運動、讀一點書、寫些東西,這些似乎都沒有做到🫠。 今年 2025 年快要過完了,我終於在 12 月中考完了三張 AWS 證照,完成了今年的一大目標,也放下了我心中一個很重的擔子。希望接下來的日子裡,可以透過一些技巧,養成這些好習慣。不要想說把事情做得很好,但一定要鼓勵自己開始做事。千里之行,始於足下,步伐跨得不遠沒有關係,有在努力前進就好! 希望我可以養成每天寫些東西的習慣,即便是一些沒經過整理的幹話,或是生活中的小發現、小心得也好。我相信輸出文章這件事情,對我的思考、學習有很大的益處。

By Shiangogo
一年內考過三張 AWS 助理級證照(SAA-C03、DVA- C02、SOA-C03)心得分享!

aws

一年內考過三張 AWS 助理級證照(SAA-C03、DVA- C02、SOA-C03)心得分享!

大家好!我是一個有兩年工作經驗的菜雞全端工程師,平常的工作內容大多都是在處理後端業務邏輯,以及前端畫面、交互等等。由於我對我們團隊專案的部署架構幾乎不了解,今年年初我就決定來認真學習 Amazon 雲端的相關知識,並且以考到 SAA-C03、DVA-C02、SOA-C02 這三張證照為首要的目標(SOA-C02 在我休假完回來之後就悄悄更新成 SOA-C03 了)。 如果您跟我一樣是轉職仔,或剛入行沒多久,想要學習 AWS 並且考取證照來讓自己的履歷能夠亮眼一點,也許這篇廢文可以幫助到您。至於說網路上好像很多人分享什麼三個月或幾個月考取這三張證照的心得,為什麼我會把時間拉到一年呢?可能就是因為我懶 + 容易分心 + 排了好多出去玩的假期,畢竟休息是為了走更長遠的路嘛,哈哈哈。 這篇文寫到後面感覺是我想講什麼就寫什麼,所以結構可能很亂,還請讀者見諒🙏。 我的學習素材全部來自於 Stephane Maarek 老師在 Udemy 平台上推出的一系列 AWS 課程。這位老師母語應該是法文,英文稍微有點口音不影響理解,我覺得他的課程算滿完整的,除了觀念講解以外,還有實際操作的畫面,更能

By Shiangogo
安裝好用的文字編輯工具 — LunarVim

安裝好用的文字編輯工具 — LunarVim

大家好,祝福大家都可以睡得很好。 今天來跟大家講講怎麼在 Ubuntu 上安裝 LunarVim 這個好工具,以及它其他好用的套件。它是一個基於 NeoVim 的 IDE,除了基本 Vim 的功能以外,它也集成了很多好用的設定及插件。 由於 APT 庫裡面的 NeoVim 並不是最新的穩定版本,所以我們需要使用別的方法來安裝 NeoVim。 我的安裝策略是這樣的: rsvm => Rust 1.78.0 => Bob => NeoVim v0.9.5 首先,我們先打開終端機,用 curl 指令安裝 rsvm,rsvm 是 Rust 的版本管理工具,安裝後,可以任意切換 Rust

By Shiangogo
優化計算費波那契數的方法 — 動態規劃

優化計算費波那契數的方法 — 動態規劃

大家好,首先先祝福大家身心靈健康。 不知道大家有沒有看過上一篇介紹用遞迴的方法計算費波那契數的文章呢?還沒看的朋友可以點這裡去看看喔! 幫大家回顧一下,使用遞迴的方法計算費波那契數,時間複雜度是 O(φ^n)。以我的運行環境,計算 fibonacci(100) 可能需要五至七萬年左右的時間。 怎麼優化呢?我們可以使用動態規劃(dynamic programming)的方法,避免重複計算相同的子問題,從而提高計算的效率。 動態規劃的核心思想是把中間計算的結果記錄起來,未來需要的時候可以直接使用,而不用重新計算。 下面,我們看看如何用自底向上的動態規劃方法,來計算費波那契數。這種計算方法從下到上計算所有的費波那契數,並暫存在一個陣列中: function fibonacci(n) { if (n <= 1) return n; const dp = new Array(n + 1); dp[0] = BigInt(0); dp[

By Shiangogo
遞迴函式計算費波那契數的時間複雜度分析

遞迴函式計算費波那契數的時間複雜度分析

大家好,不知道大家今天有沒有吃飽呢? 剛入門程式設計,學到「遞迴」操作的時候,老師們都很喜歡舉「費波那契數」的計算為例。以下,我也用 JavaScript 程式碼展示一下費波那契數的計算: function fibonacci(n) { if (n <= 1) return n; return fibonacci(n - 1) + fibonacci(n - 2); } console.log(fibonacci(10)); // 55 這樣的遞迴函式看起來是沒有問題的,但是您可以把 45 以上的數字帶入這個函式試試看。執行的時候,您可能會以為程式卡住了,其實並沒有卡住,只是計算量會變得非常驚人! function recursiveFibonacci(n) { if (n <

By Shiangogo
在 Ubuntu Noble 24.04 上安裝 Docker

在 Ubuntu Noble 24.04 上安裝 Docker

昨天晚上不知道為什麼升級 Manjaro 的時候把系統給搞爆了。我就想說我這麼菜,還是別用 Arch linux 比較好。今天,我把我的系統重灌成 Kubuntu 24.04,想要重新設定一個舒舒服服的開發環境,所以安裝了 Docker。在這裡把這個經驗分享給大家! 首先,要先清除與 Docker 相衝突的軟體包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done 接著,需要安裝 curl 以及 ca-certificates: sudo apt update sudo apt install curl

By Shiangogo
在本地運行 TAIDE 模型

在本地運行 TAIDE 模型

大家好,今天來跟大家分享如何使用 Ollama 來運行國科會推出的 TAIDE 語言模型。 首先,先在電腦上安裝 Ollama。你可以參考 Ollama 官網上面的指示下載並安裝。 您可以在 Terminal 上輸入: ollama --version 以確認 Ollama 已正確安裝。 接著可以到 Taide 的 Hugging Face 下載語言模型的 GGUF 檔案。並在 GGUF 檔案同層的目錄裡建立一個名為 Modelfile 的文件: touch Modelfile 並在 Modelfile 文件裡面加上一行: FROM ./{ GGUF 檔案名稱 } 接著,在 Ollama 上創建,並且運行這個模型: ollama create taide -f

By Shiangogo
給自己一個空間:寫作、思考與自架部落格的起點

給自己一個空間:寫作、思考與自架部落格的起點

大家好呀,這是我在這個個人網站的第一篇文章。 為什麼會想要寫文章呢?主要是我認為透過產出文章,不但可以幫助讀者可以換一個角度去看待事物,更有助於我練習思考、表達,將接收到的資訊內化。 那又為什麼要自架一個網站呢?我試用了幾個寫文章的平台,包括 HackMD、Medium、Dev.to,感覺都沒有一個我要的六邊形戰士。 HackMD 是寫起來最爽,因為他就是用 Markdown 語法,編輯甚至可以用 Vim 模式,對身為工程師的我來說操作就很直覺快速。但是它的缺點也很大,因為它比較像是一個筆記共享平台,而不是部落格。 Medium 就是一個可以寫文章的好地方,但是我沒有付費,想要發布的時候他它我說 24 小時內最多只能發兩篇文,想要排程發布也不讓我排。我也不確定他的草稿機制,好像是先暫存在本機,用其他電腦登入似乎看不到草稿。 Dev.to 是一個很讚的社群平台,功能完整,裡面也有非常多優質的文章可以參考,但他最大的缺點就是太過於軟體技術導向了。我偶爾可能也會想分享一下讀書心得,或是生活中的所見所聞,這些東西可能就不適合發在上面。 找來找去沒有心儀的平台,於是我就再研究了一些自

By Shiangogo