我的軟體開發之路

18公開內容

我們常使用別人設計好的 API 來使用,這符合現代軟體設計的概念,利用軟體元件拼湊組合出新的功能,不做重覆的事。但這樣真的行嗎?中間跳過了甚麼?這個軟體元件為何要這樣設計,它隱含的分析及設計流程全部跳過,如果一昧地只會用別人設計好的東西,那當遇到的非典型情況時,自己又該怎麼處理呢?

全部內容
免費與付費
最新發佈優先
現代的計算機概論範圍也越來越廣了,從傳統的「硬體」、「軟體」到「通訊」及「資料」等;其中,通訊現在應該算獨立於計算機之外自成一派。而資料科學則在近十年「機習學習」或「深度學習」變成顯學後,受到高度重視。不想變成時代的眼淚,還請多努力,別輕易躺平。
Thumbnail
從電腦程式語言的歷史來看,進入門檻越低且容易取得相關資源的程式語言會被廣泛使用。現代的軟體開發更重視軟體元件(函式庫)的整合使用與架構,更勝於程式語言本身的特性。現代程式語言的開發已經轉向重視易用性、安全性及函式庫支援的豐富程度,而非單純講求執行階段的效能。
Thumbnail
作者講的「快速學習法」,其本質上應該就是我先前做過重點摘要的「費曼學習法」,想要教授一樣技能或技術給他人時,自己就要徹底理解問題或技術的本質,然後收集相關的資料,用自己的話重新詮釋問題及解決方式。在這個過程中,就能把知識轉化為自身的理解,從而跟自己的知識樹相連接,存在腦海深處變成本能。
Thumbnail
終於完成物件導向的設計,包括用於指導撰寫程式的「類別模型」和「動態模型」。以物件導向的方式進行設計,只是進攻的前奏,撰寫程式才是最終的目標。雖然物件導向的理論、方法、技巧經過多年的發展後,業界已經形成基本統一的認知,但並未出現一種統一的「物件導向程式語言」。
Thumbnail
「人工智慧與機器學習」在這幾年間變成顯學,在十幾年前我唸書的時代還頗為冷門的一個領域,想不到就這樣大翻身了。記得以前研究所上課通常是叫做「模式識別與機器學習 (Pattern recognition and machine learning)」,講一堆分類器,然後就沒有然後了。
Thumbnail
設計模型主要包含兩個部分:靜態模型、動態模型。動態模型設計一般都是在類別模型設計完成後開始,此階段需要使用類別模型的類別。動態模型設計不需要應用「設計原則」和「設計模式」,只需對照「使用案例模型」,並根據使用案例的特點,選一個適合的動態模型表述即可;動態建模不需要面面俱到。
Thumbnail
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
使用案例 (Use Case)是用來描述需求的流程,就是 5W1H8C 中的 How。有很多方法可以分析客戶需求,例如問卷調查、自由發想、資料分析、資料探勘、競爭對手分析等,可以參考「需求分析理論」的相關書籍;但最有效以及最直接的方法還是和客戶交流。只要掌握正確的方法,就可以完成良好的需求分析。
Thumbnail
需求分為「功能屬性」和「品質屬性」, 5W + 1H 屬於功能屬性,8C 屬於品質屬性。能否正確地實現一個需求,既要看功能屬性是否正確,也要看品質屬性是否正確,兩者缺一不可。例如:設計了一個功能強大的機器視覺系統,但動不動就當機,你覺得客戶會使用這樣的系統嗎?
Thumbnail