如何做详细设计之序
詳細(xì)設(shè)計是軟件開發(fā)中非常重要的環(huán)節(jié),無論你是工作幾年的技術(shù)大牛,還是只有一兩年工作經(jīng)驗的小菜。可能你看到設(shè)計兩個字,就覺得非常高大上,然而你只要在用心寫代碼,在思考如何定義方法,如何定義類,你都在做著詳細(xì)設(shè)計。至于做的怎么樣,那就另說了。
詳細(xì)設(shè)計涉及哪些內(nèi)容?
首先詳細(xì)設(shè)計不同于架構(gòu)設(shè)計,架構(gòu)設(shè)計主要關(guān)注系統(tǒng)的架構(gòu)模型、系統(tǒng)開發(fā)語言選型、系統(tǒng)數(shù)據(jù)存儲方式選型、系統(tǒng)模塊的劃分以及系統(tǒng)模塊間的關(guān)系,關(guān)鍵技術(shù)的選型,系統(tǒng)部署架構(gòu),系統(tǒng)硬件需求、系統(tǒng)的安全性擴(kuò)展性等內(nèi)容。
詳細(xì)設(shè)計不同于代碼實現(xiàn),代碼實現(xiàn)主要關(guān)注方法級別的算法實現(xiàn),以及方法級別的調(diào)試,單元測試,以及各個模塊間的接口聯(lián)調(diào)。
那么詳細(xì)設(shè)計是包括哪些內(nèi)容?詳細(xì)設(shè)計包括業(yè)務(wù)接口的定義、領(lǐng)域模型的定義、持久化層接口定義、關(guān)鍵業(yè)務(wù)設(shè)計模式的選用、關(guān)鍵業(yè)務(wù)模塊的設(shè)計方案、關(guān)鍵方法的實現(xiàn)算法的選用等。當(dāng)然如果web項目還包括請求響應(yīng)接口的定義,我認(rèn)為這是一個非常重要的工作。哪些地方可以使用ajax,哪些地方選用直接輸出html。直接影響著響應(yīng)速度以及用戶體驗。
詳細(xì)設(shè)計需要具備什么能力?
1、深刻理解架構(gòu)設(shè)計模型,理解為什么選用這種架構(gòu)。這種架構(gòu)對于目前系統(tǒng)的利與弊。
2、深入理解業(yè)務(wù)需求,并且能夠預(yù)測部分需求的變化方向。能夠理解業(yè)務(wù)的本質(zhì)。
3、具備面向?qū)ο笏季S,熟悉面向?qū)ο蟮幕驹O(shè)計原則,熟悉設(shè)計模式、重構(gòu)技術(shù)。
我只是暫時想到了那么多,還涉及其他能力。當(dāng)然我也是在為達(dá)到以上的能力努力中。從以上可以看出,成為一名好的詳細(xì)設(shè)計人員還是非常有難度的。這可能具備良好這種能力人少的原因之一吧。
詳細(xì)設(shè)計重要嗎?
當(dāng)然對于一個小的系統(tǒng)或者一個簡單的系統(tǒng),詳細(xì)設(shè)計做的非常好可能不是必須的。但是對于一個互聯(lián)網(wǎng)產(chǎn)品,我認(rèn)為還是非常重要的。現(xiàn)在很多互聯(lián)網(wǎng)產(chǎn)品都提倡敏捷開發(fā)。在不斷快速迭代的過程中,如果詳細(xì)設(shè)計沒做好的話,隨著迭代版本的增加,代碼會變得面目全非。甚至推倒重來。
1、詳細(xì)設(shè)計決定著系統(tǒng)的質(zhì)量。在軟件系統(tǒng)開發(fā)過程中,可能一直存在這個問題,修了一個bug可能引起一堆bug,這個可能都不陌生。詳細(xì)設(shè)計人員需要考慮設(shè)計的方方面面,比如職責(zé)如何分離,接口職責(zé)如何定義。可以有效減少這種情況出現(xiàn)的可能性。當(dāng)然不能完全杜絕,^_^。
2、詳細(xì)設(shè)計決定著系統(tǒng)的可擴(kuò)展性。系統(tǒng)的擴(kuò)展性,一直是一個頭疼的問題。特別是在互聯(lián)網(wǎng)產(chǎn)品中,需求變化之快,以及用戶量增加又比較迅速。詳細(xì)設(shè)計人員需要考慮業(yè)務(wù)方面的擴(kuò)展性,也需要考慮一些性能上的擴(kuò)展性(當(dāng)然性能的可擴(kuò)展性,大部分屬于架構(gòu)設(shè)計的范疇)
3、詳細(xì)設(shè)計決定著系統(tǒng)的可維護(hù)性。可維護(hù)性指的是改正、改進(jìn)、改動軟件的難度,這個的控制大部分把握在詳細(xì)設(shè)計人員的手里。詳細(xì)設(shè)計做的好對于軟件的迭代非常有利的。
4、詳細(xì)設(shè)計決定著你需不需要加班。這個就不用說了。相信大家都明白。
我也是一位學(xué)習(xí)者
以上扯得夠多了,本系統(tǒng)主要總結(jié)一些詳細(xì)設(shè)計的方法,大家共同學(xué)習(xí),首先我不是詳細(xì)設(shè)計的大牛,只是菜鳥,之所以寫本系列,主要是對于詳細(xì)設(shè)計的一些思考總結(jié)分享給大家,使自己也能夠技術(shù)上得到進(jìn)步。對于本系列中的思考,非常感謝znyin,和他共事將近一年,學(xué)到了很多詳細(xì)設(shè)計方法以及思想,給了我很多寶貴的實踐機(jī)會,非常感謝,本系列也是我從他那學(xué)習(xí)的技術(shù)的總結(jié)。
本系列計劃包括如下內(nèi)容:
1、如何做詳細(xì)設(shè)計之序
2、如何做詳細(xì)設(shè)計之設(shè)計即編碼
3、如何做詳細(xì)設(shè)計之規(guī)范
4、如何做詳細(xì)設(shè)計之設(shè)計原則
5、如何做詳細(xì)設(shè)計之理解業(yè)務(wù)本質(zhì)
6、如何做詳細(xì)設(shè)計之重構(gòu)
7、如何做詳細(xì)設(shè)計之設(shè)計模式
8、如何做詳細(xì)設(shè)計之總結(jié)
本系列文中觀點僅是個人觀點,歡迎討論。
本文同步http://yywang.info,每天同步一篇,將全部系列同步至博客園
轉(zhuǎn)載于:https://www.cnblogs.com/JerryWang1991/p/4204583.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: FineUI第七天---文件上传
- 下一篇: iBatis 的插入一个实体