日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Service 類到底是什么含義?我相信如果碰到一個叫 SomethingService 的類,沒法馬上明白它到底起什么作用。

聊聊 Service 命名與設計

說實話,我們都很困惑。

經過多年的專業開發,在大量的代碼中游走,有一點是顯而易見的,開發人員不太擅長給事物命名。

作為一個菜鳥開發者,我知道當看到 SomeService 或 WhateverManager 類,或者是 WhatevsManagerService 時,你都會不知所措或疑惑不解。

Class 命名就像工作頭銜

BD?實際是一個銷售人員。Social Media 專家?可能是 3 周學會如何在 Instagram 上發布貓咪照片。軟件工程師?實際上是堆砌代碼的碼農。

工作頭銜和工作角色有時候不掛鉤,我們更喜歡把頭銜弄得比角色更花哨。

Class 命名也是如此。

服務(service)類

任何以 Service 為后綴的代碼基本上都是一個邏輯垃圾箱。任何添加到程序中的新功能,最后總是以某種服務類的方式來實現。

一個服務類需要大量的構造函數參數,使得測試起來非常麻煩。要測試一個新方法 GetUserCount?可能需要 mock 7 個完全不相關的類來實例化這個服務類。

如果 GetUserCount 只依賴于服務類中的一個構造函數參數,那么最好把它移到自己的類中。這樣一來,你就有一個非常簡單的類,只有一個構造函數參數。

當然,單獨的 GetUserCount 類看起來不是那么酷,但至少你知道它到底是做什么的。

測試變得輕而易舉。

Manager 類

你很可能見過類似 UserManager 這樣的類,它管理用戶。

像服務類一樣,它們也是邏輯垃圾箱。但是有一點區別。如果說服務類是一個普通的垃圾箱,那么 Manager 類就像一個紙板垃圾箱,它更特殊一點。

你會面臨和服務類一樣的處理單元測試的問題。在做最微小的操作之前,你需要 mock 一大堆東西。

Util 類和 Helper 類

"我們不知道把這些代碼塞在哪里好,所以就弄了一個 Util 類"。

這些都是煩人的東西。關于這一點,沒有什么好說的了。

怎么破?

很簡單。給出與職責相匹配的合適名稱。把一個類命名為GetUser,并且只有一個方法,這并不丟人。實現也簡單,每個人都知道它是做什么的。容易進行單元測試。

停止代碼膨脹,簡化這些類。比如,構建只有一個方法的類。

關于作者:

Nicklas Millard 是一家快速發展中的銀行擔任軟件工程師,負責構建關鍵任務的金融服務基礎設施。

此前,他曾是 Big4 高級技術顧問,為商業客戶和政府機構開發軟件。

他的 LinkedIn:https://www.linkedin.com/in/nicklasmillard/

英文原文:

https://medium.com/datadriveninvestor/the-true-meaning-of-service-and-manager-class-names-d09a08731fd9

本文由高可用架構翻譯,技術原創及架構實踐文章,歡迎通過公眾號菜單「聯系我們」進行投稿。

高可用架構

改變互聯網的構建方式

分享到:
標簽:Service
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定