軟件開發(fā)就找中魯世紀(jì),,一站式服務(wù),為企業(yè)提供軟件開發(fā),,軟件定制服務(wù),。
面向?qū)ο笤O(shè)計之所以更流行,是因為這種思想更符合人對事物的認(rèn)知和定義,,在思想表達(dá)和傳遞中更容易,。
隨著平臺建設(shè)的推進(jìn),開發(fā)過程會遇到各種問題和挑戰(zhàn),,如果能有這個認(rèn)識,,在處理可改可不改或者較小細(xì)節(jié)時,會對是否做調(diào)整也有幫助,。
日常在做系統(tǒng)設(shè)計和方案選擇時,,有些開發(fā)可能會考慮代碼量。
然而,,代碼量不應(yīng)該成為設(shè)計好壞的標(biāo)準(zhǔn),。
如果代碼量小而引入如下的問題,反而增加了系統(tǒng)復(fù)雜度和維護(hù)成本,,系統(tǒng)的穩(wěn)定性和開發(fā)效率也會受很大影響,。
一個好的架構(gòu)設(shè)計能規(guī)避掉日常容易遇到的問題,也能更好容納突發(fā)劇增的系統(tǒng)訪問,,對臨時的故障恢復(fù)也有很大幫助,。
這些設(shè)計的優(yōu)化,都是日常開發(fā)中應(yīng)該注意的細(xì)節(jié)問題,只要在開發(fā)時稍微思考下很容易識別和做出選擇,,也不會增加開發(fā)難度,。
【常識五:對接的外部系統(tǒng)是不可信的】
在一些業(yè)務(wù)規(guī)則相對固定、場景清晰的系統(tǒng)中,,我們經(jīng)常能看到比較老的系統(tǒng),,這些系統(tǒng)經(jīng)歷的長時間運行,且使用者習(xí)慣也固定了,,當(dāng)初開發(fā)該系統(tǒng)的人員有些可能都離職甚至退休了,。
然而隨著業(yè)務(wù)微小變動擾動原有的設(shè)計,特例越來越多,,技術(shù)框架也在不斷更新進(jìn)步,、團(tuán)隊成員變動等等,這一切都會使得系統(tǒng)慢慢的走向衰敗,,這和汽車保養(yǎng)是一樣的,。
如果在可見的未來兩年、五年內(nèi),,系統(tǒng)依然會服務(wù)于業(yè)務(wù),,研發(fā)就應(yīng)該勇于做出系統(tǒng)重構(gòu),雖然短期看不到價值體現(xiàn),,然而優(yōu)化的意義和價值卻是長期存在的,,這也促使了系統(tǒng)能夠更長久的走下去,。
【常識七:工程化是解決開發(fā)效率的**工具】
當(dāng)擁有基于這樣的認(rèn)知時,,在系統(tǒng)設(shè)計會有不同,比如創(chuàng)建一個新表時就會主動評估業(yè)務(wù)查詢需求建立合適的索引,、在設(shè)計系統(tǒng)容量時會考慮容量及達(dá)到容量后的循環(huán)覆蓋策略,、對于流量洪峰的削峰和控制都會在最初設(shè)計時考慮,等等,。
如果系統(tǒng)必須依賴研發(fā)工程師不間斷地維護(hù)和扶持才能運轉(zhuǎn),,那就意味著隱藏著巨大的風(fēng)險隱患,。
【常識九:產(chǎn)品模型設(shè)計的好壞直接影響軟件系統(tǒng)質(zhì)量和效率】
測試是系統(tǒng)建設(shè)的重要組成部分,,是系統(tǒng)的質(zhì)量、安全等的重要保障,,但當(dāng)線上出現(xiàn)異常或故障時,,測試卻不應(yīng)該成為責(zé)任人,。
一個的系統(tǒng)建設(shè),,離不開良好的產(chǎn)品設(shè)計、健壯的系統(tǒng)架構(gòu),、規(guī)范的代碼等,這些是前提和基礎(chǔ),。
故而研發(fā)應(yīng)重視代碼變更部分的邏輯和邊界測試,,而非依賴于測試人員。
【常識十一:偏業(yè)務(wù)的系統(tǒng)應(yīng)具備完整獨立的運營能力】