上回用 Java + IntelliJ 來重構一堆 if/else 的計算運費範例,請見:https://www.youtube.com/watch?v=zO-NnNC-xyg&ab_channel=JoeyChen
這次改用 C# + Rider 來重構一樣的例子,不過這次刻意改用 Func
兩種作法適用場景不同,東西夠小夠單純,想要少一點 class/interface 等 elements,可以先這樣做,到真的有需要時,反正對我來說,要從 Func
## Reference
1) Youtube 版影片:https://youtu.be/9rfVe6Uikt0
2) GitHub commit history: https://github.com/tdd-best/strategy-sample-CSharp/commits/refactoring
3) #TDD與持續重構 培訓參考:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
--
我知道一般人的 Rider 沒有那個「把三元判斷式 自動替換成 Math.Min()」的燈泡,這是我自己刻的。
有興趣嗎?一起來 #極速開發 玩耍吧:https://tdd.best/courses/extreme-developing-202104/
同時也有35部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,TQC+Python基礎程式語言應用班第3次上課(106-208) 01_重點回顧與106題公里英哩換算 02_106題公里英哩換算程式說明 03_108座標距離計算程式說明 04_用方法二print加上逗點輸出 05_證照考試介紹與110正n邊形面積計算 06_110正n邊形面積計算程式說明 0...
c# if判斷式 在 91 敏捷開發之路 Facebook 的精選貼文
今天學到兩個有趣、有用的 javascript 知識點(原諒我這個後端工程師看到這種有趣的特性的興奮感)
1. 用個 hashmap 來取值並直接當物件的 key/property 取值用,如第一張圖的 queryParams.ref_data[refDataMap[cal_type]]
如果 cal_type 是 M, 那拿到的就是
queryParams.ref_data.market_dt
在 C# 之類的靜態語言就得用 reflection 搞的概念。
2. 用 spread operator 攤開某個 value 的內容。
如圖2的 ...cal_type_map[cal_type], 如果 cal_type 是 T, 就會把這個物件多一個 key/value pair (或是 property 的概念), 例如 can_trans : Y
這兩張圖也是為了 show 一下,我們把一堆重複的代碼抽成小而美的 function 來組合實現原本那一大坨的流程,並去除抽象來看重複的部份。
其實看最終代碼真的沒啥,但體會中間用極速開發的過程重構那一大段 N 個螢幕才放得進去的 code, 六個人輪流 pair 重構,不斷把之前的code整理、抽變數/方法/參數,看到判斷式也是重複的、處理也是重複的,不斷消掉 if/else 裡面的 block, 再消掉 if/elseif 的 condition, 那才是一個爽!
這是 coaching 這個團隊第三天的產出,這三天經歷了我人生的第一個 node.js, jest test, 產品代碼跟測試代碼都重構,第一個 mongoDB 的整合測試。
其實用對方式,對的人,有主管支持,團隊可以一起做決定,可以一起變強,可以打從心裡想改善的。
#程式碼片段分享已取得客戶主管同意
#javascript有趣!
#那堆precondition我也想用wrapper幹掉
c# if判斷式 在 吳老師教學部落格 Youtube 的最佳貼文
TQC+Python基礎程式語言應用班第3次上課(106-208)
01_重點回顧與106題公里英哩換算
02_106題公里英哩換算程式說明
03_108座標距離計算程式說明
04_用方法二print加上逗點輸出
05_證照考試介紹與110正n邊形面積計算
06_110正n邊形面積計算程式說明
07_202題倍數判斷程式說明
08_204算術運算程式解說
09_206等級判斷程式說明
10_208十進位換算程式說明
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2020_2
TQC+基礎程式語言 (Python 3)證照
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elifPython 第3類:迴圈敘述
技能內容:while、for…inPython 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
上課用書:
Python 3.x 程式語言特訓教材(第二版)
作者: 蔡明志, 財團法人中華民國電腦技能基金會
出版社:全華
出版日期:2018/12/20
定價:490元
吳老師 109/5/20
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
c# if判斷式 在 吳老師教學部落格 Youtube 的最佳解答
TQC+Python基礎程式語言應用班第3次上課(106-208)
01_重點回顧與106題公里英哩換算
02_106題公里英哩換算程式說明
03_108座標距離計算程式說明
04_用方法二print加上逗點輸出
05_證照考試介紹與110正n邊形面積計算
06_110正n邊形面積計算程式說明
07_202題倍數判斷程式說明
08_204算術運算程式解說
09_206等級判斷程式說明
10_208十進位換算程式說明
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2020_2
TQC+基礎程式語言 (Python 3)證照
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elifPython 第3類:迴圈敘述
技能內容:while、for…inPython 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
上課用書:
Python 3.x 程式語言特訓教材(第二版)
作者: 蔡明志, 財團法人中華民國電腦技能基金會
出版社:全華
出版日期:2018/12/20
定價:490元
吳老師 109/5/20
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
c# if判斷式 在 吳老師教學部落格 Youtube 的最佳解答
文大Python程式入門或證照第1次課程介紹與安裝環境&下載ECLIPSE&設定工作區&安裝PYTHON外掛&編輯環境自行放大與修改編碼方式與轉型&輸出資料型別與型別轉換練習&變數的型別與轉換&證照考題
上課內容:
01_課程介紹與安裝環境
02_下載ECLIPSE說明
03_解壓縮ECLIPSE與設定工作區
04_安裝PYTHON外掛
05_設定PYTHON實體路徑與建立專案
06_編輯環境自行放大與修改編碼方式與轉型
07_輸出資料型別與型別轉換練習
08_變數的型別與轉換
09_證照考題題型說明
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/pccu_python_2018_2
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
TQC+Python證照目錄:
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elif
Python 第3類:迴圈敘述
技能內容:while、for…in
Python 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈
Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
Python 第6類:串列(List)的運作(一維、二維以及多維)
技能內容:串列的建立、串列的函式、串列參數傳遞、串列應用
Python 第7類:數組(Tuple)、集合(Set)以及詞典(Dictionary)
技能內容:數組、集合、詞典的建立、運作及應用
Python 第8類:字串(String)的運作
技能內容:字串的建立、字串的庫存函式、字串的應用
Python 第9類:檔案與異常處理
技能內容:文字I/O、檔案的建立、寫入資料與讀取資料、二進位I/O、編碼(Encoding)、異常處理
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰? 出版日期:2016/11/29
吳老師 107/12/3
EXCEL,VBA,Python,文化推廣部,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境