S SmartDocs

编程语言

Python、C、C++、Java、JavaScript、TypeScript、Go、R 与 Haskell 教程,从入门语法到高级技巧。

Java 更新于 2026-08-14

檔案與 I/O

到目前為止,程式的所有資料都活在記憶體裡,程式一結束就煙消雲散。要讓資料活得比程式久,就得寫進檔案;要處理外部世界的資料,就得從檔案讀進來。本章的主角是 Java 的 I/O(Input/Output)體系:從檔案的中繼資料操作、位元組與字元兩套流、緩衝的效能原理,到物件序列化,最後用一個 CSV 成績單處理程式串起全部。

阅读文章 →
Java 更新于 2026-08-14

列舉、內部類別與常用 API

前六章打通了物件導向與核心容器,本章補齊三塊日常開發天天用到的拼圖:列舉(enum)讓「固定的一組選項」型別安全;巢狀類別讓輔助類別待在該待的地方;再加上 Math、Random 與 java.time 這些標準 API——第 8 章的專案會同時用上它們(訂單狀態、借閱日期都在等著)。

阅读文章 →
Java 更新于 2026-08-14

綜合實戰——圖書管理系統

前七章的知識點都是單兵訓練,本章進行合成演練:打造一個可以實際操作的圖書管理系統——新增書籍、註冊會員、借書還書、資料存檔,全部在主控台完成。麻雀雖小,五臟俱全:這個專案的分層方式(model、exception、repository、service、app)正是業界後端系統的標準縮影,進階篇的資料庫與網路章節會在同一副骨架上繼續長大。

阅读文章 →
Python 更新于 2026-10-24

10. 產生器、情境管理器與 GIL(Generators, Context Managers and the GIL)

進階前九課已經涵蓋物件導向、函數式寫法、並行、資料處理、Web、資料庫、測試與部署。本課補語言本身還缺獨立教材的兩個協定——迭代/產生器協定與情境管理器協定——並把第 3 課 03_concurrency_parallelism.md 示範過的三種並行,用 GIL 的角度收攏成一張選擇表。範例以 CPython 的預設組建為準。

阅读文章 →
Typescript 更新于 2026-08-29

課程導讀

用了三個月的 React 與 TypeScript 之後,多數人會停在一個共同的位置: useState、useEffect、useMemo、useCallback 都會用, 照著公司現有的範例可以把需求做完,但心裡其實有一連串沒有答案的問題

阅读文章 →
Typescript 更新于 2026-08-29

React 的心智模型:UI 是狀態的函數

React 所有的設計——單向資料流、hooks、不可變性、memo—— 都是從同一個核心決定推導出來的。這一章先把這個核心講清楚, 後面每一章遇到「為什麼要這樣」的時候,答案幾乎都能追溯回這裡。

阅读文章 →
Typescript 更新于 2026-08-29

資料流向:單向資料流與狀態的位置

第 1 章講的是單一元件內部:狀態算出畫面。 真實應用有幾十層元件,這一章回答的問題是: 狀態在元件樹裡怎麼流動、應該住在哪裡。 公司程式碼裡那些「為什麼狀態放這層」「為什麼要傳 onXxx 回呼」的疑惑,答案都在這裡。

阅读文章 →
Typescript 更新于 2026-08-29

重新渲染的時機:何時發生、如何控制

「這個元件為什麼一直重新渲染」大概是前端工作裡最常見的效能疑問, 而多數人是靠著口耳相傳的規則在猜。這一章把規則追到源頭: 觸發渲染的來源其實非常少,把它們列乾淨,剩下的行為都能推導出來。

阅读文章 →
Typescript 更新于 2026-08-29

Hooks:為什麼存在、為什麼長這樣

你每天都在用 hooks,但「為什麼 React 要發明 hooks」這個問題的答案, 決定了你會把它們用在對的地方,還是只是照抄範例。 這一章先回到 hooks 誕生前的世界,看清楚它要解決的問題, 再逐一拆解每個 hook 的設計理由。

阅读文章 →
Typescript 更新于 2026-08-29

元件設計:拆分、組合與 API 思維

前四章講 React 的運作規則;這一章開始講設計—— 同樣的需求有很多種寫法都「能動」,差別在半年後好不好改。 元件設計的核心視角轉換只有一句話: 元件是一個 API,props 是它的介面,使用它的同事(包括未來的你)是它的用戶。

阅读文章 →
Typescript 更新于 2026-08-29

TypeScript 型別系統:從「標註」到「建模」

用了三個月 TypeScript 的人,多半把型別當成「寫完程式後補的標註」, 遇到紅線就想辦法讓它消失(必要時 as any)。 這一章要完成一個視角升級:型別是建模工具—— 先用型別把「什麼是合法的資料與操作」描述出來,讓編譯器替你守住這個模型。 第 5 章結尾的「讓不可能的狀態無法表達」就是這個視角的實戰預告。

阅读文章 →
Typescript 更新于 2026-08-29

TypeScript × React:型別的實戰應用

第 6 章建立了型別系統的模型,這一章把它接到 React 上—— 目標是讓你讀懂(並寫出)公司程式碼裡那些型別技巧的「為什麼」。

阅读文章 →
Typescript 更新于 2026-08-29

元件實戰:從零打造一個浮動視窗

前面章節的元件,工作大多是「資料進、畫面出」;浮動視窗是另一種生物—— 它要跟瀏覽器的座標系統、指標事件、疊層順序打交道,還得在高頻互動下保持流暢。 這類元件最容易寫成「能動就好」的一團事件處理器,也因此最能檢驗你對 React 模型的掌握。 這一章從需求開始,完整打造一個 FloatingWindow: 可拖曳、可縮放、可堆疊、支援鍵盤與觸控。 每一步都不是新魔法,而是前七章觀念的落地。 建議打開導讀提到的實驗專案跟著做——這章的程式

阅读文章 →
Typescript 更新于 2026-08-29

綜合實戰:把觀念組裝成一個完整功能

第 1 到 7 章的觀念是零件,第 8 章用它們打造了一個元件,這一章做最後的總裝。 需求選一個幾乎每家公司都有的頁面:使用者管理—— 搜尋框(防抖)、結果表格、分頁、載入與錯誤狀態。 程式碼會完整走一遍,但重點放在每段旁邊的「為什麼」。

阅读文章 →
Typescript 更新于 2026-08-29

附錄:速查表、練習與資源

@XX@ 你的需求 & 工具與依據 值改變時畫面要跟著變 & useState(第 4 章) 值可以從其他 state/props 算出來 & 不要開 state,渲染時用 const 算(第 2 章) 計算昂貴,或需要穩定引用給 memo/依賴 & useMemo/useCallback(第 3 章) 值改變但畫面不需要反應(計時器 id、連線實例、最新值鏡像) & useRef(第 4 章) 需要與外部系統同步(訂閱、連線、DOM

阅读文章 →
Angelia EN 更新于 2026-02-03

COMP1100 Top 200 Practice Questions (with concise solutions)

Expanded pack combining past exam-style problems & revision exercises (200 items).

阅读文章 →
Angelia EN 更新于 2026-02-03

Haskell in 50 Minutes — Teaching Pack

Quick setup Install via GHCup (installs GHC, cabal, stack) Open a terminal: ghci launches the REPL.

阅读文章 →
Angelia EN 更新于 2026-09-27

Java Week 6–7:物件導向設計、測試與雜湊表 完全學習教材

第一部分Week 6:封裝、抽象與子型別Lecture 06A SkyBlue Lecture 06B SkyBlue Week 6 Workshop SkyBlue Lab:遞迴與排序

阅读文章 →
C++ 4th EN 更新于 2026-02-03

🎓 C++ Programming Curriculum - COMPLETE

This document provides a comprehensive overview of the completed C++ programming curriculum based on "The C++ Programming Language, 4th Edition" by Bjarne Stroustrup.

阅读文章 →
C++ 4th EN 更新于 2026-02-03

🧩 Capstone Project: Mini Standard Template Library Implementation

This capstone project demonstrates mastery of all C++ concepts learned throughout the curriculum by implementing simplified versions of key STL components. You'll build your own versions of fundamental data structures an

阅读文章 →
C++ 4th EN 更新于 2026-02-03

📚 Additional Code Examples

This directory contains additional code examples that demonstrate various C++ concepts and techniques beyond the main curriculum. These examples are designed to reinforce learning and provide practical applications of C+

阅读文章 →
C++ 4th EN 更新于 2026-02-03

✅ FINAL CURRICULUM ANALYSIS - COMPLETE VERIFICATION

Based on the provided curriculum structure, I have conducted a comprehensive analysis to verify completeness

阅读文章 →
C++ 4th EN 更新于 2026-02-03

🚨 Missing Content Analysis - C++ Curriculum

Based on the curriculum overview provided, here's a comprehensive analysis of what's missing and what's been completed.

阅读文章 →
C++ 4th EN 更新于 2026-02-03

Chapter 16: Classes

After completing this chapter, you will: Master advanced class design principles Understand constructors, destructors, and assignment operators Learn copy/move semantics Master operator overloading Understand access cont

阅读文章 →