- Mar 07 Tue 2017 12:41
【筆記】OpenGL : 如何畫出三角形
- Mar 07 Tue 2017 10:51
【筆記】Architectural pattern (架構模式)
什麼是架構模式呢?總結來說,就是使程式有架構性的開發,目的是為了降底耦合,讓程式更有彈性,更容易維護或更貼近業務需求與目標。
- Mar 07 Tue 2017 08:48
【筆記】CMMI 能力成熟度模型整合
- Mar 06 Mon 2017 23:28
【筆記】軟體配置管理(Software configuration management,SCM)
- Mar 06 Mon 2017 22:59
【筆記】Fagan’s inspection 范根檢查法
Fagan's inspection 是一個結構化的過程,它嘗試在軟體開發的各個階段中發現開發檔案的缺陷,例如程式編碼,規範,設計等等。 它以Michael Fagan的名字命名,被認為是正式的軟體檢查發明者。
Steps :
計劃(Planning):選擇檢驗小組的成員、準備文件和安排會議地點。
概觀(Overview):針對欲檢驗項目替檢驗小組作一般性文件的簡報。
- Mar 06 Mon 2017 22:27
【筆記】各種測試介紹
- Mar 06 Mon 2017 21:33
【教學】Override 與 Overload 的差別
初學者剛接觸程式語言時常會聽到Override與Overload,但常分不清其中的差別,我以兩個簡單的C++範例說明一下。
Override 覆載
建立一個Class 命名為Shape,並且他有一個public function為getShapeType,此時再建立一個class命名為Triangle,並繼承Shape,這時候改寫從Shape繼承下來的function,如此一來,原本class Shape呼叫getShapeType()的時候會回傳字串"Shape",而class Triangle繼承Shape並Override getShapeType(),因此變成回傳字串"Triangle"
class Shape { public void getShapeType() { return "Shape" ; } } class Triangle : Shape { public void getShapeType() { return "Triangle" ; } }
- Mar 05 Sun 2017 23:12
【筆記】Design Pattern - Singleton 介紹
- Mar 05 Sun 2017 22:28
【筆記】Design Pattern的兩大宗旨
這學期剛上完Design Pattern的課程,使用的教科書是 J. Vlissides. 1998. Pattern Hatching: Design Patterns Applied. Addison-Wesley Longman Ltd. 這本書的作者跟老師是很好的朋友,Gang of Four之一,作者提到書中所有的設計都離不開兩大宗旨, Favor object composition over class inheritance 和 Program to interface not implementation ,這篇會稍微介紹紀錄一下兩個要點目的是什麼,之後再慢慢介紹其他的pattern。
Favor object composition over class inheritance
當需要重用程式碼時,比較好的方法應該是利用 Composition 而非 Inheritance,利用 Composition 物件只會透過自己 interface 訪問自己的功能,不會打破封裝,關聯性也較低。
- Mar 05 Sun 2017 17:45
【筆記】物件導向設計 : SOLID 介紹
What is SOLID?
在程序設計領域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期引入的記憶術首字母縮略字,指代了物件導向編程和物件導向設計的五個基本原則。當這些原則被一起應用時,它們使得一個程式設計師開發一個容易進行軟體維護和擴展的系統變得更加可能。[1] SOLID所包含的原則是通過引發編程者進行軟體原始碼的代碼重構進行軟體的代碼異味清掃,從而使得軟體清晰可讀以及可擴展時可以應用的指南。SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟體開發的基本原則的重要組成部分。
● Single-responsiblity principle
一個class內應該只有一個改變的理由,意思是一個class應該只需要專注做一件事情,這個理由是當class內需要做兩件以上的工作時,一旦程式需要改變,因為他的耦合度比一件工作還要高,造成變更上的困難,所以盡量避免。