大家可能有使用過forever來管理process,今天我特別要介紹一款剛推出的process manager, PM2,他和forever一樣被使用在node.js上,不過最大的差別是他多了表格! 用過forever的人都知道,每次forever list的時候很常跑版,對應不到正確的pid,現在就讓我來介紹一下PM2吧。
安裝
使用npm安裝
npm install pm2 -g
大家可能有使用過forever來管理process,今天我特別要介紹一款剛推出的process manager, PM2,他和forever一樣被使用在node.js上,不過最大的差別是他多了表格! 用過forever的人都知道,每次forever list的時候很常跑版,對應不到正確的pid,現在就讓我來介紹一下PM2吧。
安裝
使用npm安裝
npm install pm2 -g
什麼是架構模式呢?總結來說,就是使程式有架構性的開發,目的是為了降底耦合,讓程式更有彈性,更容易維護或更貼近業務需求與目標。
Fagan's inspection 是一個結構化的過程,它嘗試在軟體開發的各個階段中發現開發檔案的缺陷,例如程式編碼,規範,設計等等。 它以Michael Fagan的名字命名,被認為是正式的軟體檢查發明者。
Steps :
計劃(Planning):選擇檢驗小組的成員、準備文件和安排會議地點。
概觀(Overview):針對欲檢驗項目替檢驗小組作一般性文件的簡報。
初學者剛接觸程式語言時常會聽到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" ; } }
這學期剛上完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 訪問自己的功能,不會打破封裝,關聯性也較低。