摘要:強(qiáng)制存儲(chǔ)方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)獲得評(píng)審一致通過(guò),并沉淀成為文檔。正例淘寶訂單狀態(tài)有已下單待付款已付款待發(fā)貨已發(fā)貨已收貨等。確定指導(dǎo)后續(xù)設(shè)計(jì)與演化的原則。
說(shuō)明:有缺陷的底層數(shù)據(jù)結(jié)構(gòu)容易導(dǎo)致系統(tǒng)風(fēng)險(xiǎn)上升,可擴(kuò)展性下降,重構(gòu)成本也會(huì)因歷史數(shù)據(jù)遷移和系統(tǒng)平滑過(guò)渡而陡然增加,所以,存儲(chǔ)方案和數(shù)據(jù)結(jié)構(gòu)需要認(rèn)真地進(jìn)行設(shè)計(jì)和評(píng)審,生產(chǎn)環(huán)境提交執(zhí)行后,需要進(jìn)行 double check。
正例:評(píng)審內(nèi)容包括存儲(chǔ)介質(zhì)選型、表結(jié)構(gòu)設(shè)計(jì)能否滿(mǎn)足技術(shù)方案、存取性能和存儲(chǔ)空間能否滿(mǎn)足業(yè)務(wù)發(fā)展、表或字段之間的辯證關(guān)系、字段名稱(chēng)、字段類(lèi)型、索引等;數(shù)據(jù)結(jié)構(gòu)變更(如在原有表中新增字段)也需要進(jìn)行評(píng)審?fù)ㄟ^(guò)后上線。
說(shuō)明:狀態(tài)圖的核心是對(duì)象狀態(tài),首先明確對(duì)象有多少種狀態(tài),然后明確兩兩狀態(tài)之間是否存在直接轉(zhuǎn)換關(guān)系,再明確觸發(fā)狀態(tài)轉(zhuǎn)換的條件是什么。
正例:淘寶訂單狀態(tài)有已下單、待付款、已付款、待發(fā)貨、已發(fā)貨、已收貨等。比如已下單與已收貨這兩種狀態(tài)之間是不可能有直接轉(zhuǎn)換關(guān)系的。
說(shuō)明:時(shí)序圖反映了一系列對(duì)象間的交互與協(xié)作關(guān)系,清晰立體地反映系統(tǒng)的調(diào)用縱深鏈路。
說(shuō)明:類(lèi)圖像建筑領(lǐng)域的施工圖,如果搭平房,可能不需要,但如果建造螞蟻 Z 空間大樓,肯定需要詳細(xì)的施工圖。
說(shuō)明:活動(dòng)圖是流程圖的擴(kuò)展,增加了能夠體現(xiàn)協(xié)作關(guān)系的對(duì)象泳道,支持表示并發(fā)等。
反例:用戶(hù)在淘寶付款過(guò)程中,銀行扣款成功,發(fā)送給用戶(hù)扣款成功短信,但是支付寶入款時(shí)由于斷網(wǎng)演練產(chǎn)生異常,淘寶訂單頁(yè)面依然顯示未付款,導(dǎo)致用戶(hù)投訴。
說(shuō)明:?jiǎn)我辉瓌t最易理解卻是最難實(shí)現(xiàn)的一條規(guī)則,隨著系統(tǒng)演進(jìn),很多時(shí)候,忘記了類(lèi)設(shè)計(jì)的初衷。
說(shuō)明:不得已使用繼承的話(huà),必須符合里氏代換原則,此原則說(shuō)父類(lèi)能夠出現(xiàn)的地方子類(lèi)一定能夠出現(xiàn),比如,“把錢(qián)交出來(lái)”,錢(qián)的子類(lèi)美元、歐元、人民幣等都可以出現(xiàn)。
說(shuō)明:低層次模塊依賴(lài)于高層次模塊的抽象,方便系統(tǒng)間的解耦。
說(shuō)明:極端情況下,交付的代碼都是不可修改的,同一業(yè)務(wù)域內(nèi)的需求變化,通過(guò)模塊或類(lèi)的擴(kuò)展來(lái)實(shí)現(xiàn)。
說(shuō)明:隨著代碼的重復(fù)次數(shù)不斷增加,維護(hù)成本指數(shù)級(jí)上升。
說(shuō)明:敏捷開(kāi)發(fā)是快速交付迭代可用的系統(tǒng),省略多余的設(shè)計(jì)方案,摒棄傳統(tǒng)的審批流程,但核心關(guān)鍵點(diǎn)上的必要設(shè)計(jì)和文檔沉淀是需要的。
反例:某團(tuán)隊(duì)為了業(yè)務(wù)快速發(fā)展,敏捷成了產(chǎn)品經(jīng)理催進(jìn)度的借口,系統(tǒng)中均是勉強(qiáng)能運(yùn)行但像面條一樣的代碼,可維護(hù)性和可擴(kuò)展性極差,一年之后,不得不進(jìn)行大規(guī)模重構(gòu),得不償失。
說(shuō)明:避免為了設(shè)計(jì)而設(shè)計(jì),系統(tǒng)設(shè)計(jì)文檔有助于后期的系統(tǒng)維護(hù),所以設(shè)計(jì)結(jié)果需要進(jìn)行分類(lèi)歸檔保存。
說(shuō)明:世間眾多設(shè)計(jì)模式目的是相同的,即隔離系統(tǒng)變化點(diǎn)。
確定系統(tǒng)邊界。確定系統(tǒng)在技術(shù)層面上的做與不做。
確定系統(tǒng)內(nèi)模塊之間的關(guān)系。確定模塊之間的依賴(lài)關(guān)系及模塊的宏觀輸入與輸出。
確定指導(dǎo)后續(xù)設(shè)計(jì)與演化的原則。使后續(xù)的子系統(tǒng)或模塊設(shè)計(jì)在規(guī)定的框架內(nèi)繼續(xù)演化。
確定非功能性需求。非功能性需求是指安全性、可用性、可擴(kuò)展性等。
本文內(nèi)容整理自《阿里巴巴Java開(kāi)發(fā)手冊(cè) 1.4.0》,獲取完整版請(qǐng)關(guān)注以下公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字:手冊(cè)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76864.html
摘要:熟悉和遵守阿里巴巴開(kāi)發(fā)手冊(cè)的編程風(fēng)格,那只是標(biāo),而代碼可讀性的本可以追溯到軟件設(shè)計(jì)階段。何為條設(shè)計(jì)規(guī)約是根據(jù)阿里巴巴實(shí)際項(xiàng)目架構(gòu)經(jīng)驗(yàn)提煉而成,共條。本次新增的不單是條新的設(shè)計(jì)規(guī)約,還是千萬(wàn)阿里人的技術(shù)之心。 摘要:2018年6月,《阿里巴巴Java開(kāi)發(fā)手冊(cè)》再次刷新代碼規(guī)范認(rèn)知,我們新增了16條設(shè)計(jì)規(guī)約!現(xiàn)免費(fèi)開(kāi)放下載,不可錯(cuò)過(guò)!《阿里巴巴Java開(kāi)發(fā)手冊(cè)》是阿里內(nèi)部Java工程師所遵...
摘要:年月底,阿里巴巴集團(tuán)發(fā)布了阿里巴巴開(kāi)發(fā)手冊(cè)終極版,年月日,在杭州云棲大會(huì)上,代碼規(guī)約插件全球首發(fā),插件支持以上版本和以上版本。阿里巴巴代碼規(guī)約插件安裝阿里代碼規(guī)約插件有插件和插件。 2017年9月底,阿里巴巴集團(tuán)發(fā)布了《阿里巴巴Java開(kāi)發(fā)手冊(cè)》PDF終極版,2017年10月14日,在2017杭州云棲大會(huì)上,Java代碼規(guī)約插件全球首發(fā),p3c-pmd插件支持Eclipse4.2以上版...
摘要:說(shuō)明這篇文章是我第一次認(rèn)真閱讀阿里巴巴開(kāi)發(fā)手冊(cè)終極版的筆記。說(shuō)明本手冊(cè)明確防止是調(diào)用者的責(zé)任。一年半載后,那么單元測(cè)試幾乎處于廢棄狀態(tài)。好的單元測(cè)試能夠最大限度地規(guī)避線上故障。 說(shuō)明 這篇文章是我第一次(認(rèn)真)閱讀《阿里巴巴 Java 開(kāi)發(fā)手冊(cè)(終極版)》的筆記。手冊(cè)本身對(duì)規(guī)范的講解已經(jīng)非常詳細(xì)了,如果你已經(jīng)有一定的開(kāi)發(fā)經(jīng)驗(yàn)并且有良好的編碼習(xí)慣和意識(shí),會(huì)發(fā)現(xiàn)大部分規(guī)范是符合常識(shí)的。所以...
摘要:代碼規(guī)約掃描插件以今年年初發(fā)布的阿里巴巴開(kāi)發(fā)規(guī)約為標(biāo)準(zhǔn),作為的插件形式存在,檢測(cè)代碼中存在不規(guī)范得位置然后給予提示。 IntelliJ IDEA是目前最好最強(qiáng)最智能的Java IDE,前幾天,他剛剛年滿(mǎn)18歲。 showImg(https://segmentfault.com/img/remote/1460000017974611);? 本文,給大家推薦幾款我私藏已久的,自己經(jīng)常使用的...
摘要:前些日在阿里技術(shù)公眾號(hào)回復(fù)了一個(gè)開(kāi)發(fā)規(guī)范如何推廣的問(wèn)題,獲得了蠻多點(diǎn)贊。參與制定規(guī)范如果你直接把阿里開(kāi)發(fā)手冊(cè)扔給開(kāi)發(fā)人員,大多數(shù)開(kāi)發(fā)是抵觸的。阿里的開(kāi)發(fā)手冊(cè)很詳細(xì),但不建議你直接作為你企業(yè)的規(guī)范。 前些日在阿里技術(shù)公眾號(hào)回復(fù)了一個(gè)開(kāi)發(fā)規(guī)范如何推廣的問(wèn)題,獲得了蠻多點(diǎn)贊。故寫(xiě)此一篇文章細(xì)講一下我們的推廣方式,給困惑的朋友貢獻(xiàn)一點(diǎn)思路。 開(kāi)發(fā)規(guī)范很重要 領(lǐng)導(dǎo)要一盤(pán)西紅柿炒蛋,交給A,B,C...
閱讀 3068·2021-10-14 09:42
閱讀 1433·2021-09-24 10:32
閱讀 3237·2021-09-23 11:21
閱讀 3004·2021-08-27 13:10
閱讀 3488·2019-08-29 18:41
閱讀 2349·2019-08-29 15:16
閱讀 1378·2019-08-29 13:17
閱讀 1044·2019-08-29 11:22