# Counter 計數器 前言:在演算法中我們有時候會需要計算可迭代物件中的個別元素數量,Python 內建的 Counter 可以幫我們在實現這個功能之外,效能優化也是挺不錯的。 # 建立 Counter 123456import collections.Counterc = Counter() # a new, empty counterc = Counter('gallahad') # a new counter from an iterablec = Counter({'red': 4,...

# 堆積佇列 heap queue 今天來介紹 Python Library 的 Heap Queue Heap (堆積) 是一個 Binary Tree (二元樹),所以 heap [0] 是整個結構最小的元素 # 初始化 HeapQueue 給變數宣告成陣列即可 12import heapqh = [] # Push heapq.heappush(heap, item) 把 item 放進 heap,並保持 heap 性質不變。 12345678import heapqh = []heappush(h, (5, 'write...

# [Web 基礎系列] 聽說你寫過聊天機器人?你真的知道 WebHook,RESTful API? # Webhook Introduction # 想像一下假設你現在的 Server 想要做即時更新 但你只會寫一般 Restful API 被動的去接收請求,但無法主動的更新所有 Client. Webhook 就是在解決這類的問題,達到 Server 能夠主動推撥到另一個 Client 因這一特性 Webhook 也稱作反向 API # RESTful API 你可能會寫 API,但你有照 RESTful 的風格進行 API 開發嗎?,往下來看看這些特點你是否有做到。 #...

# 物件導向軟體工程 - 軟體測試 # Software Testing Black-Box Testing Techniques 軟體黑箱測試技術 # Black-Box Testing 黑箱測試 專注於測試軟體的功能性與行為 認為類別的書與可以有效的檢查錯誤 考慮到了輸入值常常導致問題 認為輸入值得結合會影響系統運作 # Black-Box Testing Techniques 黑箱測試技巧 Equivalence partitioning 等價劃分 Boundary value analysis 邊界值分析 Cause-effect testing 原因影響測試 #...

# 本地端應用透過 Google Cloud 達到持續交付 簡報連結 # Self Introduction # 持續交付 Continous Delivery Continous Delivery = CI (Continous Integration) 持續整合 + CD (Continous Deployment) 持續部屬 他們是在將撰寫完的程式流程自動化,前者負責整合的部分,後者負責部屬的部分。 # 本次主角 Cloud Build (CI 工具) 特色 有免費額度 支援多種語言 可以整合很多其他 GCP 服務 (今天與 Cloud Run 整合) 使用 yaml...

# 物件導向軟體工程 - 軟體品質 # Software Quality Assurance (軟體品質保證) # 概述: 是監控軟體工程流程和方法以確保品質的一系列手段。[來源請求] 實現這一目的有著多種方法,並且可以確保符合一個或多個標準 # 活動: Verfication 驗證 正確得建置產品 (建置方法正確) Validation 建置對的產品 (產品正確) Technical reviews Testing: 嘗試發現程式錯誤 # Cost of Quality 品質成本 包含 Costs of preventing software failures...

# 物件導向軟體工程 歷屆考古 # 期中考 # 110 # Q1 Q: 違反 SOLID 哪個原則 A: 違反 OCP 重點在 Graphic Editor 裡面我可以看出我們會根據 shape 型別用 if else 去判斷那當我們今天有新型別 Triangle 會需要須改 Main code GraphicEditor # Q2 Q: 看結果 A: 首先我們看到 Coffee 是該題 Decorator 與真正 Coffee Expresso (濃縮咖啡) 的共同介面,這題實在是太明顯了一看就知道是 Decorator Pattern, 那我們看 Main Code 他有...

# 軟體架構模型 Architectural Pattern 當我們剛開始學習 軟體設計的時候 都會根據書本或是相關教學文章進行軟體架構設計,但事實上軟體設計不是死的,就像以往的 Design Pattern 需要根據系統需求來進行調整。 # MVC Pattern 剛入門軟體設計最耳熟能祥的軟體架構模型,MVC Pattern 在非常早期就出現了,當初由 Trygve Reenskaug 在 1978 年提出,將不同專業的人員能夠適當的分組 MVC(Model,View,Controller) Model (模型) 代表某種同類型同領域的實作或模擬 在同一個 Model...

# 專案一秒起飛 Cloud Run # 功能 Cloud Run Doc 圖片來源 Google Cloud Platform 官網 也就是說你可以去讓你的 網站,後端,應用程式 去自動部屬 # 使用 GCP 前 建議裝個 Goolge Cloud SDK 當然不裝的話也可以 在 Web 上點選也可以 Link # Okay 開搞 Step 1. 建立 GCP 專案 朋朋們在此初體驗搞個免費方案就好啦,別亂刷卡喔 前面帳戶設置就不提供範例,想必大家都是順ㄅ 辦理完之後進到 GCP Console 且點選 GCP 的專案下拉式選單 點選建立專案 Complete...

# 物件導向軟體工程 - 設計模型 # 參考資料 文章內容多數皆來自 ianjustin39 的文章 與一些個人整理與補充 原文連結 # SOLID Priciple OOAD 設計原則 SRP (Single Responsibility Principle) 單一責任原則 A class as the method they do simalar thing (Highly relative) Help for Aggregation If seperate the will increase the number of class/interface OCP (Open...