工程技術規(guī)范

服務接口規(guī)范

作為一家互聯(lián)網(wǎng)公司绝骚,并且大部門屬于電商部門,系統(tǒng)必須支持根據(jù)業(yè)務的擴張压汪,實現(xiàn)橫向擴展蛾魄,因此系統(tǒng)基礎采用分布式橫向擴展方式設計,使用OpenApi實現(xiàn)統(tǒng)一外部接入接口規(guī)范舌狗,使用dubbo實現(xiàn)內部服務負載規(guī)范痛侍,使用Restful實現(xiàn)內部管理接口規(guī)范

采用API開發(fā)

系統(tǒng)基于領域驅動開發(fā)魔市,根據(jù)業(yè)務劃分,研發(fā)部門按照各自負責的領域并行開發(fā)君丁,系統(tǒng)之間存在提供或者依賴基礎服務的情況将宪。
傳統(tǒng):采用SOA/WebService服務,有SOAP印蔗、WSDL等語法定義服務規(guī)范华嘹,需要存在SA/BA的角色先按照業(yè)務需求定義好WSDL,WSDL定義完整耙厚,但是由于定義完整岔霸,存在嚴格的規(guī)范限制,制約了性能泛豪,每次都需要通過SAX等工具生成客戶端侦鹏,每次提供的WSDL有變更都需要額外生成對應的客戶端代碼略水。(還有存在自身不具備負載的能力劝萤,需要依賴F5、Nginx等實現(xiàn)前置負載跨释,雖然有類似于Oracle公司的ESB等集成工具鳖谈,但是很貴,很貴捷绒,很貴9嵋3缟!)
當下:基于敏捷開發(fā)扳肛,快速迭代乘碑,橫向擴展的形勢下兽肤,采用基于定義接口,提供API依賴包电禀,輕依賴尖飞,接口變更只需要更新依賴版本店雅,變動較少闹啦,語法沒有強約束,性能損耗少窍奋,由于存在較少約束,不會受限于業(yè)務變更纺酸。

工程規(guī)范

對外提供的服務接口以及內部處理的業(yè)務邏輯,在工程上劃分為

project
- project-biz (實現(xiàn)對外暴露接口業(yè)務邏輯)
  - main
    - common(aop,convert,util)
    - conf
    - dao
      - mapper(對每一張表具體實體操作)
        - single
        - tddl
      - repo(集成封裝了mapper成為業(yè)務級實體變更吁峻,外部只能應用repo)
        - single
          - impl
          - XXXInterface
        - tddl
    - diamond
    - exceptions
    - manager
      - impl(XXXInterfaceImpl, 只能操作dao.repo,common,diamond)
      XXXInterface
    - model
    - service(只能操作manager,diamond實例)
    - mq
    - task(定時任務)
  ApplicationMain
  - test
    - ut (單元測試)
    - it (集成測試)
- project-client (對外暴露接口)
 - api (接口)
  - dubbo
  - gw
  - web
 - model (數(shù)據(jù)模型)
  - enumus
  - dubbo
  - gw
  - web
 - util

DTO,DO,PO,DAO,POJO數(shù)據(jù)域使用

在數(shù)據(jù)域這塊有兩個分歧點用含,糾結點來源于dao層的技術選型以及對domain的理解啄骇,一方使用 JPA(部分部門) 做持久層操作缸夹,一方使用 mybatis(部分部門) 做持久層操作虽惭。
下方是2套技術的比較蛇尚,在持久化層面的區(qū)別只是基于對持久層的理解,但是在manager-> service 領域層的理解匆笤,出現(xiàn)了較大的理解偏差炮捧。本身不是JPA(spring-data)和mybatis技術的問題咆课,而是2個項目的成員對于domain分層上面理解程度存在偏差书蚪。

  • mapper:
    JPA -> Repository蘸吓,請求/響應對象 PO
    mybatis -> xml mapper善炫,請求/響應對象 DAO
  • repo:
    JPA -> 操作 mapper 層, 請求/響應對象 PO
    mybatis -> 操作 mapper 層, 請求對象 DTO撩幽,響應對象 DO库继,對數(shù)據(jù)的整合在此層完成箩艺,主表-子表的封裝在這層實現(xiàn)
  • manager:
    JPA -> 操作 repo, common, manager 等層,請求基礎類型宪萄、DO艺谆、DTO、POJO拜英,響應基礎類型静汤、DO、DTO居凶、POJO虫给, 這里非常混亂侠碧,沒有一個標準的規(guī)范抹估,manager之間允許相互調用
    mybatis -> 操作 repo, common 等層弄兜,請求 XxxParam、XxxQuery踱卵、DTO,響應 Result/Batch/PageDTO<DO>班利、基礎類型积蜻,manager類型不允許相互調用宙拉。即使多個manager存在調用同樣的外部service問題,也作為冗余牛郑,如果有大量這種情況钉答,有必要抽象成基礎的AbstractBaseManager。
    DO作為領域對象虏缸,可以囊括領域中所有的數(shù)據(jù)
  • service:
    JPA -> gw入?yún)⑹莗rimitive類型甲献,dubbo入?yún)⑹荄TO慨灭,http入?yún)⑹荄O吃引,gw出參是DTO/Collection,dubbo出參是POJO语稠,http出參是POJO
    mybatis -> gw入?yún)rimitive類型输涕,dubbo入?yún)⑹莗rimitive類型,web入?yún)⑹荴xxParam碉京,gw出參是業(yè)務類型命名的XxxGW界弧,dubbo出參是Result/Batch/PageDTO<DTO>,web出參是DTO
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末委煤,一起剝皮案震驚了整個濱河市吱窝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖欠母,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俺孙,死亡現(xiàn)場離奇詭異场靴,居然都是意外死亡泞边,警方通過查閱死者的電腦和手機疗杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門荔睹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事哈恰。” “怎么了石洗?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵别厘,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么贰谣? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮啄刹,結果婚禮上,老公的妹妹穿的比我還像新娘誓军。我一直安慰自己壹甥,他們只是感情好久橙,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布鹰贵。 她就那樣靜靜地躺著阻荒,像睡著了一般侨赡。 火紅的嫁衣襯著肌膚如雪蓖租。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天辆毡,我揣著相機與錄音菜秦,去河邊找鬼甜害。 笑死舶掖,一個胖子當著我的面吹牛,可吹牛的內容都是我干的尔店。 我是一名探鬼主播眨攘,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嚣州!你這毒婦竟也來了鲫售?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤该肴,失蹤者是張志新(化名)和其女友劉穎情竹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匀哄,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡秦效,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了涎嚼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阱州。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖法梯,靈堂內的尸體忽然破棺而出苔货,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布夜惭,位于F島的核電站姻灶,受9級特大地震影響,放射性物質發(fā)生泄漏诈茧。R本人自食惡果不足惜木蹬,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望若皱。 院中可真熱鬧镊叁,春花似錦、人聲如沸走触。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽互广。三九已至敛腌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惫皱,已是汗流浹背像樊。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旅敷,地道東北人生棍。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像媳谁,于是被迫代替她去往敵國和親涂滴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容