Re: [問題] 在流程中插入檢查或不檢查 程式怎麼寫
看板C_and_CPP (C/C++)作者wulouise (在線上!=在電腦前)時間1年前 (2023/11/05 01:08)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/2 (看更多)
※ 引述《saladim (殺拉頂)》之銘言:
: 有遇到一個程式流程中 某些步驟可能要檢查或不檢查的問題 想請問該
: 怎麼寫比較好. 語言是使用C++
: 首先我有一個computing class, 裡面有個member function,
: 專門負責做計算的動作 而裡面有七個步驟:
: class Engine::compute(...arguments...)
: 1. compute1
: 2. compute2
: 3. if checking fails this return pre-condition is not satisfied
: 4. compute3
: 5. foreach cofig in allowed_user_configurations
: 6 if checking succeed then store this configuration
: 7. return allowed_configuration
: 步驟3)跟步驟6)的檢查是由一個complianceChecker的class來做的:
: bool compliance.check(....arguments....)
: 現在呢 為了一些原因 提供了一個選項 可以讓步驟3.)跟步驟6.)的檢查不做-也就是
: 永遠檢查成功, 請問要怎麼在不動到主流程的狀況下, 來達成這件事情呢?
已經抽出function的前提下,在這個情況下基本上不用做太多
只要complince裡面member variable可以指定check skip #3, #6 就差不多了
#3 / #6裡面只要early retirm讓你跳過check就好
Eg:
```
class Compliance{
public:
bool checkNo3(args...){
if(m_skipNo3) return true;
// old logics...
// ...
}
private:
bool m_skipNo3{false};
}
```
以上滿足主流程不變 (除非主流程不是#1~#7而是指#3 & #6的各自function)
更進階就是寫多個module然後做callback chain,但看起來你的情境並不需要
擔心忘記寫有點很奇怪,因為他應該是business logic spec的一部分
真的要更generic的作法,只有一類context適合
就是寫script/low code平台讓user自己搞定business logic
但是做之前要注意,這類平台不用open source或是有足夠客戶使用,下場不會很好...
幾個前提
1. user很懂business logic但是不太熟程式
2. 在binary不改變的情況下切換行為,但是又不想hard code邏輯或每次需求都要改
3. 這些business logic沒人在做unit test或沒有要求
4. 這些邏輯不會經常修改,而且沒有refactor的必要
5. 壞了不會叫你修 (***最重要***)
#1 or #2 + #3~#5的情況 可以考慮弄
如果以上都沒有,真的不用考慮太多
因為business logic弄得太generic,不一定有人能幫你debug
至少if else大家都看得懂
真的想要沒有backup或是讓公司不能沒有你的話可以考慮XD
自己看過幾個,一個WPF插custom script,接近純UI所以還堪用,只是要自己生viewer
另一個就真的用script當底甚麼都能寫,然後script除了作者幾乎都沒人能維護XDDD
--
等等,我是不知道妳是看了什麼神槍手的故事,可是為什麼要拿我當靶 (′Д‵)
什麼!是黃忠和后羿的故事?他們拿的不是銃,是弓!
長門,妳手上拿著蘋果跟繩子是作什麼?今天晚餐不是關東煮是烤乳豬嗎?
連爸爸都沒弄痛過我,可不可以不要綁這麼緊,好歹鬆一點讓我有空間逃吧,古泉。
好,我認了,要射就射吧,可是請聽一下在我死前的最後一個願望。
不 要 拿 霰 彈 來.....噗滋(腦漿聲) 摘自「阿虛的最後一餐」
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.13.237 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1699117719.A.4F1.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章