程式語言趨勢觀察:
1. 新動態語言如python, node.js 會不會取代現有流行語言?不會,因為訴求不同,也各有強項,例如:ecosystem, multi thread 支援程度
2. python 及 JavaScript 現在沒有multi thread,但python 以後會有
內功心法:
1. 不要打掉重鍊,因為老闆不會欣賞refactoring 的效用,而是要在開發新功能的時候順便包裝refactoring
2. 資深開發者的價值在於 (1)歸類的能力,例如:模組的顆粒大小劃分、Single responsibility 的符合程度 (2) exception handling 的經驗
3. 軟體 生命週期的 40~80% 都是在維護,所以寫出好維護的程式碼比開發速度重要得多
4. unit test 可當作sample code,不論是寫給社群的人看的或是給接手的開發者看都有幫助
5. 因為人不完美,所以unit test 很重要
6. Q&A說到 每個組織的SA 往往是資深的工程師擔任,但SA 可能以前很強,現在卻會拖累團隊,因為技術已經跟當年不一樣
7. Q: strategy 或 state pattern 有些功能只有部份 concrete classes 有,那其他的concrete classes 是否也要寫 dummy function?
A: Yes
8. Q: Template 或 strategy pattern 可否用第一個concrete class 當作 base class ,讓其他變形繼承記好,而不是每一類 strategy 都造個 interface?
A: Yes
9. Q: 新人會不會有over design 的問題?
A: 建議先寫功能後再開始慢慢套用pattern,如果沒套用 pattern 會讓程式混亂才需要套用pattern,就不會有over design 的問題
10. Q: 動態語言或functional programming 也需要design pattern嗎?
A: 可以用語言本身的特性達成相同效果就用
補充:
a. concrete class: 就是實作 interface 或繼承abstract class 而實際在做事的class
b: strategy 或 state pattern: 看下列例子很好理解
http://teddy-chen-tw.blogspot.tw/2013/08/strategy-pattern.html
https://www.dotblogs.com.tw/ricochen/archive/2012/02/09/68609.aspx
沒有留言:
張貼留言