摘要:熟悉和遵守阿里巴巴開發(fā)手冊(cè)的編程風(fēng)格,那只是標(biāo),而代碼可讀性的本可以追溯到軟件設(shè)計(jì)階段。何為條設(shè)計(jì)規(guī)約是根據(jù)阿里巴巴實(shí)際項(xiàng)目架構(gòu)經(jīng)驗(yàn)提煉而成,共條。本次新增的不單是條新的設(shè)計(jì)規(guī)約,還是千萬阿里人的技術(shù)之心。
摘要:2018年6月,《阿里巴巴Java開發(fā)手冊(cè)》再次刷新代碼規(guī)范認(rèn)知,我們新增了16條設(shè)計(jì)規(guī)約!現(xiàn)免費(fèi)開放下載,不可錯(cuò)過!
《阿里巴巴Java開發(fā)手冊(cè)》是阿里內(nèi)部Java工程師所遵循的開發(fā)規(guī)范,涵蓋編程規(guī)約、單元測(cè)試規(guī)約、異常日志規(guī)約、MySQL規(guī)約、工程規(guī)約、安全規(guī)約等,這是近萬名阿里Java技術(shù)精英的經(jīng)驗(yàn)總結(jié),并經(jīng)歷了多次大規(guī)模一線實(shí)戰(zhàn)檢驗(yàn)及完善。這是阿里回饋給Java社區(qū)的一份禮物,希望能夠幫助企業(yè)開發(fā)團(tuán)隊(duì)在Java開發(fā)上更高效、容錯(cuò)、有協(xié)作性,提高代碼質(zhì)量,降低項(xiàng)目維護(hù)成本。
2018年6月5日,《阿里巴巴Java開發(fā)手冊(cè)》再次刷新代碼規(guī)范認(rèn)知,我們新增了16條設(shè)計(jì)規(guī)約!
點(diǎn)此免費(fèi)下載《阿里巴巴Java開發(fā)手冊(cè)》(詳盡版)!
為何要新增設(shè)計(jì)規(guī)約?
膾炙人口的唐詩“兩個(gè)黃鸝鳴翠柳,一行白鷺上青天”,清爽直接,簡明易懂??勺x性好的代碼也是讓人陶醉的,那么如何寫出可讀性的代碼?
代碼的可讀性是指代碼讓人容易閱讀、理解、調(diào)試、可預(yù)料的程度。提高代碼的可讀性可以為代碼閱讀者節(jié)約時(shí)間和精力,提升團(tuán)隊(duì)協(xié)作效率。熟悉和遵守《阿里巴巴JAVA開發(fā)手冊(cè)》的編程風(fēng)格,那只是“標(biāo)”,而代碼可讀性的“本”可以追溯到軟件設(shè)計(jì)階段。試想一下如果發(fā)型師沒有設(shè)計(jì)好,不用指望能剪出一個(gè)“可讀性”比較好的你。
設(shè)計(jì)是一種夢(mèng)想和追求,誰都喜歡有氣質(zhì)的女神,誰都會(huì)欣賞有設(shè)計(jì)感的代碼。你可能會(huì)問,什么是設(shè)計(jì)感?就像燒飯這件事,村姑和御廚都會(huì)燒,都能吃飽,但是菜品的美感、口感,有本質(zhì)的區(qū)別。代碼到藝術(shù)層面上,能夠體現(xiàn)出來非常好的擴(kuò)展性、解耦性。代碼就象積木一樣,換一個(gè)搭法,也是OK的,結(jié)構(gòu)清晰,不用擔(dān)心拔出蘿卜帶出泥。
何為16條?
設(shè)計(jì)規(guī)約是根據(jù)阿里巴巴實(shí)際項(xiàng)目架構(gòu)經(jīng)驗(yàn)提煉而成,共16條。設(shè)計(jì)規(guī)約主要從UML圖和架構(gòu)設(shè)計(jì)原則來規(guī)定比較基礎(chǔ)的軟件設(shè)計(jì)理念,并且明確了超過什么樣的閾值需要以什么樣的方式來呈現(xiàn)設(shè)計(jì)思維。根據(jù)阿里巴巴內(nèi)部的反饋聲音來看,對(duì)于數(shù)據(jù)底層結(jié)構(gòu)、狀態(tài)圖、以及敏捷開發(fā)相關(guān)的三條,共鳴感最強(qiáng),那么詳細(xì)點(diǎn)評(píng)一下:
數(shù)據(jù)底層結(jié)構(gòu)
底層數(shù)據(jù)結(jié)構(gòu)屬于大廈的地基工程,如果地基不穩(wěn),那么上層去修正難度是相當(dāng)大的,甚至是無法修正。所以設(shè)計(jì)規(guī)約提倡,存儲(chǔ)方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)獲得評(píng)審一致通過,并沉淀成為文檔。有缺陷的底層數(shù)據(jù)結(jié)構(gòu)容易導(dǎo)致系統(tǒng)風(fēng)險(xiǎn)高,可擴(kuò)展性差,重構(gòu)成本因歷史數(shù)據(jù)遷移、系統(tǒng)平滑過渡也會(huì)陡然增加,所以,存儲(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ì)能否滿足技術(shù)方案、存取性能和存儲(chǔ)空間能否滿足業(yè)務(wù)發(fā)展、表或字段之間的辯證關(guān)系、字段名稱、字段類型、索引等;數(shù)據(jù)結(jié)構(gòu)變更(如在原有表中新增字段)也需要進(jìn)行評(píng)審?fù)ㄟ^后上線。
狀態(tài)圖
業(yè)務(wù)對(duì)象狀態(tài)相關(guān)的編碼錯(cuò)誤是引起線上故障的一個(gè)重要導(dǎo)火索。多一個(gè)狀態(tài),少一個(gè)狀態(tài),如果沒有歷史設(shè)計(jì)文檔沉淀,那么都是災(zāi)難性的。如果某個(gè)業(yè)務(wù)對(duì)象的狀態(tài)超過3個(gè),使用狀態(tài)圖來表達(dá)并且明確狀態(tài)變化的各個(gè)觸發(fā)條件。狀態(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)系的。
敏捷開發(fā)
敏捷開發(fā)是當(dāng)下流行的一種開發(fā)模式,相比傳統(tǒng)軟件生產(chǎn)流程,更加快速地交付。但是,敏捷開發(fā)適合于信任度好、理解力強(qiáng)、技術(shù)水平相對(duì)一致的創(chuàng)業(yè)型團(tuán)隊(duì)。但是在很多公司敏捷成為一個(gè)抓進(jìn)度的拔苗助長式的借口。所以避免如下誤解:敏捷開發(fā) = 講故事 + 編碼 + 發(fā)布。敏捷開發(fā)是快速交付迭代可用的系統(tǒng),省略多余的設(shè)計(jì)方案,摒棄傳統(tǒng)的審批流程,但核心關(guān)鍵點(diǎn)上的必要設(shè)計(jì)和文檔沉淀是需要的。
寫在最后
我們相信技術(shù)之心生生不息,也相信好的規(guī)約值得被傳播和應(yīng)用。
本次新增的不單是16條新的設(shè)計(jì)規(guī)約,還是千萬阿里人的技術(shù)之心。
我們也期待大家的意見,持續(xù)完善,
那么說說大家眼里的軟件設(shè)計(jì)中遇到的坑吧。
本文作者:孤盡
原文鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69685.html
摘要:年月底,阿里巴巴集團(tuán)發(fā)布了阿里巴巴開發(fā)手冊(cè)終極版,年月日,在杭州云棲大會(huì)上,代碼規(guī)約插件全球首發(fā),插件支持以上版本和以上版本。阿里巴巴代碼規(guī)約插件安裝阿里代碼規(guī)約插件有插件和插件。 2017年9月底,阿里巴巴集團(tuán)發(fā)布了《阿里巴巴Java開發(fā)手冊(cè)》PDF終極版,2017年10月14日,在2017杭州云棲大會(huì)上,Java代碼規(guī)約插件全球首發(fā),p3c-pmd插件支持Eclipse4.2以上版...
摘要:強(qiáng)制存儲(chǔ)方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)獲得評(píng)審一致通過,并沉淀成為文檔。正例淘寶訂單狀態(tài)有已下單待付款已付款待發(fā)貨已發(fā)貨已收貨等。確定指導(dǎo)后續(xù)設(shè)計(jì)與演化的原則。 showImg(https://segmentfault.com/img/remote/1460000016159838?w=1215&h=642); 1、【強(qiáng)制】存儲(chǔ)方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)獲得評(píng)審一致通過,并沉淀成為文檔。 說...
摘要:說明這篇文章是我第一次認(rèn)真閱讀阿里巴巴開發(fā)手冊(cè)終極版的筆記。說明本手冊(cè)明確防止是調(diào)用者的責(zé)任。一年半載后,那么單元測(cè)試幾乎處于廢棄狀態(tài)。好的單元測(cè)試能夠最大限度地規(guī)避線上故障。 說明 這篇文章是我第一次(認(rèn)真)閱讀《阿里巴巴 Java 開發(fā)手冊(cè)(終極版)》的筆記。手冊(cè)本身對(duì)規(guī)范的講解已經(jīng)非常詳細(xì)了,如果你已經(jīng)有一定的開發(fā)經(jīng)驗(yàn)并且有良好的編碼習(xí)慣和意識(shí),會(huì)發(fā)現(xiàn)大部分規(guī)范是符合常識(shí)的。所以...
摘要:的類型均為類型,前者現(xiàn)在時(shí)表示主動(dòng)創(chuàng)建,后者過去分詞表示被動(dòng)更新。推薦單表行數(shù)超過萬行或者單表容量超過,才推薦進(jìn)行分庫分表。超過三個(gè)表禁止。防止因字段類型不同造成的隱式轉(zhuǎn)換,導(dǎo)致索引失效。說明會(huì)統(tǒng)計(jì)值為的行,而列名不會(huì)統(tǒng)計(jì)此列為值的行。 一.編程規(guī)約 (一)命名風(fēng)格 1.目錄使用小寫+下劃線 home,view,model,admin_view 2.類 UpperCamelCa...
閱讀 1614·2021-11-04 16:11
閱讀 3334·2021-09-09 11:33
閱讀 1576·2019-08-30 15:54
閱讀 630·2019-08-30 15:44
閱讀 3190·2019-08-30 15:43
閱讀 2571·2019-08-30 13:06
閱讀 1711·2019-08-29 17:00
閱讀 913·2019-08-29 15:33