軟件開發(fā)就找中魯世紀,一站式服務(wù),為企業(yè)提供軟件開發(fā),軟件定制服務(wù)。
面向?qū)ο笤O(shè)計之所以更流行,是因為這種思想更符合人對事物的認知和定義,在思想表達和傳遞中更容易。
隨著平臺建設(shè)的推進,開發(fā)過程會遇到各種問題和挑戰(zhàn),如果能有這個認識,在處理可改可不改或者較小細節(jié)時,會對是否做調(diào)整也有幫助。
日常在做系統(tǒng)設(shè)計和方案選擇時,有些開發(fā)可能會考慮代碼量。
然而,代碼量不應(yīng)該成為設(shè)計好壞的標準。
如果代碼量小而引入如下的問題,反而增加了系統(tǒng)復(fù)雜度和維護成本,系統(tǒng)的穩(wěn)定性和開發(fā)效率也會受很大影響。
一個好的架構(gòu)設(shè)計能規(guī)避掉日常容易遇到的問題,也能更好容納突發(fā)劇增的系統(tǒng)訪問,對臨時的故障恢復(fù)也有很大幫助。
這些設(shè)計的優(yōu)化,都是日常開發(fā)中應(yīng)該注意的細節(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ù)框架也在不斷更新進步、團隊成員變動等等,這一切都會使得系統(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)擁有基于這樣的認知時,在系統(tǒng)設(shè)計會有不同,比如創(chuàng)建一個新表時就會主動評估業(yè)務(wù)查詢需求建立合適的索引、在設(shè)計系統(tǒng)容量時會考慮容量及達到容量后的循環(huán)覆蓋策略、對于流量洪峰的削峰和控制都會在最初設(shè)計時考慮,等等。
如果系統(tǒng)必須依賴研發(fā)工程師不間斷地維護和扶持才能運轉(zhuǎn),那就意味著隱藏著巨大的風(fēng)險隱患。
【常識九:產(chǎn)品模型設(shè)計的好壞直接影響軟件系統(tǒng)質(zhì)量和效率】
測試是系統(tǒng)建設(shè)的重要組成部分,是系統(tǒng)的質(zhì)量、安全等的重要保障,但當(dāng)線上出現(xiàn)異?;蚬收蠒r,測試卻不應(yīng)該成為責(zé)任人。
一個的系統(tǒng)建設(shè),離不開良好的產(chǎn)品設(shè)計、健壯的系統(tǒng)架構(gòu)、規(guī)范的代碼等,這些是前提和基礎(chǔ)。
故而研發(fā)應(yīng)重視代碼變更部分的邏輯和邊界測試,而非依賴于測試人員。
【常識十一:偏業(yè)務(wù)的系統(tǒng)應(yīng)具備完整獨立的運營能力】