“外部质量”还是“内部质量”
生活随笔
收集整理的這篇文章主要介紹了
“外部质量”还是“内部质量”
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這幾天看了看《硝煙中的Scrum和XP》,其中作者將產(chǎn)品質(zhì)量分為兩種——“外部質(zhì)量”和“內(nèi)部質(zhì)量”。作者認為,在項目工期緊的時候,外部質(zhì)量是可以妥協(xié)的。而內(nèi)部質(zhì)量是不容妥協(xié)的。但是,哪些問題屬于內(nèi)部質(zhì)量呢??
作者并沒有詳細的論述這個問題。下面,我列出了一些常見的場景和劃分。?你怎么看待這個問題呢?
外部質(zhì)量
- 可擴展性
我一直認為,一個沒有明確的目標的可擴展性設(shè)計往往會變成過度設(shè)計。因此,我覺得可擴展性相關(guān)的質(zhì)量問題應(yīng)該作為外部質(zhì)量看待。敏捷中強調(diào)?做的剛夠就好。 - 功能不完整的實現(xiàn)
有些時候,對某個功能模塊的實現(xiàn)中存在?明顯的?功能不完整。這一點我認為也是外部質(zhì)量。因為,我們采用迭代式開發(fā)的目的就是可以逐漸的完成這個功能。但是,我認為這種功能不完整應(yīng)該是?顯而易見?的。否則,我認為就屬于內(nèi)部質(zhì)量中的“邏輯嚴整性”和“語義清晰性”的問題了。 - 性能
性能優(yōu)化往往會犧牲架構(gòu)的簡單性和代碼的可維護性。而且,我個人認為從實際的產(chǎn)品角度來看,性能只有“能夠接受”和“不能接受”的差別,而沒有“好”和“不好”的差別。因此,我認為它是產(chǎn)品是否能夠驗收的一個重要指標。但不是一個我們應(yīng)該時刻關(guān)注的質(zhì)量問題。
內(nèi)部質(zhì)量
- 代碼規(guī)范
混亂的代碼意味著更加難以維護。劃分外部質(zhì)量和內(nèi)部質(zhì)量的一個重要標準是:對產(chǎn)品的可維護性有很大影響的質(zhì)量問題應(yīng)該稱之為內(nèi)部質(zhì)量。因此,我認為代碼規(guī)范為“內(nèi)部質(zhì)量”。 - 設(shè)計和實現(xiàn)的邏輯嚴整性
例如:你設(shè)計了一個集合類,就應(yīng)該確保集合的基本增刪改操作正確。你可以在集合的刪除操作中拋出“NotSupportException”或斷言錯誤以標示該集合是一個只增集合。但是,你不能通過忽略刪除方法的實現(xiàn)來達到同樣的目的。
另外一個邏輯嚴整性問題的例子是:Equals方法和GetHashCode方法實現(xiàn)上。你可以同時不實現(xiàn)這兩個方法。如果實現(xiàn),就一定要實現(xiàn)正確。不能因為目前沒有需求將該對象作為Hashtable的Key,而忽略GetHashCode的實現(xiàn)。
一個邏輯上不嚴整的設(shè)計往往會對將來使用該模塊的開發(fā)人員造成誤導(dǎo)。?最終造成可維護性問題。因此參考上面的原則,我認為這一條應(yīng)該歸為“內(nèi)部質(zhì)量”。 - 語義清晰性
這一條和“邏輯嚴整性”類似。不能在方法命名等地方出現(xiàn)語義上的不清晰。對將來的使用者造成誤導(dǎo)。
關(guān)于劃分原則的思考
- 對產(chǎn)品未來可維護性有影響的點應(yīng)該歸為內(nèi)部質(zhì)量
正因為“可維護性”往往是一個不易被覺察的問題,我才覺得可維護性是團隊最應(yīng)該關(guān)注的質(zhì)量問題。是不能夠放棄的底線。相對而言,“可擴展性”和“可維護性”如此相似,卻恰恰相反,它看起來如此美妙。但,過度設(shè)計往往都是因為對“可擴展性”的追求而導(dǎo)致的。它反而是我們程序員應(yīng)該時刻警惕的東西。 - 內(nèi)部質(zhì)量往往比較虛,而那些清晰明確的問題或目標個人認為歸為“外部質(zhì)量”比較好。
人的精力是有限的,正因為這種有限性,讓我們需要建立一些簡單的原則來幫助我們將精力放在更重要的問題上。盡可能減少我們關(guān)注的范圍,會讓我們在這個范圍內(nèi)做的更好。因此,我覺得應(yīng)該盡可能的將那些顯而易見的問題排除出“內(nèi)部質(zhì)量”問題之外。這樣,我們才能夠更好的控制“內(nèi)部質(zhì)量”。那些顯而易見的問題,其實,往往都不是問題。 - 性能
這一點我一直很猶豫,因為往往一個不好的架構(gòu)會導(dǎo)致難以修復(fù)的性能問題。但是,就這個話題而言。我還是更加傾向于將性能看做是外部質(zhì)量。因為它往往是顯而易見的。產(chǎn)品的Master,Customer等等很多人會關(guān)注與這個問題上。很多時候,在產(chǎn)品前期準備的時候就已經(jīng)提出了明確的性能要求。因此,它是一個重要的產(chǎn)品測量點,但是,不是“內(nèi)部質(zhì)量”
轉(zhuǎn)載于:https://www.cnblogs.com/Cajon/archive/2011/02/14/1954484.html
總結(jié)
以上是生活随笔為你收集整理的“外部质量”还是“内部质量”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java字符串的子串
- 下一篇: iPad 3将获得Retina视网膜显示