緯育 2026-0527

出自頂極製作所
於 2026年5月27日 (三) 09:49 由 Kuyohong留言 | 貢獻 所做的修訂 →‎應用示例與實作任務
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

本課程以「做中學」為核心,透過AI協作帶領學員體驗從傳統瀑布式流程到現代雲端與Serverless的完整軟體開發與部署路徑。初期先不寫程式,從需求、開發、測試到發布的生命週期入門,接著申請並操作雲端伺服器,學習遠端部署與成本優化,認識高併發與微服務架構。

實作層面導入具AI輔助的IDE(如AntiGravity/AntiGravity.,VS Code為傳統選項),在聯網環境中安裝登入、建立專案資料夾結構(重點為SRC與Test),並以AI生成與補全文件、指引流程,逐步建構Python開發環境與Flask網站,涵蓋IP/Port等網路基礎、路由與端點設計、多功能URL/URI管理與本地到雲端的版本管控。

教學強調先行動後理解、主動提問與紀錄,以雙軌法比較AI導向與經典式教學,確保學員最終能產出可供面試官檢視深度理解的完整筆記。

課程介紹與目標

  • 產出可向面試官展示的完整筆記,體現對流程、架構與實作的深度理解。
  • AI是核心趨勢,學員需養成以AI查詢名詞定義、探索解題流程、補全文件的習慣。
  • 課程路徑:瀑布式流程體驗 → Git版本控制 → 遠端部署與雲端操作 → 成本優化與Serverless → 高併發與微服務。

教學方法與學員任務

  • 筆記管理:進入Google Drive指定資料夾(CKC101),以「座號-名字」建立個人資料夾,所有筆記以Google文件記錄,方便即時檢視與追蹤。
  • 新型態教學:情境優先、名詞探索、流程探詢、實作與詳錄(步驟截圖+說明),形成可回溯的知識庫以利排錯與複習。
  • 節奏與互動:講師講方向/行徑/流程 → 學員安裝登入 → 建立專案 → 詢問AI → 貼回筆記 → 持續迭代;步驟完成後舉手示意,便於抽查與輔導。
  • 時間安排:每25分鐘休息5分鐘;晚間課程為17:30-20:30。
  • 雙套分析:若AI導向效果不佳,提供「經典式教學」版本進行比對與優化。

開發環境與工具選擇

  • IDE與AI內建趨勢:推薦AntiGravity/AntiGravity.,VS Code可作為替代;可比較不同工具的AI輔助效果,成熟後建議付費取得更穩定功能。
  • 安裝與登入:三分鐘內完成下載、安裝、登入;操作卡住時截圖詢問AI。
  • 聯網要求:在聯網IDE中操作以啟用AI輔助與遠端提示。
  • P-Logger與Open Folder:強調以Open Folder建立專案資料夾,養成現代化流程習慣,避免傳統複製貼上。

專案結構與文件整合

  • 專案根目錄與必要資料夾:SRC(主程式、業務邏輯與模組)與Test(測試程式);可加上Tester命名變體,重點在產品碼與測試碼分離,對齊DevOps實務。
  • 文件化:安裝與專案建立後,以AI「做文件」、補全流程與知識點,貼回筆記並由講師快速檢視修正。

Python Web應用開發與網路基礎

  • 前置作業:安裝Python(若為3.0需處理相容性);向AI詢問「建立Python專案需具備的要素與前置作業」以取得安裝與環境指南。
  • 框架選型:以Flask實作,並認識FastAPI、Django等替代;底層概念相通。
  • 網路基礎:電腦以IP識別;應用綁定Port(65535範圍,低於1000常為系統保留);示例部署在1919或19191埠。
  • 路由與端點:設計多功能URL/URI,例:/feature1、/feature2分別呈現不同內容;理解URL結構(domain/IP + path)與URI定義。
  • 虛擬環境與套件管理:認識venv與依賴管理的重要性,課後延伸研究。

標準開發流程與版本控制

  • 環境建置:安裝IDE與Python,建立專案資料夾與結構(SRC、Test/Tester)。
  • 開發到測試:程式碼不可100%保證正確,需進行測試;常見至少兩個分支(開發與測試)以保障品質。
  • 版本保存:本地保存後推送至雲端平台(如GitHub),以便協作與備援。

教學與學習心態

  • 角色轉換:以老闆視角調度AI與流程,不必執著成為工程師但需懂系統架構與決策。
  • 記憶與筆記:邊做邊記,打字與截圖強化記憶;講師會陪做,降低起步困難。
  • 自主超前學習:提供流程與資料,程度較好的學員可依文件提前進度。
  • 視覺化:以Mermaid或其他工具繪製系統架構與流程圖,強化大局觀。

市場與題材延伸

  • 投資與AI題材:簡述自3月以來市場表現與題材,未來另行開課深入;當前重點為環境安裝與流程。

應用示例與實作任務

  • 兩功能網站示例:以Prompt讓AI生成具兩功能的Flask應用;功能一顯示「早上要看股票」(原文「早上要看比較」);功能二顯示「以後找公司的時候要找下午才上班的公司」;啟動後以 localhost:19191/[路徑] 驗證。
  • 成功標準:能在本地成功執行並看到Feature 1頁面,於LINE群組回報附截圖掌握進度。
  • 部落格與爬蟲:後續提供部落格網址,講師以agent爬取;留意平台防爬機制。

2026-0527-01.png 本次系列課程完整地指導學員從本地端開發到雲端部署的實務流程,涵蓋了 Git 版本控制、GitHub 協作、AWS 雲端環境建置與管理,最終目標是讓學員理解並實作軟體開發與維運(DevOps)的完整循環。

課程首先從本地開發環境著手,指導學員安裝與設定 Git,並將專案初始化為可被追蹤的儲存庫。學員學習了如何使用 git add、git commit 等核心指令來追蹤與封存程式碼變更,並透過 git push 將本地專案推送到遠端的 GitHub 倉庫,強調了理解整體流程(View)而非死記指令的重要性。

接著,課程視角轉移至雲端系統管理員,聚焦於 AWS 平台的實作。學員學習註冊 AWS 帳號,並立即進行安全強化,包括啟用多重要素驗證(MFA)與設定費用預警,以建立工程師應有的安全與成本意識。隨後,課程深入探討了企業級的權限管理機制 IAM (Identity and Access Management),指導學員建立對應不同部門的用戶群組(User Groups)與用戶(Users),並分配適當的權限策略(Policies),以實現安全的權限控管。

在雲端基礎架構方面,課程以 AWS 核心運算服務 EC2 為主軸,將其與學員熟悉的本地虛擬化技術(如 VMware)進行概念對比,講解了虛擬機映像(AMI)、虛擬硬碟(EBS)、虛擬網卡(ENI)及安全群組(Security Group)等對應關係。學員實際在 AWS 上租用一台 Windows 虛擬伺服器,並學習了如何透過金鑰對(Key Pair)與遠端桌面進行連線。

最後,課程整合了開發與維運的流程,指導學員在已建立的 Windows 伺服器上安裝 Python 與 Git,並從 GitHub 將程式碼拉取至伺服器中進行部署。此過程凸顯了開發端「在我機器上可行」與維運端「實際部署時環境不一致」的常見協作落差,從而引出容器化技術的必要性。講師強調,學員應養成利用 AI 工具輔助學習的習慣,並將每日實作整理成包含截圖與流程說明的部落格筆記,以利知識沉澱與個人作品集累積。

Git 版本控制與 GitHub 協作

  • 版本控制基礎
    • 概念:為追蹤專案變更,需在專案資料夾設定監控機制,Git 即為此監控系統。
    • 安裝與設定:需在本地安裝 Git,並透過 git config 設定使用者名稱與 Email 以作身份識別。
    • 初始化儲存庫 (git init):將本地專案資料夾轉變為 Git 可追蹤的儲存庫,會生成隱藏的 .git 資料夾。
    • 追蹤檔案 (git add):使用 git add . 將當前目錄所有檔案加入追蹤區(Staging Area)。
    • 提交變更 (git commit):使用 git commit -m "提交訊息" 將追蹤區的檔案正式「封箱」,並附上說明。
  • 遠端協作流程
    • 註冊 GitHub 帳號:建立遠端倉庫以存放程式碼。
    • 連結遠端倉庫 (git remote add):使用 git remote add origin [倉庫網址] 告知本地倉庫遠端位置。
    • 建立主分支 (git branch):使用 git branch -M main 建立名為 main 的主要分支。
    • 推送至遠端 (git push):執行 git push -u origin main 將本地 main 分支的內容推送到 GitHub。
    • 拉取程式碼 (git clone):從遠端 GitHub 倉庫將程式碼完整複製到本地或伺服器。

雲端平台與 AWS 帳號管理

  • 雲端部署概觀
    • 目標:將本地開發完成的程式部署到雲端伺服器,使其能面向消費者提供服務。
    • 雲端平台:課程以 AWS 為主要實作環境,但也提及 GCP、Azure 等其他平台,強調方法論的可遷移性。
  • 帳號申辦與安全
    • 註冊:需使用 Email、信用卡,並以英文填寫地址。建議使用個人手機網路避免共用 IP 風險。
    • MFA (多重要素驗證):為 Root 帳號啟用 MFA,使用手機 Authenticator App 進行二次驗證,是工程師必備的安全實踐。
    • 費用控管:學習使用 AWS Billing 設定費用預警/預算,避免非預期的高額支出。
  • IAM (Identity and Access Management)
    • 目的:在單一 AWS 帳號內實現部門化與精細的權限管理。
    • 核心概念:
      • User Groups (用戶群組):對應公司部門,如「管理部門」、「開發部門」。
      • Users (用戶):對應部門內的成員,擁有各自的登入憑證。
      • Policies (權限策略):定義用戶或群組可執行的操作,如 AdministratorAccess。
    • 登入方式:區分 Root 帳號與 IAM 使用者帳號的登入入口,日常操作應避免使用 Root 帳號。

AWS EC2 虛擬伺服器與部署

  • 虛擬化概念對比
    • 雲端虛擬化(AWS EC2)與本地虛擬化(VMware)在概念上共通,僅術語不同。
    • 術語對照:
      • 虛擬機映像:AMI (Amazon Machine Image) vs. VMware Image
      • 虛擬硬碟:EBS (Elastic Block Store) vs. Virtual Disk
      • 虛擬網卡:ENI (Elastic Network Interface) vs. Virtual NIC
      • 防火牆:Security Group vs. Firewall
  • 建立 EC2 執行個體(虛擬機)
    • 區域選擇:選擇地理位置較近的區域(如東京)以降低延遲。
    • 作業系統:課程先以 Windows Server 進行實作,後續將轉換至 Linux。
    • 金鑰對 (Key Pair):創建並下載 .pem 檔案,用於安全登入虛擬機,遺失將無法連線。
  • 網路與安全設定
    • 安全群組 (Security Group):作為虛擬防火牆,控制進出 EC2 的流量。需手動開放應用程式所需的通訊埠(如 1919),預設僅開放 RDP(3389)等管理端口。
    • 作業系統防火牆:除了安全群組,Windows Server 內部防火牆也需設定規則以允許流量通過。
    • 內外網 IP:EC2 實例擁有公有 IP (Public IP) 和私有 IP,外部訪問需透過公有 IP。

開發與維運(DevOps)協作流程

  • 開發端工作流程(本地)
 1. 設定本地開發環境(IDE、Python)。
 2. 撰寫與測試程式碼,透過 localhost:1919 進行本地驗證。
 3. 使用 Git 將程式碼推送至 GitHub 倉庫。
  • 維運端工作流程(雲端)
 1. 管理 AWS 帳號安全與權限(MFA, IAM)。
 2. 在 AWS 上租用伺服器(EC2)。
 3. 在伺服器上安裝所需環境(Python、Git)。
 4. 從 GitHub 將程式碼拉取到伺服器。
 5. 設定網路與防火牆規則,啟動應用程式並對外提供服務。
  • 協作落差與容器化
    • 問題:開發者在本機可執行的程式,在維運部署時因環境不一致(如依賴版本、系統設定)而失敗。
    • 解決方案:容器化技術(如 Docker)能將應用與其環境封裝在一起,確保跨環境的一致性,是業界解決此問題的標準作法。

學習方法與產出要求

  • 鼓勵使用 AI 輔助:遇到問題或查詢指令時,積極利用 ChatGPT 等 AI 工具提問與解決。
  • 建立大局觀:強調理解每個步驟「為何而做」,掌握整體流程,而非死記特定平台的點擊順序。
  • 筆記與部落格產出:要求學員將每日學習內容整理成包含大綱、截圖的 Google 文件,並轉發布至個人部落格,作為學習記錄與作品集。
  • 進度追蹤與回報:透過 LINE 群組回報進度與上傳截圖,讓講師能掌握學員狀態並調整教學節奏。

2026-0527-02.png