<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      一段代碼竟然包含了十幾種業務邏輯,程序員:一個委托直接解耦!

      0
      分享至

      公司一程序員有一段代碼寫得太亂了,總結下這段代碼的邏輯那就是業務邏輯結束了,需要往很多地方寫入業務結束的處理邏輯,而這個程序員對于業務結束的處理邏輯,我大概看了下,總共寫了大概有3000行左右的代碼,直接給我整崩潰了,原因是他把所有邏輯都寫在了一起,但凡有一個邏輯寫的有問題,代碼都走不下去。



      事情的起因是這個程序員寫的軟件總是在業務結束的時候出各種問題,改來改去,最后他自己都給改懵了,最后,項目經理看他腦子已經亂了,于是就讓我幫忙看看他的代碼,看看能不能幫他找出問題來。

      他這段代碼是寫在一個工具類里面的,還好,他還知道封裝一個工具類來整合業務結束的處理邏輯,但是一看代碼行,著實給我嚇了一跳,代碼總共有3000多行!

      據這個程序員所說,在業務邏輯結束以后,首先得往數據庫里面寫入日志,還得在本地寫入文本日志,最后根據業務的結束狀態,需要往外部發送業務邏輯的結束信號,還得在PLC里面寫入數據和業務狀態,最后我數了一下,前前后后,在這段業務結束的代碼里面總共需要往本地或者外部發送十幾種數據或者狀態。

      但是呢,其實業務結束的邏輯本身就幾十行,后面近3000多行代碼都是用來處理數據信號和數據存儲以及狀態的。

      最后,雖然我們通過分析,解決了這段代碼中的BUG,但是,面對這3000多行的代碼,我實在忍不了,因為代碼也得太臃腫、太耦合了!

      于是我問他:“如果當中有一段邏輯不用了你會怎么辦?”

      他想了一會兒,但是也沒想多久,告訴我:“只能把這段代碼給注釋了!”

      然后我又問他:“如果這里面又要新增一部分邏輯,你又會怎么辦?”

      結果他說:“那就在現在的代碼基礎之上再插入新的邏輯代碼!”

      我就知道他會這么說,而且,他也只能這么干!

      接著,我又問他:“現在你把所有的業務結束邏輯都寫在了一塊,萬一系統里面有其他的界面需要知道業務結束的狀態,你怎么辦?”

      他告訴我:“我在代碼里面加了一個狀態,其他頁面只要監聽這個狀態,就可以了!”

      于是我反問:“你會怎么做?”

      他回答:“在頁面上加一個定時器,然后一直讀取存儲狀態的變量,發現值變了,就知道業務結束了!”

      我無奈地拍了拍腦袋:“萬一,我說萬一,有十幾二十甚至是上百個頁面都需要知道這個狀態,你難道要寫十幾二十甚至上百個計時器嗎?”

      這時候,他不說話了,于是我說:“事情不需要那么復雜,只需要一個委托就夠了!”

      委托(Delegate),在C#這門編程語言里面又稱事件,簡單得說,委托就是一種對事件的訂閱!通過聲明調用,可以將事件觸發信號分發給訂閱了委托的其他方法中!



      比如說,現在代碼中的業務邏輯結束了,我們可以聲明一個委托,然后在業務邏輯結束時調用這個委托,這時候,只要外部代碼訂閱了這個委托,那么它們就會收到委托被執行的消息,具體來說,訂閱委托實際上就是給委托一個執行方法,在委托被執行后,這個執行方法會一起被執行!

      現在,在上述程序員寫的業務結束的代碼中集合了十幾種需要處理的邏輯,這時候,我們可以在業務結束的代碼里面聲明一個委托,然后將這十幾種需要處理的邏輯單獨封裝起來,然后訂閱業務結束的委托,當委托被觸發后,這十幾種已經封裝的邏輯塊都將收到事件信號,逐一處理即可。

      使用委托的好處在于它可以將繁復的業務邏輯模塊化,從而提升代碼的可讀性和可維護性,而委托本身就是一種狀態機制,因此,上述程序員寫的狀態字段的監聽程序也就沒必要寫了,直接將委托本身當作狀態或者使用委托參數的方式,把狀態傳遞給訂閱者即可。

      結語

      委托的概念其實很簡單,其實就是“當發生某件事情的時候由事情的發生者告訴訂閱者”,這跟我們手機上的消息推送機制很像,比如說當你關注了某個明星的賬號,當這個明星的賬號下面有了新的動態,你的手機就會在第一時間收到這個明星發送的最新動態。

      有一些剛開始使用委托的程序員會覺得委托會增加代碼的復雜性,但是,實際上用對了委托會感覺真香!

      聲明:個人原創,僅供參考

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      再不來上海了!臺灣男歌手上廁所外套被偷,發牢騷:美國很難遇到

      再不來上海了!臺灣男歌手上廁所外套被偷,發牢騷:美國很難遇到

      削桐作琴
      2026-02-03 18:17:26
      任正非后悔取名華為:沒想到做這么大,早知道就取個國際化名字了

      任正非后悔取名華為:沒想到做這么大,早知道就取個國際化名字了

      青途歷史
      2026-01-31 22:22:57
      一天2.2萬人爽約!靈隱寺這次算是被白嫖黨,給結結實實上了一課

      一天2.2萬人爽約!靈隱寺這次算是被白嫖黨,給結結實實上了一課

      火山詩話
      2026-02-02 08:41:43
      軍權交接儀式剛結束,委代總統就收到命令:立刻驅逐中國外交官

      軍權交接儀式剛結束,委代總統就收到命令:立刻驅逐中國外交官

      流年顛簸
      2026-02-03 19:50:13
      國際奧委會感到失望,上海、成都、廣州三座城市均未提交申請。

      國際奧委會感到失望,上海、成都、廣州三座城市均未提交申請。

      南權先生
      2026-02-02 15:57:03
      又一“俄羅斯英雄”斃命沙場,俄退役軍人淪為社會安全重大隱患

      又一“俄羅斯英雄”斃命沙場,俄退役軍人淪為社會安全重大隱患

      史政先鋒
      2026-02-03 20:00:14
      1941年,粟裕看好一21歲的小參謀,果斷提為營長,后來他成了上將

      1941年,粟裕看好一21歲的小參謀,果斷提為營長,后來他成了上將

      云霄紀史觀
      2026-02-03 17:00:10
      伊朗外長:完全同意特朗普的建議,愿意和美國進行談判!

      伊朗外長:完全同意特朗普的建議,愿意和美國進行談判!

      達文西看世界
      2026-02-03 19:02:37
      李俊竺加盟廈門大學任教授、博導!

      李俊竺加盟廈門大學任教授、博導!

      新浪財經
      2026-02-03 17:02:54
      1979年化肥廠被炸,45年后越南人才懂,那里藏著翻不了身的真相

      1979年化肥廠被炸,45年后越南人才懂,那里藏著翻不了身的真相

      鑒史錄
      2026-02-02 20:11:00
      紐約期銀大漲10%

      紐約期銀大漲10%

      財聯社
      2026-02-03 09:53:24
      他被稱為瘋子,打國軍、打共軍、打日軍,最后給毛主席寫信求收留

      他被稱為瘋子,打國軍、打共軍、打日軍,最后給毛主席寫信求收留

      南宗歷史
      2026-02-02 10:42:52
      紅軍時期,毛主席認為有兩個人的才能遠勝自己和朱德,曾主動讓賢

      紅軍時期,毛主席認為有兩個人的才能遠勝自己和朱德,曾主動讓賢

      浩渺青史
      2026-01-15 16:37:16
      墻倒眾人推!人民網怒斥、保姆舉報,51歲的何炅還是走到了這一步

      墻倒眾人推!人民網怒斥、保姆舉報,51歲的何炅還是走到了這一步

      深析古今
      2026-02-02 11:28:53
      隨著穆帥爭冠最大勁敵爆大冷門1-2+首敗,葡超最新積分榜出爐

      隨著穆帥爭冠最大勁敵爆大冷門1-2+首敗,葡超最新積分榜出爐

      側身凌空斬
      2026-02-03 06:57:39
      中國男籃拒絕三連敗!全力戰勝日本隊,陣容大調整,央視直播

      中國男籃拒絕三連敗!全力戰勝日本隊,陣容大調整,央視直播

      體壇瞎白話
      2026-02-03 16:12:47
      國民黨剛抵京,鄭麗文收到噩耗,賴清德支持率飆升,蕭旭岑亮底牌

      國民黨剛抵京,鄭麗文收到噩耗,賴清德支持率飆升,蕭旭岑亮底牌

      明天見灌裝冰塊
      2026-02-03 19:49:07
      黃金、白銀直線飆漲!特朗普突發!事關關稅!

      黃金、白銀直線飆漲!特朗普突發!事關關稅!

      證券時報e公司
      2026-02-03 07:57:16
      全球首例!隱藏式車門把手在中國被禁止使用

      全球首例!隱藏式車門把手在中國被禁止使用

      探客社
      2026-02-03 10:25:47
      乒乓亞洲杯:男單簽位出爐!王楚欽晉級壓力小,張本智和避開國乒

      乒乓亞洲杯:男單簽位出爐!王楚欽晉級壓力小,張本智和避開國乒

      全言作品
      2026-02-03 17:36:00
      2026-02-03 20:48:49
      程序員古耕 incentive-icons
      程序員古耕
      程序員、網文作家、自媒體人
      597文章數 387關注度
      往期回顧 全部

      頭條要聞

      零跑年會被員工吐槽沒空調、自備干糧 董事長回應

      頭條要聞

      零跑年會被員工吐槽沒空調、自備干糧 董事長回應

      體育要聞

      “也許我的一小步,會成為中國足球的一大步”

      娛樂要聞

      小S致詞:感謝具俊曄陪伴大S的最后3年

      財經要聞

      中央一號文件:扎實推進鄉村全面振興

      科技要聞

      1.25萬億美元!xAI員工贏麻了

      汽車要聞

      上汽決定不再等那個“正確答案”了

      態度原創

      游戲
      本地
      時尚
      公開課
      軍事航空

      玩家無傷通關《光與影》 難度拉滿仍零失誤

      本地新聞

      云游中國|撥開云霧,巫山每幀都是航拍大片

      今年最流行的穿法:褲子+針織、裙子+針織,時髦又減齡!

      公開課

      李玫瑾:為什么性格比能力更重要?

      軍事要聞

      特朗普:龐大兵力將很快抵達伊朗

      無障礙瀏覽 進入關懷版