I am a web programmer taking code quality seriously. I have practical experience in TDD, refactoring and agile methodology. I am good at C# but also open to learn other technology stack as well.
由於團隊成員實做速度夠快,我們得以花費更多時間在前期的設計討論上,而非直接埋頭苦幹。團隊能夠在開發前一起討論職責該怎麼切分、介面怎麼定義。一起畫 Class Diagram 與 Sequential Diagram,順過整個流程,確保所有人的認知都一致。最後再切成task交由不同的Pair去實做。甚至在遠端工作的情況下,依然如此。。
視覺部門的職掌是機械手臂中和影像有關的功能,諸如影像處理、物體定位、識別、量測等。近年亦開始導入深度學習技術,使用C++及Qt Libary進行開發。
因舊有系統使用polling載入後端資料,而且在polling期間block住UI Thread,另外濫用Qt的signal/slot機制,造成Server總是以broadcast方式傳送信息給Client。我設計並導入了non-blocking的Client/Server通訊架構解決此問題,大幅減少UI回應時間。
2017年至群輝科技(Synology)開始第一份工作,我所在的部門負責開發辦公室生產力軟體,也就是Web版本的Doc, Excel, PowerPoint。其功能包含即時多人協同編輯、復原、文件歷史快照、分頁模式、跨瀏覽器支援。我主要貢獻如下。
參與Daniel Teng講授的開腦CSM(Certificated Scrum Master)課程,課程為期三天,學習Scrum的框架下每個活動背後的理由,敏捷團隊成員該有的素質。課後很興奮地嘗試在組織內導入Scrum但理所當然的失敗了,之後漸漸明白敏捷應該是不導而入,潛移默化,以身作則。
為了解決寫測試很花時間的問題,自費參與91(Joey Chen)的Visual Studio極速開發課程,課前兩週開始從零自學C#,課後花費一週刻意練習,能夠在22分鐘內以TDD方式完成Tennis Kata,並能於日常開發使用該技能。心得記錄於部落格:
因想學習TDD的開發方式與敏捷的工程實踐。主動要求培訓,參與91(Joey Chen)的重構與 TDD 實戰營課程。學習Specifcation By Example、拆解TDD Baby Step、重構技能。
參與91(Joey Chen)的單元測試實戰營課程,課前已先透過實做和習得單元測試的技巧,透過上課更全面的了解盲點。學習3A原則、測試也該重構、Mock/Spy差異、正確評量Code Coverage指標的觀念等等。
自認為TDD沒有那麼容易上手,縱然上了培訓課,但尚未內化成自身的技能。故決定趁不在職的期間,練習用TDD開發C#程式。過程包含將極速開發的技能從Visual Studio遷移到Rider上、練習LINQ、上Emergent Design線上課、練習Kata、參與Coding Dojo等,已能將TDD運用於日常開發。心得記錄於部落格。
https://blog.opasschang.com/2019/03/12/a-journey-of-learning-tdd/
因為想要學習領域驅動設計,卻覺得參考書過於生硬。所以主動報名上課,想要加速理解DDD的核心觀念。除了解釋相關名詞之外,此課程影響我最大的是把Clean Architecture的分層概念理解清楚。日後在閱讀其他Domain-Driven Design的書籍,以及和同事討論設計架構,都有更清晰的理解。
因為想要學習財務思維,理解如何依據財務報表了解公司狀況,自行報名了MJ老師的超級數字力課程。這門課教你將三張財務報表以立體的觀點比較,判斷是不是一門好生意,公司有沒有賺錢的真本事,如何依據數字做決策。
I am a web programmer taking code quality seriously. I have practical experience in TDD, refactoring and agile methodology. I am good at C# but also open to learn other technology stack as well.
由於團隊成員實做速度夠快,我們得以花費更多時間在前期的設計討論上,而非直接埋頭苦幹。團隊能夠在開發前一起討論職責該怎麼切分、介面怎麼定義。一起畫 Class Diagram 與 Sequential Diagram,順過整個流程,確保所有人的認知都一致。最後再切成task交由不同的Pair去實做。甚至在遠端工作的情況下,依然如此。。
視覺部門的職掌是機械手臂中和影像有關的功能,諸如影像處理、物體定位、識別、量測等。近年亦開始導入深度學習技術,使用C++及Qt Libary進行開發。
因舊有系統使用polling載入後端資料,而且在polling期間block住UI Thread,另外濫用Qt的signal/slot機制,造成Server總是以broadcast方式傳送信息給Client。我設計並導入了non-blocking的Client/Server通訊架構解決此問題,大幅減少UI回應時間。
2017年至群輝科技(Synology)開始第一份工作,我所在的部門負責開發辦公室生產力軟體,也就是Web版本的Doc, Excel, PowerPoint。其功能包含即時多人協同編輯、復原、文件歷史快照、分頁模式、跨瀏覽器支援。我主要貢獻如下。
參與Daniel Teng講授的開腦CSM(Certificated Scrum Master)課程,課程為期三天,學習Scrum的框架下每個活動背後的理由,敏捷團隊成員該有的素質。課後很興奮地嘗試在組織內導入Scrum但理所當然的失敗了,之後漸漸明白敏捷應該是不導而入,潛移默化,以身作則。
為了解決寫測試很花時間的問題,自費參與91(Joey Chen)的Visual Studio極速開發課程,課前兩週開始從零自學C#,課後花費一週刻意練習,能夠在22分鐘內以TDD方式完成Tennis Kata,並能於日常開發使用該技能。心得記錄於部落格:
因想學習TDD的開發方式與敏捷的工程實踐。主動要求培訓,參與91(Joey Chen)的重構與 TDD 實戰營課程。學習Specifcation By Example、拆解TDD Baby Step、重構技能。
參與91(Joey Chen)的單元測試實戰營課程,課前已先透過實做和習得單元測試的技巧,透過上課更全面的了解盲點。學習3A原則、測試也該重構、Mock/Spy差異、正確評量Code Coverage指標的觀念等等。
自認為TDD沒有那麼容易上手,縱然上了培訓課,但尚未內化成自身的技能。故決定趁不在職的期間,練習用TDD開發C#程式。過程包含將極速開發的技能從Visual Studio遷移到Rider上、練習LINQ、上Emergent Design線上課、練習Kata、參與Coding Dojo等,已能將TDD運用於日常開發。心得記錄於部落格。
https://blog.opasschang.com/2019/03/12/a-journey-of-learning-tdd/
因為想要學習領域驅動設計,卻覺得參考書過於生硬。所以主動報名上課,想要加速理解DDD的核心觀念。除了解釋相關名詞之外,此課程影響我最大的是把Clean Architecture的分層概念理解清楚。日後在閱讀其他Domain-Driven Design的書籍,以及和同事討論設計架構,都有更清晰的理解。
因為想要學習財務思維,理解如何依據財務報表了解公司狀況,自行報名了MJ老師的超級數字力課程。這門課教你將三張財務報表以立體的觀點比較,判斷是不是一門好生意,公司有沒有賺錢的真本事,如何依據數字做決策。