Boison

Boison

處理非同步問題三種方式的解題技巧
寫程式

處理非同步問題三種方式的解題技巧

在這篇文章中,我探討了三種處理非同步問題的方式:Callback、Promise 以及 Async/Await。透過詳細的範例和說明,我解釋了這些技術如何幫助開發者有效管理非同步操作,確保應用程序的流暢執行。每種技術都有其適用場景,從 Callback 的基礎應用到 Promise 的鏈式操作,再到 Async/Await 的直觀語法,這些方法都是現代 JavaScript 開發中不可或缺的技能。
1 min read
JavaScript: Node.js 是其執行環境
寫程式

JavaScript: Node.js 是其執行環境

V8 是 Google 開發的開源 JavaScript 引擎,用於編譯 JavaScript 使其能夠在 Chrome 和 Node.js 中執行。作為一個直譯語言,JavaScript 在執行時需要一個執行環境,而 Node.js 提供了這樣的環境,使得 JavaScript 能夠脫離瀏覽器運行。為了兼顧直譯語言的靈活與編譯語言的效能,V8 採用了即時編譯(JIT)的技術,這種技術在執行 JavaScript 時,能夠即時將程式碼編譯成機器碼,大大提高了執行效率。
1 min read
JavaScript 中 Math 函式的解題技巧:Method 整理
寫程式

JavaScript 中 Math 函式的解題技巧:Method 整理

我這篇文章整理了 JavaScript 中 Math 函式庫的常用方法,包括取絕對值的 Math.abs(x)、無條件進位的 Math.ceil(x)、無條件捨去的 Math.floor(x)、四捨五入的 Math.round(x),以及去除小數點的 Math.trunc(x)。還有生成隨機數的 Math.random()、找最大最小值的 Math.max(...array) 和 Math.min(...array),判斷數值型態的 Math.sign(x),以及計算次方的 Math.pow(base, exponent)。這些方法幫助我在處理數學計算時更加便捷。
2 min read
「經典演算法」的解題技巧:動態規劃、分治、貪婪、回溯、分支限界
寫程式

「經典演算法」的解題技巧:動態規劃、分治、貪婪、回溯、分支限界

我研究了五種主要的演算法:動態規劃是分治法的特例,透過記錄子問題的解來尋求最佳解;分治法則將問題細分並利用遞迴解決;貪婪演算法則是在每一步選擇最佳選項;回溯法通過添加約束來嘗試所有可能性;分支限界法則結合了貪婪與回溯的特性,進行最優選擇並更新條件。
1 min read
[LeetCode 核心演算法] 用 100 字搞懂 Branch-and-Bound 演算法(分支限界法)
寫程式

[LeetCode 核心演算法] 用 100 字搞懂 Branch-and-Bound 演算法(分支限界法)

我的理解是,分支限界法 (Branch and Bound)有點貪婪演算法(Greedy Algorithm)和回溯法(Backtracking)的精神。(可見 回溯法(Backtracking)和 貪婪演算法(Greedy Algorithm)文章)。在每次做出選擇當下選擇最優解,並且將找到的最短路徑作為新的約束條件,若在遍歷過程中不符合此約束條件,就退回一步甚至是上幾步的計算重新選擇。
1 min read
ES6: Map 物件,特性是有順序性
寫程式

ES6: Map 物件,特性是有順序性

在這篇文章中,我深入探討了 ES6 的 Map 物件和它獨特的方法。我示範了如何使用 Map 來存儲鍵值對,並介紹了 Map 的多個操作,包括新增、取值、檢查、迭代和清空等。我還比較了 Map 與傳統 Object 的效能和特性,指出 Map 在處理大量動態鍵值對時的優勢。此外,Map 的順序性和對各種數據類型鍵的支援,使其成為一個非常靈活和強大的數據結構選項。
2 min read
CI/CD 原理的解題技巧:持續集成&持續交付/部署
寫程式

CI/CD 原理的解題技巧:持續集成&持續交付/部署

在這篇文章中,我深入探討了 CI/CD 的三個階段:持續整合(CI)、持續交付(CD)和持續部署(CD),並解釋它們在軟件開發過程中的重要性。我強調了持續整合如何幫助團隊減少整合衝突,持續交付如何保證軟件隨時可部署,以及持續部署如何實現自動化生產部署。此外,我還介紹了在 GitLab 和 Jenkins 中實施 CI/CD 的具體例子。
7 min read
CI/CD: GitHub Actions 自動部署到 GitHub Page
寫程式

CI/CD: GitHub Actions 自動部署到 GitHub Page

在這篇文章中,我探討了如何在 GitHub 上使用 GitHub Actions 來實施 CI/CD,重點介紹了如何撰寫用於持續部署的工作流程腳本。透過簡單的實例,我說明了從建立專案、手動部署、到設定自動化部署的全過程,並提供了 GitHub Actions 腳本的具體配置方法,以幫助讀者能夠更好地利用這一功能來自動化他們的部署過程。
3 min read
動態規劃與分治法(Divide-and-Conquer)的解題技巧
寫程式

動態規劃與分治法(Divide-and-Conquer)的解題技巧

在本文中,我探討了動態規劃與分治法的核心原理和應用。我說明了動態規劃是如何在分治法的基礎上,通過保存小問題的解來避免重複計算,從而提高效率。分析了這兩種方法的實際應用如費波那契數列,並對比了它們的效率。此外,我還介紹了如何使用分治法將大問題分解成小問題,進而找到最終解答的過程。
5 min read
遞迴(Recursion)的解題技巧:原理與實例
寫程式

遞迴(Recursion)的解題技巧:原理與實例

在本文中,我深入探討了遞迴(Recursion)的概念,說明其如何在程式中透過函式自我呼叫來實現循環操作。我介紹了直接遞迴和間接遞迴的不同類型,並用費波那契數列和正整數階乘等經典問題來展示遞迴的應用。此外,我也比較了遞迴與迭代的差異,並探討了動態規劃如何優化遞迴操作,以減少計算重複和提高效率。
5 min read
前端面試常見考題的解題技巧(1-2 年)
寫程式

前端面試常見考題的解題技巧(1-2 年)

在這篇文章中,我深入探討了網頁生命週期的各個階段,從用戶輸入網址到網頁結束,並解釋了如何通過各種前端技術來處理和優化這一過程。我也提到了如何使用不同的 HTTP 方法來執行 CRUD 操作,以及跨瀏覽器兼容性問題的解決方案。此外,我還討論了如何運用 CSS 盒模型來改善頁面布局,以及動畫的實現和性能優化技巧。
5 min read
LeetCode: Array 類型筆記的解題技巧(Easy)
寫程式

LeetCode: Array 類型筆記的解題技巧(Easy)

在這篇文章中,我介紹了在解題過程中常用的九種方法,並針對不同的題目展示這些方法的實際應用。從使用 Set 處理重複值到利用 XOR 找出單獨的元素,每種方法都能有效解決特定的問題。這些技巧包括矩陣操作、數值計算及排序等,旨在提供一個全面的解題工具箱,幫助理解和掌握應對各種編程挑戰的策略。
6 min read