成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

阿里巴巴制定了這 16 條設(shè)計規(guī)約!

archieyang / 942人閱讀

摘要:強(qiáng)制存儲方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計獲得評審一致通過,并沉淀成為文檔。正例淘寶訂單狀態(tài)有已下單待付款已付款待發(fā)貨已發(fā)貨已收貨等。確定指導(dǎo)后續(xù)設(shè)計與演化的原則。

1、【強(qiáng)制】存儲方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計獲得評審一致通過,并沉淀成為文檔。

說明:有缺陷的底層數(shù)據(jù)結(jié)構(gòu)容易導(dǎo)致系統(tǒng)風(fēng)險上升,可擴(kuò)展性下降,重構(gòu)成本也會因歷史數(shù)據(jù)遷移和系統(tǒng)平滑過渡而陡然增加,所以,存儲方案和數(shù)據(jù)結(jié)構(gòu)需要認(rèn)真地進(jìn)行設(shè)計和評審,生產(chǎn)環(huán)境提交執(zhí)行后,需要進(jìn)行 double check。

正例:評審內(nèi)容包括存儲介質(zhì)選型、表結(jié)構(gòu)設(shè)計能否滿足技術(shù)方案、存取性能和存儲空間能否滿足業(yè)務(wù)發(fā)展、表或字段之間的辯證關(guān)系、字段名稱、字段類型、索引等;數(shù)據(jù)結(jié)構(gòu)變更(如在原有表中新增字段)也需要進(jìn)行評審?fù)ㄟ^后上線。

2、【強(qiáng)制】在需求分析階段,如果與系統(tǒng)交互的 User 超過一類并且相關(guān)的 User Case 超過 5 個,使用用例圖來表達(dá)更加清晰的結(jié)構(gòu)化需求。
3、【強(qiáng)制】如果某個業(yè)務(wù)對象的狀態(tài)超過 3 個,使用狀態(tài)圖來表達(dá)并且明確狀態(tài)變化的各個觸發(fā)條件。

說明:狀態(tài)圖的核心是對象狀態(tài),首先明確對象有多少種狀態(tài),然后明確兩兩狀態(tài)之間是否存在直接轉(zhuǎn)換關(guān)系,再明確觸發(fā)狀態(tài)轉(zhuǎn)換的條件是什么。

正例:淘寶訂單狀態(tài)有已下單、待付款、已付款、待發(fā)貨、已發(fā)貨、已收貨等。比如已下單與已收貨這兩種狀態(tài)之間是不可能有直接轉(zhuǎn)換關(guān)系的。

4、【強(qiáng)制】如果系統(tǒng)中某個功能的調(diào)用鏈路上的涉及對象超過 3 個,使用時序圖來表達(dá)并且明確各調(diào)用環(huán)節(jié)的輸入與輸出。

說明:時序圖反映了一系列對象間的交互與協(xié)作關(guān)系,清晰立體地反映系統(tǒng)的調(diào)用縱深鏈路。

5、【強(qiáng)制】如果系統(tǒng)中模型類超過 5 個,并且存在復(fù)雜的依賴關(guān)系,使用類圖來表達(dá)并且明確類之間的關(guān)系。

說明:類圖像建筑領(lǐng)域的施工圖,如果搭平房,可能不需要,但如果建造螞蟻 Z 空間大樓,肯定需要詳細(xì)的施工圖。

6、【強(qiáng)制】如果系統(tǒng)中超過 2 個對象之間存在協(xié)作關(guān)系,并且需要表示復(fù)雜的處理流程,使用活動圖來表示。

說明:活動圖是流程圖的擴(kuò)展,增加了能夠體現(xiàn)協(xié)作關(guān)系的對象泳道,支持表示并發(fā)等。

7、【推薦】需求分析與系統(tǒng)設(shè)計在考慮主干功能的同時,需要充分評估異常流程與業(yè)務(wù)邊界。

反例:用戶在淘寶付款過程中,銀行扣款成功,發(fā)送給用戶扣款成功短信,但是支付寶入款時由于斷網(wǎng)演練產(chǎn)生異常,淘寶訂單頁面依然顯示未付款,導(dǎo)致用戶投訴。

8、【推薦】類在設(shè)計與實(shí)現(xiàn)時要符合單一原則。

說明:單一原則最易理解卻是最難實(shí)現(xiàn)的一條規(guī)則,隨著系統(tǒng)演進(jìn),很多時候,忘記了類設(shè)計的初衷。

9、【推薦】謹(jǐn)慎使用繼承的方式來進(jìn)行擴(kuò)展,優(yōu)先使用聚合/組合的方式來實(shí)現(xiàn)。

說明:不得已使用繼承的話,必須符合里氏代換原則,此原則說父類能夠出現(xiàn)的地方子類一定能夠出現(xiàn),比如,“把錢交出來”,錢的子類美元、歐元、人民幣等都可以出現(xiàn)。

10、【推薦】系統(tǒng)設(shè)計時,根據(jù)依賴倒置原則,盡量依賴抽象類與接口,有利于擴(kuò)展與維護(hù)。

說明:低層次模塊依賴于高層次模塊的抽象,方便系統(tǒng)間的解耦。

11、【推薦】系統(tǒng)設(shè)計時,注意對擴(kuò)展開放,對修改閉合。

說明:極端情況下,交付的代碼都是不可修改的,同一業(yè)務(wù)域內(nèi)的需求變化,通過模塊或類的擴(kuò)展來實(shí)現(xiàn)。

12、【推薦】系統(tǒng)設(shè)計階段,共性業(yè)務(wù)或公共行為抽取出來公共模塊、公共配置、公共類、公共方法等,避免出現(xiàn)重復(fù)代碼或重復(fù)配置的情況。

說明:隨著代碼的重復(fù)次數(shù)不斷增加,維護(hù)成本指數(shù)級上升。

13、【推薦】避免如下誤解:敏捷開發(fā) = 講故事 + 編碼 + 發(fā)布。

說明:敏捷開發(fā)是快速交付迭代可用的系統(tǒng),省略多余的設(shè)計方案,摒棄傳統(tǒng)的審批流程,但核心關(guān)鍵點(diǎn)上的必要設(shè)計和文檔沉淀是需要的。

反例:某團(tuán)隊為了業(yè)務(wù)快速發(fā)展,敏捷成了產(chǎn)品經(jīng)理催進(jìn)度的借口,系統(tǒng)中均是勉強(qiáng)能運(yùn)行但像面條一樣的代碼,可維護(hù)性和可擴(kuò)展性極差,一年之后,不得不進(jìn)行大規(guī)模重構(gòu),得不償失。

14、【參考】系統(tǒng)設(shè)計主要目的是明確需求、理順邏輯、后期維護(hù),次要目的用于指導(dǎo)編碼。

說明:避免為了設(shè)計而設(shè)計,系統(tǒng)設(shè)計文檔有助于后期的系統(tǒng)維護(hù),所以設(shè)計結(jié)果需要進(jìn)行分類歸檔保存。

15、【參考】設(shè)計的本質(zhì)就是識別和表達(dá)系統(tǒng)難點(diǎn),找到系統(tǒng)的變化點(diǎn),并隔離變化點(diǎn)。

說明:世間眾多設(shè)計模式目的是相同的,即隔離系統(tǒng)變化點(diǎn)。

16、【參考】系統(tǒng)架構(gòu)設(shè)計的目的:

確定系統(tǒng)邊界。確定系統(tǒng)在技術(shù)層面上的做與不做。

確定系統(tǒng)內(nèi)模塊之間的關(guān)系。確定模塊之間的依賴關(guān)系及模塊的宏觀輸入與輸出。

確定指導(dǎo)后續(xù)設(shè)計與演化的原則。使后續(xù)的子系統(tǒng)或模塊設(shè)計在規(guī)定的框架內(nèi)繼續(xù)演化。

確定非功能性需求。非功能性需求是指安全性、可用性、可擴(kuò)展性等。

本文內(nèi)容整理自《阿里巴巴Java開發(fā)手冊 1.4.0》,獲取完整版請關(guān)注以下公眾號后臺回復(fù)關(guān)鍵字:手冊。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76864.html

相關(guān)文章

  • 新增16設(shè)計規(guī)約!阿里巴巴Java開發(fā)手冊(詳盡版)開放下載!

    摘要:熟悉和遵守阿里巴巴開發(fā)手冊的編程風(fēng)格,那只是標(biāo),而代碼可讀性的本可以追溯到軟件設(shè)計階段。何為條設(shè)計規(guī)約是根據(jù)阿里巴巴實(shí)際項目架構(gòu)經(jīng)驗(yàn)提煉而成,共條。本次新增的不單是條新的設(shè)計規(guī)約,還是千萬阿里人的技術(shù)之心。 摘要:2018年6月,《阿里巴巴Java開發(fā)手冊》再次刷新代碼規(guī)范認(rèn)知,我們新增了16條設(shè)計規(guī)約!現(xiàn)免費(fèi)開放下載,不可錯過!《阿里巴巴Java開發(fā)手冊》是阿里內(nèi)部Java工程師所遵...

    _ang 評論0 收藏0
  • 阿里巴巴Java代碼規(guī)約插件p3c-pmd使用指南與實(shí)現(xiàn)解析

    摘要:年月底,阿里巴巴集團(tuán)發(fā)布了阿里巴巴開發(fā)手冊終極版,年月日,在杭州云棲大會上,代碼規(guī)約插件全球首發(fā),插件支持以上版本和以上版本。阿里巴巴代碼規(guī)約插件安裝阿里代碼規(guī)約插件有插件和插件。 2017年9月底,阿里巴巴集團(tuán)發(fā)布了《阿里巴巴Java開發(fā)手冊》PDF終極版,2017年10月14日,在2017杭州云棲大會上,Java代碼規(guī)約插件全球首發(fā),p3c-pmd插件支持Eclipse4.2以上版...

    worldligang 評論0 收藏0
  • 常識之外的規(guī)范——阿里java開發(fā)手冊筆記(全章節(jié))

    摘要:說明這篇文章是我第一次認(rèn)真閱讀阿里巴巴開發(fā)手冊終極版的筆記。說明本手冊明確防止是調(diào)用者的責(zé)任。一年半載后,那么單元測試幾乎處于廢棄狀態(tài)。好的單元測試能夠最大限度地規(guī)避線上故障。 說明 這篇文章是我第一次(認(rèn)真)閱讀《阿里巴巴 Java 開發(fā)手冊(終極版)》的筆記。手冊本身對規(guī)范的講解已經(jīng)非常詳細(xì)了,如果你已經(jīng)有一定的開發(fā)經(jīng)驗(yàn)并且有良好的編碼習(xí)慣和意識,會發(fā)現(xiàn)大部分規(guī)范是符合常識的。所以...

    Martin91 評論0 收藏0
  • IntelliJ IDEA 18 周歲,吐血推進(jìn)珍藏已久的必裝插件

    摘要:代碼規(guī)約掃描插件以今年年初發(fā)布的阿里巴巴開發(fā)規(guī)約為標(biāo)準(zhǔn),作為的插件形式存在,檢測代碼中存在不規(guī)范得位置然后給予提示。 IntelliJ IDEA是目前最好最強(qiáng)最智能的Java IDE,前幾天,他剛剛年滿18歲。 showImg(https://segmentfault.com/img/remote/1460000017974611);? 本文,給大家推薦幾款我私藏已久的,自己經(jīng)常使用的...

    趙春朋 評論0 收藏0
  • 如何在企業(yè)各團(tuán)隊間推廣開發(fā)規(guī)范?

    摘要:前些日在阿里技術(shù)公眾號回復(fù)了一個開發(fā)規(guī)范如何推廣的問題,獲得了蠻多點(diǎn)贊。參與制定規(guī)范如果你直接把阿里開發(fā)手冊扔給開發(fā)人員,大多數(shù)開發(fā)是抵觸的。阿里的開發(fā)手冊很詳細(xì),但不建議你直接作為你企業(yè)的規(guī)范。 前些日在阿里技術(shù)公眾號回復(fù)了一個開發(fā)規(guī)范如何推廣的問題,獲得了蠻多點(diǎn)贊。故寫此一篇文章細(xì)講一下我們的推廣方式,給困惑的朋友貢獻(xiàn)一點(diǎn)思路。 開發(fā)規(guī)范很重要 領(lǐng)導(dǎo)要一盤西紅柿炒蛋,交給A,B,C...

    _DangJin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<