<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BenzHub</title><link>https://benzhub.github.io/</link><description>Recent content on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Sat, 16 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>DNS 域名系統完全指南：從解析原理到實戰指令 | Networking</title><link>https://benzhub.github.io/post/networking/007-dns/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/007-dns/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DNS&lt;/strong&gt;（Domain Name System，域名系統）是網際網路的核心基礎設施之一，負責將人類可讀的 &lt;strong&gt;域名&lt;/strong&gt;（如 &lt;code&gt;www.example.com&lt;/code&gt;）轉換為機器可用的 &lt;strong&gt;IP 位址&lt;/strong&gt;（如 &lt;code&gt;93.184.216.34&lt;/code&gt;）。沒有 DNS，我們就得記住每個網站的 IP 位址才能上網。本文從 DNS 的階層架構、記錄類型、解析流程、快取機制，到 &lt;strong&gt;dig&lt;/strong&gt;、&lt;strong&gt;nslookup&lt;/strong&gt; 等實戰診斷工具，帶你完整掌握 DNS 的核心知識。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TCP 與 UDP：傳輸層協定深入解析 | Networking</title><link>https://benzhub.github.io/post/networking/006-tcp-udp/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/006-tcp-udp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TCP&lt;/strong&gt; 與 &lt;strong&gt;UDP&lt;/strong&gt; 是傳輸層（Transport Layer）最核心的兩個協定。&lt;strong&gt;TCP&lt;/strong&gt; 提供可靠、有序、連接導向的資料傳輸，適用於網頁瀏覽、檔案傳輸等場景；&lt;strong&gt;UDP&lt;/strong&gt; 則以無連接、低延遲的方式快速傳送資料，適合即時語音、線上遊戲等應用。本文從 &lt;strong&gt;封包結構&lt;/strong&gt;、&lt;strong&gt;三向交握&lt;/strong&gt;、&lt;strong&gt;流量控制&lt;/strong&gt;、&lt;strong&gt;壅塞控制&lt;/strong&gt; 到 &lt;strong&gt;Socket 程式設計&lt;/strong&gt; 與 &lt;strong&gt;診斷指令&lt;/strong&gt;，完整解析兩大傳輸層協定的運作原理與實務應用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>OSI 七層模型完全解析：從實體層到應用層 | Networking</title><link>https://benzhub.github.io/post/networking/005-osi-model/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/005-osi-model/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;OSI 七層模型&lt;/strong&gt; 是理解網路通訊的基礎框架，由 &lt;strong&gt;ISO&lt;/strong&gt; 國際標準化組織於 1984 年制定。它將複雜的網路通訊過程拆解為七個各司其職的層級，從最底層的電信號傳輸到最上層的應用程式互動，每一層都有明確的分工。不論是排查網路故障、設計網路架構，還是準備 &lt;strong&gt;CCNA&lt;/strong&gt; 等網路認證考試，OSI 模型都是你必須掌握的核心知識。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 正規表達式（Regular Expressions）入門 | Python</title><link>https://benzhub.github.io/post/python/036-regular-expressions/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/036-regular-expressions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;正規表達式&lt;/strong&gt;（Regular Expressions）是一種強大的文字匹配工具，幾乎所有程式語言都支援。&lt;strong&gt;Python&lt;/strong&gt; 透過內建的 &lt;strong&gt;re&lt;/strong&gt; 模組提供完整的正規表達式功能，讓你能夠高效地進行文字搜尋、比對與替換。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 非同步程式設計（Async/Await）入門 | Python</title><link>https://benzhub.github.io/post/python/037-async-await/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/037-async-await/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的非同步程式設計（Asynchronous Programming）讓你的程式能夠在等待 I/O 操作時繼續執行其他任務，大幅提升效率。透過 &lt;strong&gt;async/await&lt;/strong&gt; 語法與 &lt;strong&gt;asyncio&lt;/strong&gt; 模組，你可以輕鬆撰寫非阻塞式的並行程式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python functools 模組常用工具教學 | Python</title><link>https://benzhub.github.io/post/python/035-functools-module/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/035-functools-module/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的 &lt;strong&gt;functools&lt;/strong&gt; 模組提供了多種處理函式的高階工具，包括快取、偏函式、歸約運算等。善用這些工具，可以大幅提升程式的效能與可讀性。本文將帶你認識 &lt;strong&gt;functools&lt;/strong&gt; 中最常用的幾個函式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python itertools 模組實用教學 | Python</title><link>https://benzhub.github.io/post/python/034-itertools-module/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/034-itertools-module/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的 &lt;strong&gt;itertools&lt;/strong&gt; 模組提供了一系列高效的迭代器工具，讓你在處理迴圈與組合運算時更加簡潔有力。無論是無限序列、排列組合，還是多個可迭代物件的串接，&lt;strong&gt;itertools&lt;/strong&gt; 都能幫你輕鬆完成。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python collections 模組常用工具教學 | Python</title><link>https://benzhub.github.io/post/python/033-collections-module/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/033-collections-module/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的 &lt;strong&gt;collections&lt;/strong&gt; 模組提供了多種高效的資料結構，它們是內建型別（如 &lt;code&gt;dict&lt;/code&gt;、&lt;code&gt;list&lt;/code&gt;、&lt;code&gt;tuple&lt;/code&gt;）的強化版本。透過 &lt;strong&gt;Counter&lt;/strong&gt;、&lt;strong&gt;defaultdict&lt;/strong&gt;、&lt;strong&gt;namedtuple&lt;/strong&gt;、&lt;strong&gt;deque&lt;/strong&gt; 等工具，你可以用更簡潔、更高效的方式處理各種資料集合問題。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python Lambda 與高階函式（Higher-Order Functions） | Python</title><link>https://benzhub.github.io/post/python/032-lambda-higher-order-functions/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/032-lambda-higher-order-functions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，函式是一等公民（First-Class Citizen），可以像變數一樣被傳遞與回傳。&lt;strong&gt;Lambda&lt;/strong&gt; 匿名函式讓你用一行就能定義簡短函式，而 &lt;strong&gt;高階函式（Higher-Order Functions）&lt;/strong&gt; 如 &lt;code&gt;map()&lt;/code&gt;、&lt;code&gt;filter()&lt;/code&gt; 和 &lt;code&gt;sorted()&lt;/code&gt; 則能接受函式作為參數，讓程式碼更加簡潔。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 型別提示（Type Hints）入門教學 | Python</title><link>https://benzhub.github.io/post/python/031-type-hints/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/031-type-hints/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 是一門動態型別語言，變數不需要事先宣告型別。然而，隨著專案規模增長，缺乏型別資訊會讓程式碼難以維護。&lt;strong&gt;型別提示（Type Hints）&lt;/strong&gt; 自 Python 3.5 引入後，讓開發者能為變數、函式參數和回傳值加上型別註解，大幅提升可讀性與 IDE 支援。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Gateway 是什麼？網路閘道器完整教學</title><link>https://benzhub.github.io/post/networking/003-what-is-gateway/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/003-what-is-gateway/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Gateway（閘道器）是網路通訊中負責「跨網段轉發封包」的關鍵設備。當你的電腦要連上網際網路，或是與不同子網路的設備通訊，封包都必須先經過 Gateway。本文用白話解說 Gateway 的定義、運作原理、查看與設定方式，並示範常見問題排查。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 生成器（Generators）教學指南 | Python</title><link>https://benzhub.github.io/post/python/030-generators/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/030-generators/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，&lt;strong&gt;生成器（Generators）&lt;/strong&gt; 是一種特殊的迭代器，能以惰性求值的方式逐一產出資料，而非一次將所有資料載入記憶體。本篇將帶你認識 &lt;strong&gt;yield&lt;/strong&gt; 關鍵字、生成器表達式，以及如何利用生成器高效處理大型資料集。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 迭代器（Iterators）深入解析 | Python</title><link>https://benzhub.github.io/post/python/029-iterators/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/029-iterators/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，&lt;strong&gt;迭代器（Iterator）&lt;/strong&gt; 是驅動 &lt;strong&gt;for&lt;/strong&gt; 迴圈運作的核心機制。理解迭代器協議（Iterator Protocol）不僅能讓你更深入了解 &lt;strong&gt;Python&lt;/strong&gt; 的設計哲學，還能幫助你建立高效處理大量資料的自定義物件。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Subnet Mask 是什麼？子網路遮罩白話教學</title><link>https://benzhub.github.io/post/networking/004-what-is-subnet-mask/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/004-what-is-subnet-mask/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Subnet Mask（子網路遮罩）是 IP 位址的好搭檔，負責告訴設備「哪個部分是網路位址、哪個部分是主機位址」，讓封包知道目標是在同一個網段還是需要透過 Gateway 轉發。本文用白話加上二進位範例，徹底說清楚子網路遮罩的原理、CIDR 表示法、以及子網段劃分的基礎概念。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 上下文管理器（Context Manager）教學 | Python</title><link>https://benzhub.github.io/post/python/026-context-manager/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/026-context-manager/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，&lt;strong&gt;上下文管理器（Context Manager）&lt;/strong&gt; 是一種優雅的資源管理機制。透過 &lt;strong&gt;with&lt;/strong&gt; 語句，我們可以確保資源在使用完畢後被正確釋放，無論過程中是否發生錯誤。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 模組與套件（Modules &amp; Packages）入門 | Python</title><link>https://benzhub.github.io/post/python/028-modules-packages/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/028-modules-packages/</guid><description>&lt;blockquote&gt;
&lt;p&gt;隨著程式碼規模成長，將所有程式碼放在同一個檔案中會變得難以管理。&lt;strong&gt;Python&lt;/strong&gt; 的 &lt;strong&gt;模組（Modules）&lt;/strong&gt; 與 &lt;strong&gt;套件（Packages）&lt;/strong&gt; 系統讓你能將程式碼分割成獨立的檔案，提升可讀性與可重用性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 檔案讀寫（File I/O）完整教學 | Python</title><link>https://benzhub.github.io/post/python/027-file-io/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/027-file-io/</guid><description>&lt;blockquote&gt;
&lt;p&gt;檔案讀寫（File I/O）是程式開發中不可或缺的技能。&lt;strong&gt;Python&lt;/strong&gt; 提供了簡潔又強大的檔案操作方式，從基本的 &lt;strong&gt;open()&lt;/strong&gt; 函式到現代化的 &lt;strong&gt;pathlib&lt;/strong&gt; 模組，讓你能輕鬆處理各種檔案需求。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 錯誤處理（Error Handling）完整教學 | Python</title><link>https://benzhub.github.io/post/python/025-error-handling/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/025-error-handling/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在撰寫 &lt;strong&gt;Python&lt;/strong&gt; 程式時，錯誤是無法避免的。&lt;strong&gt;例外處理（Exception Handling）&lt;/strong&gt; 讓你能優雅地處理這些錯誤，避免程式意外中斷。本篇將介紹 Python 的錯誤處理機制，從基礎的 &lt;code&gt;try/except&lt;/code&gt; 語法到自定義例外類別，幫助你寫出更穩健的程式碼。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 魔術方法（Magic Methods）完整指南 | Python</title><link>https://benzhub.github.io/post/python/024-magic-methods/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/024-magic-methods/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的 &lt;strong&gt;魔術方法（Magic Methods）&lt;/strong&gt;，又稱為 &lt;strong&gt;雙底線方法（Dunder Methods）&lt;/strong&gt;，是一組以雙底線開頭和結尾的特殊方法。透過定義這些方法，你可以讓自定義的類別支援 Python 的內建操作，例如 &lt;code&gt;print()&lt;/code&gt;、&lt;code&gt;len()&lt;/code&gt;、算術運算等，讓你的程式碼更加 Pythonic。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 裝飾器（Decorators）入門教學 | Python</title><link>https://benzhub.github.io/post/python/022-decorators/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/022-decorators/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，&lt;strong&gt;裝飾器（Decorators）&lt;/strong&gt; 是一個非常強大且優雅的語法特性。它能讓你在不修改原始函式程式碼的情況下，為函式添加額外的功能。本篇將帶你從基礎概念開始，逐步掌握裝飾器的使用方法。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 繼承與多型（Inheritance &amp; Polymorphism） | Python</title><link>https://benzhub.github.io/post/python/023-inheritance-polymorphism/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/023-inheritance-polymorphism/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 的物件導向程式設計中，&lt;strong&gt;繼承（Inheritance）&lt;/strong&gt; 與 &lt;strong&gt;多型（Polymorphism）&lt;/strong&gt; 是兩個核心概念。繼承讓你能夠重用既有的程式碼，而多型讓不同類別的物件可以透過相同的介面來操作。本篇將帶你深入了解這兩個重要的 OOP 特性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>fnm 安裝與常用指令完整教學 | 比 nvm 快 40 倍的 Node.js 版本管理器</title><link>https://benzhub.github.io/post/javascript/056-fnm-commands/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/056-fnm-commands/</guid><description>&lt;blockquote&gt;
&lt;p&gt;用了 nvm 這麼久，直到打開終端機等了三秒 shell 才載入，才知道原來版本管理器也可以很慢。fnm 是同一件事的 Rust 版本——快得幾乎感覺不到它在。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>NVM 常用指令一覽表：安裝、切換、管理 Node.js 版本</title><link>https://benzhub.github.io/post/javascript/055-nvm-commands/</link><pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/055-nvm-commands/</guid><description>&lt;blockquote&gt;
&lt;p&gt;以下是我整理的，最常使用的nvm 指令一覽表&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>NVM 是什麼？Node Version Manager 完整介紹</title><link>https://benzhub.github.io/post/javascript/052-whats-nvm/</link><pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/052-whats-nvm/</guid><description>&lt;blockquote&gt;
&lt;p&gt;NVM 是一個常見的網路用語，有兩種主要的含義：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;英文縮寫&lt;/li&gt;
&lt;li&gt;Node 版本管理器&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Windows 上安裝 NVM | Javascript</title><link>https://benzhub.github.io/post/javascript/053-how-to-install-nvm-in-windows-copy/</link><pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/053-how-to-install-nvm-in-windows-copy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;NVM (Node Version Manager) 主要支援 Linux 和 Mac 系統。 雖然 Windows 不支援 NVM，但有一個名為 &lt;strong&gt;nvm-windows&lt;/strong&gt; 的工具，由 coreybutler 開發，可在 Windows 上提供類似的 NVM 體驗。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>為什麼一定要用 NVM？Node.js 版本管理的必要性</title><link>https://benzhub.github.io/post/javascript/054-whats-the-reason-you-must-use-nvm/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/054-whats-the-reason-you-must-use-nvm/</guid><description>&lt;blockquote&gt;
&lt;p&gt;許多人會說不一定要使用nvm去管理不同的node.js版本，但其實在工作職場上，我們大部分時候是要去維護已經存在的專案，這時候就可以知道nvm對於管理眾多不同node.js版本的重要性了&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>設計模式類別 | Design Pattern</title><link>https://benzhub.github.io/post/design-pattern/002-design-pattern-classification/</link><pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/design-pattern/002-design-pattern-classification/</guid><description>&lt;h2 id="設計模式主要可以分為三大類別"&gt;設計模式主要可以分為三大類別：&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://benzhub.github.io/img/design-pattern/002-Design-Pattern-classification/1.svg" alt="classification.svg"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;創建型模式（Creational Design Patterns）&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這些模式專注於物件的創建過程。它們將物件的實例化過程抽象化，有助於使系統不依賴於物件的創建、組合和表示方式。&lt;/li&gt;
&lt;li&gt;創建型模式提供一種在隱藏創建邏輯的同時創建物件的方法，而不是直接使用 new 運算符。&lt;/li&gt;
&lt;li&gt;這在決定特定使用案例需要創建哪些物件時提供了更大的靈活性。&lt;/li&gt;
&lt;li&gt;一些常見的創建型模式包括:
&lt;ol&gt;
&lt;li&gt;單例模式&lt;/li&gt;
&lt;li&gt;工廠方法模式&lt;/li&gt;
&lt;li&gt;抽象工廠模式&lt;/li&gt;
&lt;li&gt;建造者模式&lt;/li&gt;
&lt;li&gt;原型模式&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;結構型模式（Structural Design Patterns）&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>為什麼要使用設計模式&amp;設計模式常見錯誤 | Design Pattern</title><link>https://benzhub.github.io/post/design-pattern/001-design-pattern-introduction/</link><pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/design-pattern/001-design-pattern-introduction/</guid><description>&lt;h2 id="設計模式常見問題"&gt;設計模式常見問題&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. 什麼是設計模式?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;設計模式是一種針對軟體設計中常見問題的可重複使用解決方案,特別適用於物件導向程式設計 (OOP) 的環境中。這些模式提供了解決特定類型問題的模板或結構,使開發人員更容易編寫可維護且高效的程式碼。&lt;/p&gt;</description></item><item><title>Javascript各種情況下的this | Javascript</title><link>https://benzhub.github.io/post/javascript/051-this-situation/</link><pubDate>Fri, 08 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/051-this-situation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 JavaScript 中，「this」是一個令人頭痛但同時又是極其重要的概念。它的值取決於該函數是如何被呼叫的，而這種動態的指向方式可能會導致許多混淆和錯誤。在這篇文章中，本篇文章我們將探討 JavaScript 中各種情況下的「this」，揭示它背後的運作的邏輯，幫助你更好地理解。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python中的*args和**kwargs：讓你的函式更具彈性 | Python</title><link>https://benzhub.github.io/post/python/020-args-kwargs/</link><pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/020-args-kwargs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在Python程式設計中，*args和**kwargs是兩個強大的功能，可以讓你的函式更具彈性，讓你能夠處理不確定數量的參數。這兩個概念在函式設計中非常常見，特別是在需要處理各種不同類型的資料時。在本篇文章中，我們將深入探討*args和**kwargs的概念，並提供一些實用的範例，幫助你更好地理解它們的使用方法。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python的物件導向程式設計 | Python</title><link>https://benzhub.github.io/post/python/021-oop/</link><pubDate>Tue, 05 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/021-oop/</guid><description>&lt;blockquote&gt;
&lt;p&gt;物件導向程式設計（Object-Oriented Programming，簡稱OOP）已成為軟體開發中一個極為重要的程式設計方法。Python作為一門廣泛應用的程式語言，也支援物件導向程式設計。本篇將會介紹Python中的物件導向程式設計，以及一些基本概念和範例。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>深入探索Git Rebase：提升你的分支合併技能 | Git</title><link>https://benzhub.github.io/post/git/018-cherry-pick/</link><pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/018-cherry-pick/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發中，我們常常會遇到需要合併不同分支上的特定提交（commit）的情況。這時候，Git 提供了一個強大的工具，就是 &lt;code&gt;cherry-pick&lt;/code&gt;。這個指令可以讓你從其他分支中選擇單獨的提交，並將其應用到目前的分支中。讓我們一起來看看如何使用 &lt;code&gt;cherry-pick&lt;/code&gt; 這個神奇的指令吧！&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>深入探索Git Rebase：提升你的分支合併技能 | Git</title><link>https://benzhub.github.io/post/git/017-rebase/</link><pubDate>Sat, 02 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/017-rebase/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Git rebase 是一個強大而又常被忽視的功能，它允許開發人員重新定義提交的歷史，提供了更加乾淨、簡潔的提交歷史。本篇將深入探討Git rebase的原理、使用方式以及常見應用場景。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>常見 JavaScript 字串操作方法總覽 | Javascript</title><link>https://benzhub.github.io/post/javascript/050-string-operations/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/050-string-operations/</guid><description>&lt;blockquote&gt;
&lt;p&gt;JavaScript 是一門廣泛用於網頁開發的程式語言，它提供了豐富的字串操作方法，讓開發者可以輕鬆地處理和轉換文字數據。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git 中【三路合併】指令 (Fast-forward Merge) | Git</title><link>https://benzhub.github.io/post/git/016-three-way-merge/</link><pubDate>Thu, 29 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/016-three-way-merge/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在軟體管理版本中，Git是一個極為重要且普遍使用的版本控制工具。當多個開發者在同時修改同一個檔案時，可能會導致程式碼混亂並產生衝突。而Git中的三路合併（Three-way Merges）機制，就是為了解決這種衝突而存在的工具。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git 中的「快轉合併」指令 (Fast-forward Merge) | Git</title><link>https://benzhub.github.io/post/git/015-fast-forward-merge/</link><pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/015-fast-forward-merge/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在Git中遇到分支合併時，其中一個概念就是「快轉合併（Fast-forward Merge）」。我們將探討這個概念，並展示如何在你的開發流程中使用它。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git Stash 暫存檔案指令 | Git</title><link>https://benzhub.github.io/post/git/014-stash/</link><pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/014-stash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發程式的過程中，有時候可能需要立即切換到其他分支，但又不想讓目前的程式碼變得混亂。這時候，Git Stash 就是一個非常實用的工具，讓我們能夠有效地管理暫存檔案，並在需要時輕鬆地取回我們暫存的檔案。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>了解Git合併衝突：解決開發者最常見頭痛的狀況 | Git</title><link>https://benzhub.github.io/post/git/013-merge-conflicts/</link><pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/013-merge-conflicts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Git可以讓團隊能夠有效地協作、追蹤程式碼更動、以及管理版本控制。然而，當多個開發者同時修改相同的檔案時，就常常會引發Git合併衝突的問題發生。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git分支：有效管理開發流程的必備技巧 | Git</title><link>https://benzhub.github.io/post/git/012-branchs/</link><pubDate>Thu, 22 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/012-branchs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在程式碼管理中Git已成為管理版本的不二之選。而Git的分支功能更是其強大之處之一。分支讓開發者可以同時進行多個專案的不同功能或修復不同的bug，而不會影響到主要的程式碼庫。但是，要善用Git分支，我們需要了解何時以及如何使用它們。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>掌握Git中的「標籤」：讓你的程式碼版本控制更得心應手！ | Git</title><link>https://benzhub.github.io/post/git/011-tagging/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/011-tagging/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在軟體開發的世界中，追蹤程式碼的版本是一個關鍵性的任務。在大型專案中，可能會有數十甚至數百個不同的版本，為了方便管理和溝通，我們需要一種有效的方式來標識每個版本。這就是Git tag (標籤)的好用之處！&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git 回到過去歷史的 Commit | Git</title><link>https://benzhub.github.io/post/git/010-checking-out-a-commit/</link><pubDate>Tue, 20 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/010-checking-out-a-commit/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在Git中 checkout 是一個強大的功能，它讓你可以輕鬆地回到過去的某個特定 commit，查看當時的程式碼狀態，這對於除錯、比較不同版本的程式碼、或者修復錯誤都非常有用。現在讓我們來深入了解如何使用這個功能。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git Alias: 提高效率的神奇工具(自定義git指令) | Git</title><link>https://benzhub.github.io/post/git/009-alias/</link><pubDate>Mon, 19 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/009-alias/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在使用 Git 進行開發時，經常會遇到需要輸入長長的指令的情況，例如 git commit -m &amp;ldquo;commit message&amp;rdquo; 或者 git push origin master。而 Git Alias 是一個極為方便的功能，可以讓我們將這些常用的指令簡化成自定義的縮寫，從而提高開發效率。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git中Log輸出format功能 | Git</title><link>https://benzhub.github.io/post/git/008-output-format/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/008-output-format/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在日常的軟體開發中，Git 是一個不可或缺的版本控制工具。而其中的 Log（記錄）功能更是開發者們經常使用的一項功能。透過查看 Log，我們可以清楚地了解到專案的歷史紀錄、每一次提交的詳細信息以及作者的資訊等。然而，Git 提供了一些格式化 Log 輸出的功能，使得我們可以更加靈活地呈現這些信息。接下來，讓我們一起來探討一下 Git 中 Formatting the Log Output 的最常用功能吧！&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>定義React組件的屬性類型 | React</title><link>https://benzhub.github.io/post/react/009-defining-component-props-types/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/009-defining-component-props-types/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發React應用程序時，使用TypeScript可以大大提高代碼的可讀性和可維護性。其中一個關鍵部分是定義組件的屬性類型，這樣可以在開發過程中即時發現錯誤，並且在多人協作中更嚴謹。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>在不破壞現有commits的情況下，找回被誤刪的檔案 | Git</title><link>https://benzhub.github.io/post/git/007-restore-file-in-commit/</link><pubDate>Sat, 17 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/007-restore-file-in-commit/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在使用 Git 進行版本控制時，有時你可能會出現不小心刪除某些檔案，這時需要將某個檔案還原到指定的commit(提交)版本。但是你想在不破壞整個文件夾的commit(提交)版本下，還原某一些檔案，我們將介紹如何使用 Git 命令來找回一些你不小心刪除的檔案。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>理解 Git 中的「已暫存」與「未暫存」的概念 | Git</title><link>https://benzhub.github.io/post/git/006-staged-and-unstaged/</link><pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/006-staged-and-unstaged/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 Git 中，有一個重要的概念是「已暫存」（Staged）和「未暫存」（Unstaged）。這兩個概念對於有效管理和追蹤你的專案變更至關重要。在本文中，我將解釋這兩個概念，並提供一些簡單的示例來幫助你更好地理解它們。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>如何在 ESLint 中忽略 React 組件未使用的警告 | React</title><link>https://benzhub.github.io/post/react/008-eslint-react-disable-rules/</link><pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/008-eslint-react-disable-rules/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發 JavaScript 時，我們經常會使用 ESLint 來檢查我們的代碼，以確保代碼風格的一致性和檢測潛在的錯誤。然而，有時候我們可能會遇到一些警告，尤其是當我們使用 React 框架時。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>了解 React JSX 的規則 | React</title><link>https://benzhub.github.io/post/react/007-the-rules-of-jsx/</link><pubDate>Tue, 13 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/007-the-rules-of-jsx/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 React 中，JSX（JavaScript XML）是一種語法擴展，它允許我們在 JavaScript 中編寫類似 HTML 的語法。雖然 JSX 看起來很像 HTML，但它實際上是 JavaScript。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>深入了解 React 的單向數據流（One-Way Data Flow） | React</title><link>https://benzhub.github.io/post/react/006-one-way-data-flow/</link><pubDate>Mon, 12 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/006-one-way-data-flow/</guid><description>&lt;blockquote&gt;
&lt;p&gt;React 是當今最受歡迎的 JavaScript 前端框架之一，其提供了一種簡潔而強大的方式來構建用戶界面。其中，React 的單向數據流（One-Way Data Flow）是其核心概念之一，它確保了應用程序中數據的流動方向清晰明確，從而使得應用程序的狀態管理變得更加簡單和可控。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>React中的Props：父子組件間的溝通方式 | React</title><link>https://benzhub.github.io/post/react/005-passing-and-receiving-props/</link><pubDate>Sat, 10 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/005-passing-and-receiving-props/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在React應用程式中，組件之間的溝通是至關重要的。一種常見的方式是通過Props（屬性）來傳遞和接收參數。Props是從父組件傳遞給子組件的參數，這讓組件可以根據不同的情況動態地呈現資料。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>如何在 React 中進行樣式設計(CSS in React) | React</title><link>https://benzhub.github.io/post/react/004-styling-react-applications/</link><pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/004-styling-react-applications/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在建立 React 應用程式時，有效的樣式設計是至關重要的一環。React 提供了許多不同的方式來管理樣式，從傳統的 CSS 檔案到各種 CSS-in-JS 解決方案。本篇文章將介紹一些常見的方法，並提供簡單的程式碼範例。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>React 與 Vanilla JavaScript 分離關注點的不同 | React</title><link>https://benzhub.github.io/post/react/003-separation-of-concerns/</link><pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/003-separation-of-concerns/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在軟體開發中，分離關注點（Separation of Concerns）是一個重要的設計原則，它有助於保持程式碼的清晰、易於維護和擴展。React 和 Vanilla JavaScript 是兩種常見的前端開發方式，它們在處理分離關注點上有著不同的方法。本文將探討 React 和 Vanilla JavaScript 中分離關注點的不同之處，並附上簡易範例來說明。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>使用Zod進行 API 資料驗證 | Javascript</title><link>https://benzhub.github.io/post/javascript/049-zod-validation-data/</link><pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/049-zod-validation-data/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在串接API時，確保用戶提交的數據符合預期格式和結構是至關重要的。使用Zod可以幫助我們輕鬆地定義和驗證後端API的輸入和輸出數據，從而提高程式碼的穩定性和安全性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Components 在React 中的重要性 | React</title><link>https://benzhub.github.io/post/react/002-components-in-react/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/002-components-in-react/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt; 它的核心概念之一就是 &lt;strong&gt;Component（組件）&lt;/strong&gt;。在這篇文章中，我們將深入探討 &lt;strong&gt;React&lt;/strong&gt; 中的 &lt;strong&gt;Component&lt;/strong&gt; 是什麼，以及它們如何幫助我們構建交互式的Web應用程序。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>JavaScript 物件移除屬性的三種方法 | Javascript</title><link>https://benzhub.github.io/post/javascript/048-remove-objects-property/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/048-remove-objects-property/</guid><description>&lt;blockquote&gt;
&lt;p&gt;有時候，我們可能需要移除物件中的某個屬性。這篇文章將介紹三種常見的方法來移除 JavaScript 物件中的屬性(Porperty)，分別是使用 delete 關鍵字、解構（destructuring）、以及 Object.assign 方法。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title> TypeScript中使用Omit來排除 interface property | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/006-omit-remove-property/</link><pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/006-omit-remove-property/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在使用TypeScript開發應用程式時，我們常常需要定義新的 Interface 來描述物件的形狀和結構。有時候，我們可能需要在一個介面中排除某些屬性，而不是直接複製所有屬性到一個新的 Interface。這時，TypeScript提供了一個非常方便的工具：&lt;code&gt;Omit&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>淺談React中的JSX：一個革命性的網頁開發工具 | React</title><link>https://benzhub.github.io/post/react/001-what-is-jsx-in-react/</link><pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/react/001-what-is-jsx-in-react/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在當今的網頁開發世界中， &lt;strong&gt;React&lt;/strong&gt; 已經成為了一個極為受歡迎的 &lt;strong&gt;JavaScript&lt;/strong&gt; 函式庫，它能夠幫助開發者建構出具有良好組織結構和高度互動性的使用者介面。而要談到 &lt;strong&gt;React&lt;/strong&gt; ，就必須提及一個重要的概念： &lt;strong&gt;JSX&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>HTTP/2：下一代網路通訊協定 | 網絡通訊</title><link>https://benzhub.github.io/post/networking/002-what-is-http2/</link><pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/002-what-is-http2/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTTP/2&lt;/strong&gt; 是一種革命性的網路通訊協定，旨在提高網頁加載速度和效能。相較於傳統的HTTP/1.1， &lt;strong&gt;HTTP/2&lt;/strong&gt; 引入了許多新功能和優化，使得瀏覽器和伺服器之間的通訊更加高效和快速。我們將會介紹 &lt;strong&gt;HTTP/2&lt;/strong&gt; 的一些重要特性和優勢。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>在Django中使用一對多(One-to-Many Relationship)建立Models | Django</title><link>https://benzhub.github.io/post/django/005-one-to-many-relationships/</link><pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/django/005-one-to-many-relationships/</guid><description>&lt;blockquote&gt;
&lt;p&gt;哈囉各位網友！今天我要來跟大家介紹在 &lt;strong&gt;Django&lt;/strong&gt; 中的 &lt;strong&gt;One-to-many&lt;/strong&gt; 關係，也就是一對多的關係！如果你正在開發一個網站，想要讓某個物件與多個其他物件相關聯，這個功能可就派上用場了！&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>淺談Python中的字典理解式(Dictionary comprehensions) | Python</title><link>https://benzhub.github.io/post/python/019-dictionary-comprehensions/</link><pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/019-dictionary-comprehensions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在Python中，字典（Dictionary）是一個非常強大且常用的資料結構，它允許我們將資料以鍵值對的形式進行存儲和訪問。而字典理解式（Dictionary Comprehensions）則是一種精簡且有效的創建字典的方法，讓我們能夠以更簡單、更易讀的方式來生成字典。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Django 連接 PostgreSQL 資料庫教學</title><link>https://benzhub.github.io/post/django/004-django-connect-postgresql-copy/</link><pubDate>Sat, 03 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/django/004-django-connect-postgresql-copy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發網站應用程式時，使用 &lt;strong&gt;Django&lt;/strong&gt; 搭配 &lt;strong&gt;PostgreSQL&lt;/strong&gt; 資料庫是一個常見的組合。本文將介紹如何透過 &lt;strong&gt;Psycopg2&lt;/strong&gt; 套件，將 &lt;strong&gt;Django&lt;/strong&gt; 與 &lt;strong&gt;PostgreSQL&lt;/strong&gt; 連接起來。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>函數預設參數(Default Parameters)常見錯誤解析 | Python</title><link>https://benzhub.github.io/post/python/018-default-parameters/</link><pubDate>Sat, 03 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/018-default-parameters/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，函數的預設參數（ &lt;strong&gt;Default Parameters&lt;/strong&gt; ）是一個強大的功能，它允許你在定義函數時指定某些參數的預設值。然而，這可能導致一些常見的錯誤，特別是在處理可變對象時。在本篇文章中，我們將探討這些常見的錯誤，並提供解決方案。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 函數(Functions)入門指南 | Python</title><link>https://benzhub.github.io/post/python/017-functions/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/017-functions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，函數是程式設計中極為重要的一個概念。它們可以讓你將程式碼組織成可重複使用的塊，使得程式更易於閱讀、維護和擴展。在這篇文章中，我們將從基礎到進階，探討 &lt;strong&gt;Python&lt;/strong&gt; 函數(Functions)的各個方面。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Flutter vs React Native 比較：跨平台框架怎麼選？</title><link>https://benzhub.github.io/post/flutter/001-flutter-vs-react-native/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/flutter/001-flutter-vs-react-native/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在移動應用程式開發領域，跨平台框架的發展已成為一個重要趨勢。 &lt;strong&gt;Flutter&lt;/strong&gt; 和 &lt;strong&gt;React Native&lt;/strong&gt; 是兩個領先的跨平台框架，它們在開發速度、性能和用戶體驗方面都有著顯著的影響力。本文將探討 &lt;strong&gt;Flutter&lt;/strong&gt; 和 &lt;strong&gt;React Native&lt;/strong&gt; 的異同點，並提供簡單的範例來幫助開發者更好地理解它們。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>HTML &amp; CSS RWD @media 使用介紹 | CSS</title><link>https://benzhub.github.io/post/htmlcss/023-rwd/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/023-rwd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;HTML和CSS中的Responsive Web Design（RWD）技術，特別是@media查詢，是用來製作具有響應式的網頁。讓我們一起來看看如何使用@media查詢在不同設備上呈現不同的風格和排版。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>深入了解 Python 的解構變數（Destructuring Variables） | Python</title><link>https://benzhub.github.io/post/python/016-destructuring-variables/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/016-destructuring-variables/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，解構（ &lt;strong&gt;Destructuring&lt;/strong&gt; ）是一種強大的技術，它允許你在單行中將複雜的資料結構解包並分配給多個變數。這種技術不僅使程式碼更簡潔易讀，還可以提高效率。讓我們深入了解 &lt;strong&gt;Python&lt;/strong&gt; 中解構變數的工作原理以及如何使用它。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Django Choice Fields - 在模型中添加選擇欄位 | Django</title><link>https://benzhub.github.io/post/django/002-choice-fields/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/django/002-choice-fields/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Django&lt;/strong&gt; 模型中，有時候我們需要限制某一個字段的值，只允許它在一組特定的選項中取值。這時， &lt;strong&gt;Django&lt;/strong&gt; 的 &lt;strong&gt;Choice Fields&lt;/strong&gt; 就派上用場了。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>什麼是 Cron Job？Linux 定時排程任務完整教學</title><link>https://benzhub.github.io/post/linux/022-cron-job/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/022-cron-job/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 系統中，&lt;strong&gt;Cron Job&lt;/strong&gt; 是自動化排程任務的核心工具。只要設定一次，系統就會在指定時間自動執行備份、清理日誌、監控服務等重複性工作，大幅提升運維效率。本篇從 Cron 基礎原理、時間格式、實用範例到除錯技巧，完整介紹 Cron Job 的所有知識。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>創建模型(Models) | Django</title><link>https://benzhub.github.io/post/django/001-creating-models/</link><pubDate>Tue, 30 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/django/001-creating-models/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Django&lt;/strong&gt; 中，通過創建 &lt;strong&gt;Models&lt;/strong&gt; ，你可以定義的數據結構，並將其映射到資料庫。這使得資料的管理和操作變得更加簡單，同時保持了代碼的整潔性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>列表推導式(List Comprehensions)：簡潔的序列創建工具 | Python</title><link>https://benzhub.github.io/post/python/013-list-comprehensions/</link><pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/013-list-comprehensions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中， &lt;strong&gt;列表推導式（List comprehensions）&lt;/strong&gt; 是一種強大而簡潔的語法，用於快速創建列表。這種技術不僅可以讓你以更簡單的方式生成列表，還提高了代碼的可讀性。本文將深入解釋列表推導式的使用方法，並通過範例程式碼演示其優雅和效率。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>break、continue 與 pass：掌握控制流程 | Python</title><link>https://benzhub.github.io/post/python/012-break-continue-pass/</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/012-break-continue-pass/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 程式設計中， &lt;strong&gt;break&lt;/strong&gt; 、 &lt;strong&gt;continue&lt;/strong&gt; 和 &lt;strong&gt;pass&lt;/strong&gt; 是控制流程的關鍵字，它們在迴圈條件語句中有著不同的作用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>迴圈(Loop)：探索程式的無窮可能 | Python</title><link>https://benzhub.github.io/post/python/011-loop/</link><pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/011-loop/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在程式設計的世界中， &lt;strong&gt;迴圈(Loop)&lt;/strong&gt; 是一個強大的概念，它允許我們重複執行特定的程式碼塊，直到滿足特定的條件。Python 提供了多種迴圈結構，包括 &lt;strong&gt;for&lt;/strong&gt; 迴圈和 &lt;strong&gt;while&lt;/strong&gt; 迴圈，這些迴圈在不同情境中都能發揮重要作用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>in 關鍵字，搜尋的得力助手 | Python</title><link>https://benzhub.github.io/post/python/010-in-keyword/</link><pubDate>Fri, 26 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/010-in-keyword/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，&lt;code&gt;in&lt;/code&gt; 關鍵字是一個強大而靈活的工具，它用於檢查某個值是否存在於特定的對象（例如列表、元組、字典、字串等）中。這個功能不僅簡化了程式碼的撰寫，還提高了代碼的可讀性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 字典（Dictionary） | Python</title><link>https://benzhub.github.io/post/python/015-dictionary/</link><pubDate>Fri, 26 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/015-dictionary/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 的世界中， &lt;strong&gt;字典（Dictionary）&lt;/strong&gt; 是一種靈活的數據結構，它允許我們以鍵值對的形式組織和存儲數據。本篇文章將會介紹 &lt;strong&gt;Python&lt;/strong&gt; 字典的基本概念、操作方法以及一些實用的技巧。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Python 圖片壓縮 (Pillow) | Python</title><link>https://benzhub.github.io/post/python/014-images-compress-size/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/014-images-compress-size/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在開發網站或應用程式時，圖片壓縮是一個重要的步驟，可以幫助提高網頁載入速度，節省流量，並改善用戶體驗。我們將介紹如何使用 &lt;strong&gt;Python&lt;/strong&gt; 進行圖片壓縮，並提供一個簡單的範例。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>條件語句 (if else Statement) | Python</title><link>https://benzhub.github.io/post/python/009-if-statements/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/009-if-statements/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中， &lt;strong&gt;if else statement&lt;/strong&gt; 條件語句是控制程式流程的重要部分。 &lt;strong&gt;if&lt;/strong&gt; 陳述句允許我們根據特定的條件來執行或跳過程式區塊。這個功能是寫程式時不可或缺的一部分，讓我們透過以下的範例深入了解 &lt;strong&gt;if&lt;/strong&gt; 陳述句的使用方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>深入了解 Map 型別 | Javascript</title><link>https://benzhub.github.io/post/javascript/047-maps/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/047-maps/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中， &lt;strong&gt;Map&lt;/strong&gt; 是一種強大的內建物件型別，用於儲存鍵-值對。它提供了比普通的物件更豐富的功能，讓我們更靈活地處理資料。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>原始型別（Primitive Types）和引用型別（Reference Types） | Python</title><link>https://benzhub.github.io/post/python/008-primitive-vs-reference/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/008-primitive-vs-reference/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，變數的類型可以分為兩大類： &lt;strong&gt;原始型別（Primitive Types）&lt;/strong&gt; 和 &lt;strong&gt;引用型別（Reference Types）&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>檔案傳輸 (SFTP) | Linux</title><link>https://benzhub.github.io/post/linux/021-sftp/</link><pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/021-sftp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Secure File Transfer Protocol（SFTP）&lt;/strong&gt; 是一種在安全通道上進行檔案傳輸的協定，通常基於 SSH（Secure Shell）協定。 &lt;strong&gt;SFTP&lt;/strong&gt; 提供了一個安全的方法，允許用戶在本地和遠程Linux系統之間傳輸檔案，同時保護資料傳輸的和完整。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>變數(variables)的身份（identity） | Python</title><link>https://benzhub.github.io/post/python/007-identity/</link><pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/007-identity/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中， &lt;strong&gt;變數的身份（identity）&lt;/strong&gt; 是指變數所指向的記憶體地址。每個在 &lt;strong&gt;Python&lt;/strong&gt; 中創建的對象都有一個唯一的身份標識，這個標識是根據對象在記憶體中的位置而定的。變數的身份實際上就是這個記憶體地址。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>== 和 is 的差別 | Python</title><link>https://benzhub.github.io/post/python/006-boolean-in-python/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/006-boolean-in-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Python&lt;/strong&gt; 中，==和is是兩個常用的比較運算符，但它們之間有著重要的區別。這篇文章將詳細解釋==和is的不同之處，並提供一些簡單的範例，以更好地理解它們的運作方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Django Model 中的一對一關係(One-to-one Relationships) | Django</title><link>https://benzhub.github.io/post/django/003-one-to-one-relationships/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/django/003-one-to-one-relationships/</guid><description>&lt;blockquote&gt;
&lt;p&gt;模型之間的一對一關係(One-to-one Relationships)是其中一種，它讓我們能夠在兩個模型之間建立連結。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git 分支合併策略: 快進合併(Fast-forward) vs. 三向合併(Three-way) | Git</title><link>https://benzhub.github.io/post/git/005-merge-strategy/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/005-merge-strategy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Git 是一個分散式版本控制系統，它允許多人協同工作在同一個專案中。當開發者在不同的分支上進行工作後，需要將這些分支合併起來，這時 Git 提供了兩種主要的合併策略： &lt;strong&gt;快進合併（Fast-forward Merges）&lt;/strong&gt; 和 &lt;strong&gt;三向合併（Three-way Merges）&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>使用公私鑰進行SSH連線 | Linux</title><link>https://benzhub.github.io/post/linux/020-ssh/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/020-ssh/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Secure Shell（SSH）&lt;/strong&gt; 是一種安全的協定，它通常用於在本地和遠程 &lt;strong&gt;Linux&lt;/strong&gt; 系統之間建立安全的連接，並允許用戶在遠程主機上執行命令，傳輸檔案，或建立安全的通道。在本篇文章中，我們將深入探討 &lt;strong&gt;SSH&lt;/strong&gt; 中的一個重要功能 - 利用公私鑰對的來連線遠端主機。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>命令替換（Command Substitution） | Linux</title><link>https://benzhub.github.io/post/linux/019-command-substitution/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/019-command-substitution/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; 作業系統經常需要進行命令行操作，而 &lt;strong&gt;Command Substitution&lt;/strong&gt; 是一項強大的功能，允許將一個命令的輸出值插入到另一個命令中，或者賦值給變數。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>常用Git指令一覽表 | Git</title><link>https://benzhub.github.io/post/git/004-git-command-line/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/004-git-command-line/</guid><description>&lt;blockquote&gt;
&lt;p&gt;常用 &lt;strong&gt;Git&lt;/strong&gt; 指令一覽表 | Git&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Git .gitignore 文件：忽略不必要的檔案和目錄 | Git</title><link>https://benzhub.github.io/post/git/003-gitignore/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/003-gitignore/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在使用 &lt;strong&gt;Git&lt;/strong&gt; 管理程式碼的過程中，我們經常會生成一些不需要被版本控制的檔案或目錄。這些可能包括log、臨時文件、環境特定的配置等。為了避免這些不必要的檔案被提交到版本庫，我們可以使用 .gitignore 文件。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>進程 （Processes） | Linux</title><link>https://benzhub.github.io/post/linux/018-processes/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/018-processes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 中， &lt;strong&gt;進程（Processes）&lt;/strong&gt; 是系統運行的程序的實例。每個進程都是由一個或多個執行緒組成，它們在系統上運行，執行各種任務和操作。 &lt;strong&gt;Linux&lt;/strong&gt; 作業系統使用進程作為管理和執行任務的基本單位。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>環境變數 （Environment） | Linux</title><link>https://benzhub.github.io/post/linux/017-environment/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/017-environment/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 中， &lt;strong&gt;環境變數（Environment）&lt;/strong&gt; 通常指的是用戶或進程執行的操作系統環境，包括各種環境變數、工作目錄、檔案許可權和其他相關的執行時條件。環境變數是一個重要的元素，它們包含了有關系統和用戶環境的信息，例如 PATH、HOME、USER 等。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Permission Shortcuts (權限捷徑) | Linux</title><link>https://benzhub.github.io/post/linux/016-permission-shortcuts/</link><pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/016-permission-shortcuts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 Linux 系統中，權限捷徑（Permission Shortcuts）是一種簡便的表示法，用來設置檔案或目錄的權限。這些捷徑通常使用字母或符號表示，方便使用者快速設置所需的權限。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>利用Git全局設定解決 CR LF 的問題 | Git</title><link>https://benzhub.github.io/post/git/002-cr-lf/</link><pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/002-cr-lf/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Git&lt;/strong&gt; 項目中， &lt;strong&gt;Windows&lt;/strong&gt; 和 &lt;strong&gt;Unix&lt;/strong&gt; 系統的換行符（Line Endings）可能會引起一些混淆和問題。這篇文章將介紹如何配置 &lt;strong&gt;Git&lt;/strong&gt; 以處理 &lt;strong&gt;CR&lt;/strong&gt; &lt;strong&gt;LF&lt;/strong&gt; 並解決相關的除錯問題。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux 群組權限管理教學：chmod、chown 與 group 設定</title><link>https://benzhub.github.io/post/linux/015-group-permissions/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/015-group-permissions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 中，&lt;strong&gt;群組權限（Group Permissions）&lt;/strong&gt; 是多人協作與系統安全的基礎。了解 owner、group、others 三種身份，掌握 &lt;code&gt;chmod&lt;/code&gt;、&lt;code&gt;chown&lt;/code&gt;、&lt;code&gt;chgrp&lt;/code&gt; 指令，以及群組管理的完整流程，是每個 Linux 使用者的必備技能。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>在 Windows、Mac 和 Linux 上安裝 Git | Git</title><link>https://benzhub.github.io/post/git/001-intsall/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/git/001-intsall/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; 是一個強大的版本控制工具，用於跟蹤和管理項目的代碼。無論你是使用 Windows、Mac 還是 Linux，這個篇文章將為你提供在各個操作系統上安裝 &lt;strong&gt;Git&lt;/strong&gt; 的詳細步驟。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>遍歷物件鍵和值Object.keys()、Object.values() 、 Object.entries() | Javascript</title><link>https://benzhub.github.io/post/javascript/046-looping-objects-keys-values-entries/</link><pubDate>Wed, 17 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/046-looping-objects-keys-values-entries/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，遍歷物件的屬性是一個常見的任務。ES6 引入了一些新的方法來更輕鬆地遍歷物件的屬性，其中包括 &lt;strong&gt;Object.keys()&lt;/strong&gt; 、 &lt;strong&gt;Object.values()&lt;/strong&gt; 和 &lt;strong&gt;Object.entries()&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Optional Chaining(可選鏈) | Javascript</title><link>https://benzhub.github.io/post/javascript/045-optional-chaining/</link><pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/045-optional-chaining/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 中的 &lt;strong&gt;Optional Chaining（可選鏈）&lt;/strong&gt; 是一種語法，用於簡化對可能為undefined或null的屬性或方法的訪問。這種語法在處理物件或陣列的多層屬性時特別有用，可以避免因為中途某一個屬性為undefined或null而導致程式出錯。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>for of 循環 &amp; entries()獲取索引 | Javascript</title><link>https://benzhub.github.io/post/javascript/044-for-of-entries/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/044-for-of-entries/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中， &lt;strong&gt;for&amp;hellip;of&lt;/strong&gt; 循環是一種用於迭代的語法結構。它特別適用於遍歷陣列元素。在使用 &lt;strong&gt;for&amp;hellip;of&lt;/strong&gt; 循環時，我們可以方便地獲取陣列中的每個元素，而不必關心索引的細節。此外，結合 &lt;strong&gt;entries()&lt;/strong&gt; 方法使用 &lt;strong&gt;for&amp;hellip;of&lt;/strong&gt; 循環，我們還可以獲取陣列元素的索引。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>展開運算子(Spread Operation) | Javascript</title><link>https://benzhub.github.io/post/javascript/043-short-circuiting/</link><pubDate>Sat, 13 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/043-short-circuiting/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 中的 &lt;strong&gt;短路運算（Short-circuit evaluation）&lt;/strong&gt; 是一種邏輯運算的行為，它基於邏輯運算符（如 &lt;strong&gt;&amp;amp;&amp;amp;&lt;/strong&gt; 和 &lt;strong&gt;||&lt;/strong&gt; ）的特性來提升開發程式碼的效率。短路運算允許在達到確定結果的情況下提前結束表達式的計算。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>展開運算子(Spread Operation) | Javascript</title><link>https://benzhub.github.io/post/javascript/042-spread-operator/</link><pubDate>Fri, 12 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/042-spread-operator/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 中的展開運算子是一種語法，通常用於將可迭代物件（例如陣列或字串）展開為其各個元素，或者用於合併物件的屬性。這個操作符由三個連續的點（&amp;hellip;）組成。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>後綴遞增(value++) VS 前綴遞增(++value) VS 使用賦值運算符遞增(value += 1) | Javascript</title><link>https://benzhub.github.io/post/javascript/041-postfix-prefix/</link><pubDate>Thu, 11 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/041-postfix-prefix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中的遞增或遞減運算子中，例如: &lt;strong&gt;value++&lt;/strong&gt; 、 &lt;strong&gt;++value&lt;/strong&gt; 和 &lt;strong&gt;value += 1&lt;/strong&gt; 都是用於增加變數值的操作，但它們之間有一些差異。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>解構物件(Destructuring Objects) | Javascript</title><link>https://benzhub.github.io/post/javascript/040-destructuring-objects/</link><pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/040-destructuring-objects/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中， &lt;strong&gt;物件解構（ Object Destructuring）&lt;/strong&gt; 是一種方便的語法，用於從物件中提取屬性並將其賦值給變數。這種語法有助於簡化程式碼，尤其是在處理包含大量property的物件時。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linked list (鏈結串列) | 資料結構&amp;演算法</title><link>https://benzhub.github.io/post/javascript/data-structures--algorithms/002-linked-list/</link><pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/data-structures--algorithms/002-linked-list/</guid><description>&lt;blockquote&gt;
&lt;p&gt;資料結構 &lt;strong&gt;鏈結串列（Linked List）&lt;/strong&gt; 是一種基本的資料結構，用於存儲一系列元素。在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，可以使用物件來實現鏈結串列。鏈結串列由節點（Node）組成，每個節點包含一個數據元素和一個指向下一個節點的連結。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Backoff 退避策略是什麼？Exponential Backoff 指數退避完整教學</title><link>https://benzhub.github.io/post/javascript/039-backoff-strategy/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/039-backoff-strategy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Backoff 退避策略&lt;/strong&gt;是一種處理請求失敗與重試的核心技術。它的精髓在於：請求失敗後不立即重試，而是等待一段時間再試，且每次失敗後等待時間遞增，有效防止雪崩效應（Thundering Herd Problem），是所有生產環境必備的網路韌性策略。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>前端 Polling 輪詢技術：JavaScript 實作完整教學</title><link>https://benzhub.github.io/post/javascript/038-frontend-polling/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/038-frontend-polling/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;前端輪詢（Frontend Polling）&lt;/strong&gt; 是一種讓客戶端定期向伺服器詢問是否有新資料的通訊方式。雖然比不上 WebSocket 的即時性，但 Polling 實作簡單、不需要特殊的伺服器設定，在許多實際應用場景中仍然是最務實的選擇。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>集合(Sets) | Javascript</title><link>https://benzhub.github.io/post/javascript/037-set/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/037-set/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中， &lt;strong&gt;Set&lt;/strong&gt; 是一種集合（Collection）數據類型，用於存儲唯一值，即集合中的元素不能重複。 &lt;strong&gt;Set&lt;/strong&gt; 是ES6（ECMAScript 2015）引入的新數據類型之一，它提供了一種簡單而有效的方法來存儲和管理一組唯一的值。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>學習 &amp; 工具 &amp; 文件 資源</title><link>https://benzhub.github.io/resourses/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/resourses/</guid><description>&lt;blockquote&gt;
&lt;p&gt;我們在現實生活中往往會想要有像哈利波特的魔法棒，要什麼有什麼，這裡是我整理好用的工具或是學習資源，祝大家都可以開發心想事成+水到渠成&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TypeScript中的 typeof 優雅的用法 | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/004-typeof/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/004-typeof/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;typeof&lt;/strong&gt; 允許開發人員獲取變量或表達式的類型，在 &lt;strong&gt;TypeScript&lt;/strong&gt; 中，通常會先寫類型，然後宣告時再附上定義的型別， &lt;strong&gt;typeof&lt;/strong&gt; 可以讓複雜的物件直接轉化出型別，讓我們的定義型別可以更優雅&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>常用的Utility和範例 | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/005-utility/</link><pubDate>Sat, 06 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/005-utility/</guid><description>&lt;blockquote&gt;
&lt;p&gt;使 &lt;strong&gt;TypeScript&lt;/strong&gt; 的其中一個關鍵特點就是它的 &lt;strong&gt;Utility&lt;/strong&gt; 。我們將介紹20個 &lt;strong&gt;TypeScript Utility&lt;/strong&gt; 和範例，並講解使用的優勢。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Lists Tuples Sets Dictionary(列表 元組 集合 字典) | Python</title><link>https://benzhub.github.io/post/python/004-lists-tuples-sets-dicts/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/004-lists-tuples-sets-dicts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; 的數據每種結構都針對特定用例而設計。我們這邊利用範例展示 &lt;strong&gt;Python&lt;/strong&gt; 的列表、元組、集合和字典，展示它們如何能夠高效處理數據。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>文字類型(Literal Types) | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/001-literal-types/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/001-literal-types/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TypeScript&lt;/strong&gt; 的領域中，有一個強大的功能被稱為 &lt;strong&gt;文字類型&lt;/strong&gt; ，它使開發人員能夠使用確切的值而不是通用類型。這提供了更強大的類型安全性和更精準的程式碼。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>物件類型(Objects Types) | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/003-objects-types/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/003-objects-types/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; 物件類型在定義程式碼中的資料結構和型別方面發揮了關鍵作用。它提供了一種創建明確定義物件模式的方式，有助於提高程式碼的可讀性和可維護性，特別在物件導向開發時，會大量使用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>高級集合操作 (Advanced Set Operations) | Javascript</title><link>https://benzhub.github.io/post/javascript/036-advanced-set-operations/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/036-advanced-set-operations/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 使用高級集合操作高效處理數據，使用Set對象進行操作，2組資料重複的元素(集合的交集)、2組資料不重複的元素(差集)和2組資料元素合併且都不重複(聯集)，在實際應用場景，運用這些高效地集合方式整理資料。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>基本類型(Basic Types) | TypeScript</title><link>https://benzhub.github.io/post/javascript/typescript/002-basic-types/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/typescript/002-basic-types/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; ，作為 &lt;strong&gt;JavaScript&lt;/strong&gt; 的超集，引入了靜態類型，使得程式碼更加可靠且易於維護。&lt;strong&gt;TypeScript&lt;/strong&gt; 的基本類型使開發人員可以在開發前期就發現許多隱密的型別錯誤，在大型多人協作專案中，這種明確的型別優勢就特別巨大，因此 &lt;strong&gt;Typescript&lt;/strong&gt; 在大型專案中使用率逐漸超越了 &lt;strong&gt;JavaScript&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Big O &amp; 時間複雜度 &amp; 空間複雜度 介紹(Big O &amp; Time Complexity &amp; Space Complexity) | 資料結構&amp;演算法</title><link>https://benzhub.github.io/post/javascript/data-structures--algorithms/001-bigo-complexity/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/data-structures--algorithms/001-bigo-complexity/</guid><description>&lt;blockquote&gt;
&lt;p&gt;時間和空間複雜度對於開發可擴展和高性能的程式碼影響深遠。我們將入門資料結構&amp;amp;演算法的世界，首先介紹 &lt;strong&gt;Big O&lt;/strong&gt; 表示法，並演示如何分析和優化 &lt;strong&gt;JavaScript&lt;/strong&gt; 程式碼，藉由改善程式的演算法來獲得更好的效能。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux Wildcard 萬用字元完整教學：*、?、[] 通配符用法</title><link>https://benzhub.github.io/post/linux/012-wildcard-replacement/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/012-wildcard-replacement/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 命令列中，**Wildcard（萬用字元／通配符）**是批次操作檔案的強大工具。學會 &lt;code&gt;*&lt;/code&gt;、&lt;code&gt;?&lt;/code&gt;、&lt;code&gt;[]&lt;/code&gt; 通配符以及 Brace Expansion，就能用一行指令完成原本需要幾十行才能做到的批次操作，大幅提升工作效率。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>高級集合操作 (Advanced Set Operations) | Python</title><link>https://benzhub.github.io/post/python/005-advanced-set-operations/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/005-advanced-set-operations/</guid><description>&lt;blockquote&gt;
&lt;p&gt;我們將介紹 &lt;strong&gt;Python&lt;/strong&gt; 中的高級Set(集合)操作，包括交集、聯集、差集、對稱差集等，以及如何在實際應用中充分利用這些操作。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>管道(Pipes) | Linux</title><link>https://benzhub.github.io/post/linux/014-pipes/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/014-pipes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;管道(Pipes)實現了命令之間數據的流動，讓Linux 指令能夠創建強大且高效的工作流。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>輸入&amp;輸出重定向符號 (Input &amp; Output Streams) | Linux</title><link>https://benzhub.github.io/post/linux/013-input-output-streams/</link><pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/013-input-output-streams/</guid><description>&lt;blockquote&gt;
&lt;p&gt;輸入&amp;amp;輸出重定向符號 (Input &amp;amp; Output Streams)是許多程式在運行時，輸出log或是判斷發生error的常用方式，這個章節的技巧對於日常的系統運維可說是至關重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Bash History | Linux</title><link>https://benzhub.github.io/post/linux/007-bash-history/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/007-bash-history/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bash&lt;/strong&gt; 歷史紀錄你輸入的命令，提供方便的方式來查看和重複使用它們。用戶可以使用各種命令和快捷方式與此歷史交互。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>CLI Shortcuts | Linux</title><link>https://benzhub.github.io/post/linux/008-cli-shortcuts-yank/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/008-cli-shortcuts-yank/</guid><description>&lt;blockquote&gt;
&lt;p&gt;掌握 &lt;strong&gt;Linux&lt;/strong&gt; 命令行界面（CLI）可以提高效率和靈活性。我們將介紹一系列基本的 &lt;strong&gt;Linux CLI Shortcuts&lt;/strong&gt; 方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>IP、Subnet Mask、Gateway 是什麼？MAC Address 網路基礎完整教學</title><link>https://benzhub.github.io/post/networking/001-macaddress-ip-subnetmask-gateway/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/networking/001-macaddress-ip-subnetmask-gateway/</guid><description>&lt;blockquote&gt;
&lt;p&gt;MAC Address、IP 位址、Subnet Mask、Gateway 是網路通訊最核心的四個概念。弄清楚它們各自的用途與相互關係，不管是排查網路問題、設定靜態 IP，還是理解封包如何在網路上傳遞，都會變得清晰許多。本文用白話說清楚，搭配指令範例帶你實際操作。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Signals(信號) | Linux</title><link>https://benzhub.github.io/post/linux/009-signals/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/009-signals/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; 命令行界面使用信號作為進程之間的通信，了解 &lt;strong&gt;Linux&lt;/strong&gt; 信號對於管理和與運行中的進程非常重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>什麼是Linux ? | Linux</title><link>https://benzhub.github.io/post/linux/006-what-is-linux/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/006-what-is-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; 是一個類似 &lt;strong&gt;Unix&lt;/strong&gt; 的操作系統內核，最初由 &lt;strong&gt;Linus Torvalds&lt;/strong&gt; 於1991年創建。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>什麼是Unix ? | Linux</title><link>https://benzhub.github.io/post/linux/005-what-is-unix/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/005-what-is-unix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Unix&lt;/strong&gt; 誕生於20世紀70年代初的貝爾實驗室，是許多操作系統的祖先， &lt;strong&gt;Unix&lt;/strong&gt; 以其穩健性、可擴展性和多用途性而聞名。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>掌握Linux文件操作: 創建和移動文件 | Linux</title><link>https://benzhub.github.io/post/linux/011-creating-moving-files/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/011-creating-moving-files/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 命令行領域，熟練地創建和移動文件是一項基本技能。這項技能通常會是你在工作上使用 &lt;strong&gt;Linux&lt;/strong&gt; 系統時，最常使用的一個命令行。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>讀取文件(Reading Files) | Linux</title><link>https://benzhub.github.io/post/linux/010-reading-files/</link><pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/010-reading-files/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;Linux&lt;/strong&gt; 環境中，通過命令行閱讀文件的技巧是最基本的技巧。文件閱讀是 &lt;strong&gt;Linux&lt;/strong&gt; 日常操作中最常用的命令之一 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title> this | Javascript</title><link>https://benzhub.github.io/post/javascript/032-this/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/032-this/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 中的 &lt;strong&gt;this&lt;/strong&gt; 既強大又神秘，常常讓開發人員感到困惑。我們將用範例深入探討 &lt;strong&gt;this&lt;/strong&gt; 在不同情境中的運作方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title> Variable Hoisting and Temporal Dead Zone | Javascript</title><link>https://benzhub.github.io/post/javascript/031-variable-hoisting/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/031-variable-hoisting/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hoisting&lt;/strong&gt; 和 &lt;strong&gt;Temporal Dead Zone(TDZ)&lt;/strong&gt; 影響 &lt;strong&gt;JavaScript&lt;/strong&gt; 中的變量聲明和初始化。 &lt;strong&gt;var&lt;/strong&gt; . &lt;strong&gt;let&lt;/strong&gt; . &lt;strong&gt;const&lt;/strong&gt; 有各自不同的 &lt;strong&gt;Hoisting&lt;/strong&gt; 和 &lt;strong&gt;TDZ&lt;/strong&gt; 情境，這篇文章將會深入介紹這些的細節。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>CSS 表單美化教學：打造好看的 Form 樣式</title><link>https://benzhub.github.io/post/htmlcss/022-form-style/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/022-form-style/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; 表單樣式通常會出現在用戶登入或是輸入資料的地方，對於用戶的使用體驗有很高的影響性。本篇文章將會跟你介紹 &lt;strong&gt;HTML&amp;amp;CSS&lt;/strong&gt; 中表單的樣式設計。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>display 屬性 (block &amp; inline) | CSS</title><link>https://benzhub.github.io/post/htmlcss/020-display-block-inline/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/020-display-block-inline/</guid><description>&lt;blockquote&gt;
&lt;p&gt;CSS &lt;strong&gt;display&lt;/strong&gt; 屬性基本上分為兩個值： &lt;strong&gt;block&lt;/strong&gt; 和 &lt;strong&gt;inline&lt;/strong&gt; ，賦予開發人員控制HTML元素佈局和呈現的能力。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Float(浮動) | CSS</title><link>https://benzhub.github.io/post/htmlcss/018-float/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/018-float/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; 的 &lt;strong&gt;float&lt;/strong&gt; 使開發人員能夠創建具有多個元素的布局。儘管現代佈局技術，如 &lt;strong&gt;Flexbox&lt;/strong&gt; 和 &lt;strong&gt;Grid&lt;/strong&gt; 越來越受歡迎，但理解並利用 &lt;strong&gt;float&lt;/strong&gt; 仍然至關重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>HTML 超連結按鈕：如何讓 Button 變成連結</title><link>https://benzhub.github.io/post/htmlcss/019-hyperlink-button/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/019-hyperlink-button/</guid><description>&lt;blockquote&gt;
&lt;p&gt;網頁中有兩個重要的用戶互動元素——超鏈接和按鈕，我們將介紹使用CSS來增強它們的外觀和互動性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>JavaScript作用域(Scope) | Javascript</title><link>https://benzhub.github.io/post/javascript/030-javascript-scope/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/030-javascript-scope/</guid><description>&lt;blockquote&gt;
&lt;p&gt;作用域(Scope)代表你宣告的變數可以在哪些區域作用， &lt;strong&gt;JavaScript&lt;/strong&gt; 新手開發人員常常會因為變數作用域在錯誤的區域使用變數，而造成許多隱密的bug。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Primitive vs. Reference Types | Javascript</title><link>https://benzhub.github.io/post/javascript/033-primitive-reference/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/033-primitive-reference/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 是一種動態且多用途的程式語言，數據基本有2種類型: &lt;strong&gt;原始類型&lt;/strong&gt; 和 &lt;strong&gt;參考類型&lt;/strong&gt; 。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>定位屬性 position relative absolute | CSS</title><link>https://benzhub.github.io/post/htmlcss/021-position-relative-absolute/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/021-position-relative-absolute/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在Web佈局上， &lt;strong&gt;CSS&lt;/strong&gt; 提供了一個強大的工具：position: relative 和 position: absolute。這兩個屬性在定位元素在文檔中的位置方面起著關鍵作用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>陣列解構(Destructuring Arrays) | Javascript</title><link>https://benzhub.github.io/post/javascript/035-destructuring-arrays/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/035-destructuring-arrays/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 陣列解構(Destructuring Arrays)是一個強大的功能，允許開發人員以優雅和簡潔的方式從陣列中提取值，它簡化了代碼，使其更直觀且更易讀。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>淺拷貝 vs. 深拷貝 (Shallow Copy vs. Deep Copy) | Javascript</title><link>https://benzhub.github.io/post/javascript/034-shallow-copy-vs-deep-copy/</link><pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/034-shallow-copy-vs-deep-copy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，複製對象和陣列是一個常見的任務，但複製的方法可能導致意外的行為。淺拷貝和深拷貝是兩種不同的方法，各自具有其優勢和用例。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>JavaScript引擎和執行的深度剖析 | JavaScript</title><link>https://benzhub.github.io/post/javascript/029-javascript-engine-and-runtime/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/029-javascript-engine-and-runtime/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 引擎和運行(JavaScript Engine and Runtime)是執行和管理 &lt;strong&gt;JavaScript&lt;/strong&gt; 代碼的核心組件。我們介紹各元件的複雜性，闡明它們如何共同工作，使 &lt;strong&gt;JavaScript&lt;/strong&gt; 高效又完美的執行。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux or Mac 安裝 nvm(Node.js 的版本管理器) | Javascript</title><link>https://benzhub.github.io/post/javascript/024-linux-or-mac-install-nvm/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/024-linux-or-mac-install-nvm/</guid><description>&lt;blockquote&gt;
&lt;p&gt;管理 &lt;strong&gt;Node.js&lt;/strong&gt; 版本對很多人來說是一場惡夢，但使用 &lt;strong&gt;nvm&lt;/strong&gt; （Node.js版本管理器），這個過程變得簡單而高效。我們將介紹如何在Linux和Mac OS 系統安裝 &lt;strong&gt;nvm&lt;/strong&gt; ，使他們能夠輕鬆切換 &lt;strong&gt;Node.js&lt;/strong&gt; 版本。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>NVM 是什麼？NVM vs NPM vs Node.js 差異完整解析</title><link>https://benzhub.github.io/post/javascript/023-whats-nvm-npm-nodejs/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/023-whats-nvm-npm-nodejs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;許多剛接觸前後端開發的工程師，第一次看到 &lt;strong&gt;NVM&lt;/strong&gt;、&lt;strong&gt;NPM&lt;/strong&gt;、&lt;strong&gt;Node.js&lt;/strong&gt; 這三個名詞時，往往一頭霧水，分不清楚它們各自的用途與關係。本文用白話文幫你一次搞懂這三者的差異，並提供完整的安裝與使用指南。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>事件處理(Handling Events) | Javascript</title><link>https://benzhub.github.io/post/javascript/026-handling-click-events/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/026-handling-click-events/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，事件驅動允許開發者創建與使用者互動的網頁。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>使用javascript改變CSS style | Javascript</title><link>https://benzhub.github.io/post/javascript/027-changing-css-styles/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/027-changing-css-styles/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 使開發人員能夠動態更改 &lt;strong&gt;HTML&lt;/strong&gt; 元素和修改 &lt;strong&gt;CSS&lt;/strong&gt; 樣式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>按鍵事件處理(Handling Keypress Events) | Javascript</title><link>https://benzhub.github.io/post/javascript/028-handling-keypress-events/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/028-handling-keypress-events/</guid><description>&lt;blockquote&gt;
&lt;p&gt;我們將在這篇文章中介紹 &lt;strong&gt;JavaScript&lt;/strong&gt; 中按鍵事件處理的方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>選擇元素(Selecting DOM Elements) | Javascript</title><link>https://benzhub.github.io/post/javascript/025-selecting-dom-elements/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/025-selecting-dom-elements/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在DOM（文檔對象模型）中選擇元素是 &lt;strong&gt;JavaScript&lt;/strong&gt; 開發人員的基本技能。透過操作HTML元素，讓我們的網頁增加更多靈活的互動性。我們將介紹使用 &lt;strong&gt;JavaScript&lt;/strong&gt; 選擇元素的不同方法。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>DOM 是什麼？前端 DOM 操作完整教學</title><link>https://benzhub.github.io/post/javascript/019-whats-the-dom/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/019-whats-the-dom/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DOM（Document Object Model，文件物件模型）&lt;/strong&gt; 是瀏覽器將 HTML 文件解析後，在記憶體中建立的一個樹狀結構。透過 JavaScript 操作 DOM，我們可以動態地新增、修改、刪除頁面上的元素，實現各種互動效果，而無需重新載入整個頁面。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>For Loop(迴圈) | Javascript</title><link>https://benzhub.github.io/post/javascript/020-for-loop/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/020-for-loop/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，&amp;lsquo;for&amp;rsquo;循環是一個強大的工具，允許開發人員遍歷一系列元素或執行一段程式碼特定次數。掌握&amp;rsquo;for&amp;rsquo;循環是 &lt;strong&gt;JavaScript&lt;/strong&gt; 開發人員的基本技能。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Looping Breaking and Continuing(迴圈中斷 &amp; 繼續) | Javascript</title><link>https://benzhub.github.io/post/javascript/021-looping-breaking-and-continuing/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/021-looping-breaking-and-continuing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 提供了控制循環流程的機制，使開發人員能夠提前退出循環或跳過特定的迭代，這些功能被稱為循環中斷和繼續。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Object Methods(物件 &amp; 操作方法) | Javascript</title><link>https://benzhub.github.io/post/javascript/018-object-methods/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/018-object-methods/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 物件不僅僅是資料的容器；它們還可以具有相關聯的方法，這些方法是定義為屬性的函數。物件方法提供了一種在物件內封裝功能的方式，使代碼更有組織性和模塊化。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>String Formatting(字串格式化) | Python</title><link>https://benzhub.github.io/post/python/003-string-formatting/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/003-string-formatting/</guid><description>&lt;blockquote&gt;
&lt;p&gt;字串格式化是 &lt;strong&gt;Python&lt;/strong&gt; 中一個強大的功能，允許開發人員創建動態且可讀的輸出。無論你是構建用戶界面、記錄消息還是生成報告，理解 &lt;strong&gt;Python&lt;/strong&gt; 字串格式化技術是非常重要的。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Variables(變數) | Python</title><link>https://benzhub.github.io/post/python/002-variables/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/002-variables/</guid><description>&lt;blockquote&gt;
&lt;p&gt;變量是任何程式語言的基礎， &lt;strong&gt;Python&lt;/strong&gt; 也不例外。它們充當存儲和管理數據的容器，使開發人員能夠在程序中操縱信息。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>While Loop(無限迴圈) | Javascript</title><link>https://benzhub.github.io/post/javascript/022-while-loop/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/022-while-loop/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，&lt;strong&gt;while&lt;/strong&gt; 循環是一種多用途的控制流結構，允許開發人員在指定條件仍為真時重複執行一段代碼塊。&lt;strong&gt;while&lt;/strong&gt; 循環在迭代次數未知的情況下非常重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>點與括號表示法(Dot vs Bracket Notation) | Javascript</title><link>https://benzhub.github.io/post/javascript/017-dot-vs-bracket-notation/</link><pubDate>Sat, 30 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/017-dot-vs-bracket-notation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，物件是組織和存儲數據的基本結構。在訪問物件內部的屬性時，開發人員通常使用兩種表示法：點號表示法（&amp;quot;）和方括號表示法（[]）。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Functions(函數) | Javascript</title><link>https://benzhub.github.io/post/javascript/013-functions/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/013-functions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 函數(Functions)實現動態且可重複使用的程式碼。函數(Functions)封裝了一組指令，使你能夠定義可用不同輸入執行的邏輯。了解函數對於掌握 &lt;strong&gt;JavaScript&lt;/strong&gt; 非常重要，因為它們實現了模塊化、可維護性和代碼效率。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>函數：聲明 vs. 表達式(Functions: Declarations vs. Expressions) | Javascript</title><link>https://benzhub.github.io/post/javascript/014-function-declarations-vs-function-expressions/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/014-function-declarations-vs-function-expressions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 中，定義函數的兩種主要方式是通過聲明式(Declarations)和表達式(Expressions)。沒有了解聲明式和表達式的不同，很多開發者會因為提升(hoisting)的問題，而在錯誤的地方調用函數。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>陣列(Arrays) | Javascript</title><link>https://benzhub.github.io/post/javascript/016-arrays/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/016-arrays/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 陣列(Arrays)是開發時常見的數據結構。它提供了一種方便的方式來組織和操作資料集合。我們將介紹 &lt;strong&gt;JavaScript&lt;/strong&gt; 陣列(Arrays)的各種常見操作方式以及它們在各種情境中的有效應用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>箭頭函數的簡潔之美(Arrow Functions) | Javascript</title><link>https://benzhub.github.io/post/javascript/015-arrow-functions/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/015-arrow-functions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 箭頭函數，引入自ES6，提供了一種簡潔而優雅的編寫函數的方式。箭頭函數簡化了代碼並提供了一種更具表達性的處理函數的方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>簡潔的決策工具: 三元運算符(Ternary Operator) | Javascript</title><link>https://benzhub.github.io/post/javascript/011-ternary-operator/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/011-ternary-operator/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 的決策工具中，三元運算符以其簡潔而強大的特性脫穎而出。通常被稱為&lt;code&gt;條件運算符&lt;/code&gt;，它提供了一種簡化的方式來表達簡單的條件語句。讓我們探討三元運算符是什麼，以及它如何增強你的代碼。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>嚴格模式的威力(Strict Mode) | Javascript</title><link>https://benzhub.github.io/post/javascript/012-strict-mode/</link><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/012-strict-mode/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 在默認情況下對某些編碼並不 &lt;code&gt;嚴謹&lt;/code&gt;。然而，對於開發要求更嚴謹的開發者， &lt;strong&gt;JavaScript&lt;/strong&gt; 提供了一個稱為嚴格模式的功能。啟用嚴格模式對代碼實施更嚴格的規則，捕捉常見錯誤並防止使用某些易於出錯的功能。讓我們來看嚴格模式的好處以及如何有效利用它。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Statements and Expressions(陳述式 VS 表達式) | Javascript</title><link>https://benzhub.github.io/post/javascript/010-statements-and-expressions/</link><pubDate>Thu, 28 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/010-statements-and-expressions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中，理解表達式(Javascript Expressions)和陳述式(Javascript Statements)之間的區別對於編寫高效而有效的代碼非常重要。
 &lt;span class="text-blue-500 font-3xl text-2xl"&gt;表達式是產生值的代碼&lt;/span&gt;
，而
 &lt;span class="text-blue-500 font-3xl text-2xl"&gt;陳述式則是完整的代碼指令&lt;/span&gt;
。讓我們將區分這兩者之間的區別並探索它們的重要性。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Switch Statement | Javascript</title><link>https://benzhub.github.io/post/javascript/009-switch-statement/</link><pubDate>Thu, 28 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/009-switch-statement/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;JavaScript&lt;/strong&gt; 中， &lt;strong&gt;switch&lt;/strong&gt; 語句是簡化代碼中決策過程的強大工具。它提供了一種優雅的替代方案，取代了多個 &lt;strong&gt;if-else&lt;/strong&gt; 語句，提升了代碼的可讀性和可維護性。 &lt;strong&gt;switch&lt;/strong&gt; 語句根據匹配的情況評估表達式並執行一個代碼區塊。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Boolean Logical Operators(布林邏輯操作) | Javascript</title><link>https://benzhub.github.io/post/javascript/008-boolean-logic-operators/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/008-boolean-logic-operators/</guid><description>&lt;blockquote&gt;
&lt;p&gt;布林邏輯運算子是 &lt;strong&gt;JavaScript&lt;/strong&gt; 中製定決策和控制程式流程的基本工具。這些運算子允許你建立複雜的條件並有效地處理不同的情境。讓我們探索 &lt;strong&gt;JavaScript&lt;/strong&gt; 中一些基本的布林邏輯運算子。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Background and Border(背景和邊框) | CSS</title><link>https://benzhub.github.io/post/htmlcss/016-background-border/</link><pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/016-background-border/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在前端工程師的日常工作中，最常使用的應該就是 &lt;strong&gt;background&lt;/strong&gt; 和&lt;strong&gt;border&lt;/strong&gt; ，不管是在切版或是在關於美感的調配畫面比例，幾乎是每天都會使用，對於前端工程師來說， &lt;strong&gt;background&lt;/strong&gt; 和&lt;strong&gt;border&lt;/strong&gt; 是一定要熟練掌握的。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Box Sizing Margin Padding(內容盒子與邊框盒子與內外距) | CSS</title><link>https://benzhub.github.io/post/htmlcss/017-box-sizing/</link><pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/017-box-sizing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; 內容盒子與邊框盒子、外邊距和內邊距！這些基本屬性影響了你網頁中元素的大小、間距和位置。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Color(顏色) | CSS</title><link>https://benzhub.github.io/post/htmlcss/015-css-color/</link><pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/015-css-color/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; 在顏色上可以使用 Hex、RGB和文字，我們這邊會用案例介紹這3種的使用方式。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Font Property(字體屬性) | CSS</title><link>https://benzhub.github.io/post/htmlcss/014-font-property/</link><pubDate>Mon, 25 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/014-font-property/</guid><description>&lt;blockquote&gt;
&lt;p&gt;字體實際上很大程度的影響使用者對你的網站的好感度，因為如果使用錯誤的字體的話，網頁的可讀性太低，使用者可能會想要馬上就關閉你的網頁&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Values and Units(計量單位介紹) | CSS</title><link>https://benzhub.github.io/post/htmlcss/013-values-and-units/</link><pubDate>Mon, 25 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/013-values-and-units/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; 計量單位分為絕對單位和相對單位，許多人因為使用錯誤的單位，常常導致在RWD(響應式)中畫面發生顯示元素錯誤&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>CSS Basic Selector(基礎的CSS選擇器) | CSS</title><link>https://benzhub.github.io/post/htmlcss/012-css-basic-selector/</link><pubDate>Sun, 24 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/012-css-basic-selector/</guid><description>&lt;blockquote&gt;
&lt;p&gt;常見的 &lt;strong&gt;CSS&lt;/strong&gt; 選擇器的使用方式&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>CSS Import(CSS引用方式) | CSS</title><link>https://benzhub.github.io/post/htmlcss/011-css-import/</link><pubDate>Sun, 24 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/011-css-import/</guid><description>&lt;blockquote&gt;
&lt;p&gt;3種 &lt;strong&gt;CSS&lt;/strong&gt; 在 &lt;strong&gt;HTML&lt;/strong&gt; 中引用的方式&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>div and span(常見塊級元素和內聯元素的搭配使用) | HTML</title><link>https://benzhub.github.io/post/htmlcss/009-div-and-span-tag/</link><pubDate>Sat, 23 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/009-div-and-span-tag/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;div&amp;gt;&lt;/strong&gt; 是塊級元素，&lt;strong&gt;&amp;lt;span&amp;gt;&lt;/strong&gt; 是內聯元素因此常常互相搭配 &lt;strong&gt;&amp;lt;p&amp;gt;&lt;/strong&gt; 標籤使用，讓文章不會有強制換行的問題&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>HTML Character Entity(字符實體和符號) | HTML</title><link>https://benzhub.github.io/post/htmlcss/010-html-character-entity/</link><pubDate>Sat, 23 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/010-html-character-entity/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt; 字符實體在顯示特殊字元方面非常的方便，且可以避免引用大量圖片，提升網頁的效能。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Block Element and Inline Element(塊級元素&amp;內聯元素) | HTML</title><link>https://benzhub.github.io/post/htmlcss/008-block-element-and-inline-element/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/008-block-element-and-inline-element/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt; 塊級元素和內聯元素！理解這兩者之間的差異對於打造結構良好的網頁非常重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Form and Input(表單和輸入框標籤) | HTML</title><link>https://benzhub.github.io/post/htmlcss/007-form-and-input/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/007-form-and-input/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt; 表單和輸入框！常常是使用者與網站的互動的元件。清楚的認識這兩個HTML標籤是非常重要的。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>HyperLink and Image(超鏈結和圖片) | HTML</title><link>https://benzhub.github.io/post/htmlcss/005-hyperlink-and-image/</link><pubDate>Thu, 21 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/005-hyperlink-and-image/</guid><description>&lt;blockquote&gt;
&lt;p&gt;探討了 HTML 的 &lt;strong&gt;&amp;lt;a&amp;gt;&lt;/strong&gt; 和 &lt;strong&gt;&amp;lt;img&amp;gt;&lt;/strong&gt; 標籤的基礎知識，揭示了它們的簡單性和重要性&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>List and Table(有序列表&amp;無序列表&amp;表格) | HTML</title><link>https://benzhub.github.io/post/htmlcss/006-list-table/</link><pubDate>Thu, 21 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/006-list-table/</guid><description>&lt;blockquote&gt;
&lt;p&gt;使用 &lt;strong&gt;HTML&lt;/strong&gt; 中列表和表格！列表結構的內容，或用表格以邏輯方式條列資訊。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Paragraph-and-Tags(基礎標題段落排版標籤) | HTML</title><link>https://benzhub.github.io/post/htmlcss/004-paragraph-and-tags/</link><pubDate>Thu, 21 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/004-paragraph-and-tags/</guid><description>&lt;blockquote&gt;
&lt;p&gt;理解 &lt;strong&gt;HTML&lt;/strong&gt; 的標籤和其他基本元素的強大之處是網頁開發的基礎。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Meta Tag &amp; SEO(meta標籤和搜尋引擎) | HTML</title><link>https://benzhub.github.io/post/htmlcss/003-meta-tag-seo/</link><pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/003-meta-tag-seo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;學習撰寫描述、標題和其他，以提升你網站的可見性。無論你是網站所有者、開發人員還是 &lt;strong&gt;SEO&lt;/strong&gt; 實踐者，了解這些 HTML 標籤策略對於優化你的網站存在、有效地觸及目標受眾至關重要。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>前端常用開發工具</title><link>https://benzhub.github.io/post/htmlcss/002-front-end-tools/</link><pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/002-front-end-tools/</guid><description>&lt;blockquote&gt;
&lt;p&gt;我們再進行前端開發的時候，利用工具可以幫助我們進行快速得開發而且還可以更加美觀&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Equality Operators(嚴格等式VS鬆散等式) | Javascript</title><link>https://benzhub.github.io/post/javascript/007-equality-operators/</link><pubDate>Tue, 19 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/007-equality-operators/</guid><description>&lt;blockquote&gt;
&lt;p&gt;理解如何比較值是程式設計的基礎。我們探討了等值運算子 &lt;strong&gt;==&lt;/strong&gt; 和 &lt;strong&gt;===&lt;/strong&gt; 的微妙差異，用範例理解它們的內在細節差異。我們將解開鬆散和嚴格等值比較，當你在編寫更複雜的程式碼中的會有巨大幫助。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>利用VS Code 快速創建並開啟HTML頁面 | HTML</title><link>https://benzhub.github.io/post/htmlcss/001-create-html/</link><pubDate>Tue, 19 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/htmlcss/001-create-html/</guid><description>&lt;blockquote&gt;
&lt;p&gt;新手在撰寫HTML頁面的時候，往往會不知道從哪裡下手，我們利用 &lt;strong&gt;VS Code&lt;/strong&gt;，先快速創建簡易HTML模板，讓我們快速上手&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Truthy and Falsy(真值、假值) | Javascript</title><link>https://benzhub.github.io/post/javascript/006-truthy-and-falsy/</link><pubDate>Mon, 18 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/006-truthy-and-falsy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;了解真值（例如，字串、數字）和假值（例如，null、undefined）對於編寫高效且清晰的程式碼至關重要。透過實際範例列出常見的真值(Truthy)和假值(Falsy)場景，很好的幫助你寫出高效的程式碼。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Type Conversion(型別轉換) | Javascript</title><link>https://benzhub.github.io/post/javascript/005-type-conversion/</link><pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/005-type-conversion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;理解 &lt;strong&gt;JavaScript&lt;/strong&gt; 如何進行型別轉換和強制轉換非常重要。這就是為什麼一個字串 &lt;code&gt;5&lt;/code&gt; 可以變成數字 5 的原因。在這篇文章中，我們將示範 &lt;strong&gt;JavaScript&lt;/strong&gt; 如何進行這些轉換，讓你簡單的理解運作的原理。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>安裝&amp;啟動JupyterLab | Python</title><link>https://benzhub.github.io/post/python/001-install-jupyterlab/</link><pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/python/001-install-jupyterlab/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Python JupyterLab&lt;/strong&gt; 是一個功能強大的開源基於 &lt;strong&gt;Web&lt;/strong&gt; 的 &lt;strong&gt;Python&lt;/strong&gt; 交互式計算環境。它允許用戶創建並共享包含實時代碼、方程式、可視化和敘述文本的文檔。由於其多功能性和易用性， &lt;strong&gt;JupyterLab&lt;/strong&gt; 支持各種語言並在數據科學、機器學習和科學計算中被廣泛使用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>if else Statements(條件式) | Javascript</title><link>https://benzhub.github.io/post/javascript/004-if-else-statements/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/004-if-else-statements/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; 的 &lt;strong&gt;if&lt;/strong&gt; 和 &lt;strong&gt;else&lt;/strong&gt; 語法就像程式碼中的決策者。它允許你的程式根據條件選擇不同的路徑。想像一下它就像是一個岔路口：如果一個條件為真，就走一條路；如果為假，就走另一條路。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>给Linux配置漂亮且强大的zsh | Linux</title><link>https://benzhub.github.io/post/linux/004-install-zsh/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/004-install-zsh/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zsh&lt;/strong&gt; 因為有自動補全指令的功能 ，因此深受工程師的喜愛，這邊我們使用熱門的 &lt;strong&gt;oh-my-zsh&lt;/strong&gt; ，一步一步來安裝設定我們的 &lt;strong&gt;Zsh&lt;/strong&gt; 吧!&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux有哪些Shell | Linux</title><link>https://benzhub.github.io/post/linux/002-linux-shell/</link><pubDate>Fri, 15 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/002-linux-shell/</guid><description>&lt;blockquote&gt;
&lt;p&gt;我們來介紹一些常見的Linux Shell。 以及講解 &lt;strong&gt;Shell&lt;/strong&gt; 、 &lt;strong&gt;Bash&lt;/strong&gt; 和 &lt;strong&gt;Zsh&lt;/strong&gt; 的區別在哪?&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Template Literals(字串模板) | Javascript</title><link>https://benzhub.github.io/post/javascript/003-template-literals/</link><pubDate>Fri, 15 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/003-template-literals/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Template Literals(字串模板)&lt;/strong&gt; ，在 &lt;strong&gt;Javascript&lt;/strong&gt; 中我們會很常用使用到，在字串(string)中帶入變數(variable)的技巧一定要熟練的掌握。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>在Windows上使用wsl2執行Linux | Linux</title><link>https://benzhub.github.io/post/linux/003-run-linux-on-windows/</link><pubDate>Fri, 15 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/003-run-linux-on-windows/</guid><description>&lt;blockquote&gt;
&lt;p&gt;如果我們想要練習 &lt;strong&gt;Linux&lt;/strong&gt; 指令，但又只有 &lt;strong&gt;Windows&lt;/strong&gt; 的電腦的話，這邊推薦你安裝 &lt;strong&gt;Windows wsl2&lt;/strong&gt; ，在上面執行 &lt;strong&gt;Linux&lt;/strong&gt; 系統，這樣你就可以輕鬆在 &lt;strong&gt;Windows&lt;/strong&gt; 電腦中使用 &lt;strong&gt;Windows Terminal&lt;/strong&gt; 切換到 &lt;strong&gt;Linux&lt;/strong&gt; 系統&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux 常用指令大全：新手必學指令完整一覽表</title><link>https://benzhub.github.io/post/linux/001-command-line-table/</link><pubDate>Thu, 14 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/linux/001-command-line-table/</guid><description>&lt;blockquote&gt;
&lt;p&gt;這份 &lt;strong&gt;Linux 常用指令大全&lt;/strong&gt;，將所有必學指令依照功能分類整理，包含檔案管理、使用者管理、權限設定、套件管理、服務管理、網路指令與防火牆設定，並附上簡短說明與範例，適合 Linux 新手快速查詢，也適合有經驗的使用者作為速查表。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Operator Precedence(運算子優先序) | Javascript</title><link>https://benzhub.github.io/post/javascript/002-operator-precedence/</link><pubDate>Thu, 14 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/002-operator-precedence/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Operator Precedence(運算子優先序)&lt;/strong&gt; ，在 &lt;strong&gt;Javascript&lt;/strong&gt; 中大部分我們的運算都跟我們數學中的方式很像，都是先乘除後加減的方式在運作&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Variables(變數) | Javascript</title><link>https://benzhub.github.io/post/javascript/001-variables/</link><pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/javascript/001-variables/</guid><description>&lt;blockquote&gt;
&lt;p&gt;變數(Variables)是任何程式的基礎石，作為儲存和管理資料的容器。與其他語言中的資料類型不同， &lt;strong&gt;JavaScript&lt;/strong&gt; 變數(Variables)是動態類型的。這種靈活性可以使 &lt;strong&gt;Javascript&lt;/strong&gt; 開發人員能夠創造更多具有靈活性的程式碼。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>聯絡我</title><link>https://benzhub.github.io/contact/</link><pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/contact/</guid><description>&lt;h4 id="如果想要技術交流或是有相關的問題都歡迎指教"&gt;如果想要技術交流，或是有相關的問題，都歡迎指教。&lt;/h4&gt;

&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSdEVW3fRp8l8RxNU6wslL7PpU7ItRTrLmxe2UG0bbXdpY-tGA/viewform?embedded=true" class="w-full h-[60rem]"&gt;載入中…&lt;/iframe&gt;</description></item><item><title>關於我</title><link>https://benzhub.github.io/about/</link><pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/about/</guid><description>&lt;h1 id="hi-im-benz"&gt;Hi, I&amp;rsquo;m BenZ&lt;/h1&gt;
&lt;p&gt;我是一名軟體工程師，對技術充滿好奇心。&lt;/p&gt;
&lt;h2 id="為什麼寫這個部落格"&gt;為什麼寫這個部落格？&lt;/h2&gt;
&lt;p&gt;在學習程式的過程中，我發現最好的學習方式就是&lt;strong&gt;把學到的東西教給別人&lt;/strong&gt;。這個部落格從我的學習筆記開始，慢慢發展成一個涵蓋多種技術的教學資源。&lt;/p&gt;</description></item></channel></rss>