泰安ERP軟件

新聞分類

聯系我們

企業名稱:泰安市諾盾網絡有限公司

聯系人:仇藝峰

手機:18605385802

郵箱:[email protected]

網址:www.laiwlz.live

地址:泰安市泰山區長城路北首圣地公寓A座0855室

泰安軟件開發告訴你軟件開發為什么復雜

您的當前位置: 首 頁 >> 新聞中心 >> 公司新聞

泰安軟件開發告訴你軟件開發為什么復雜

發布日期:2018-09-30 作者: 點擊:

泰安軟件開發

泰安軟件開發告訴你軟件開發為什么復雜:

軟件開發過程更多地是一個復雜問題。在一個產品被開發出來之前,不確定性非常高,團隊對產品的知識也是最少的,而且需要大量的學習和嘗試才可以明確下一步可能的方向。

不幸的是,很多時候我們需要在一開始就為項目做計劃。這種從傳統行業中非常適合的方法在軟件開發領域不再適用,這也是敏捷開發、精益等方法論在軟件開發中更加適合的原因。

正因為軟件開發事實上是一個學習的過程,我們學習到的新知識反過來會幫助我們對問題的定義,從而帶來變化。這里的變化可能來自兩個方向:

(1)功能性

功能性的變化指隨著對業務的深入理解、或者已有業務規則為了匹配市場而產生的變化。比如支付方式由傳統的貨到付款變成了網銀付款,又變成了微信支付、支付寶掃碼等等。一個原始的電商平臺僅僅提供基本的購物服務,但是后來可以根據已有數據產生推薦商品,從來帶來更大的流量。這些變化需要體現在已有的代碼中,而對代碼的修改往往是牽一發而動全身。

(2)非功能性

非功能性的變化是指隨著業務的發展,用戶規模的增加,數據量的變化,安全認知的變化等產生的新的需求。而在業務提出一個需求的時候,往往只是一個簡化過的版本。

非功能性復雜性

這是一個經過設計師精確設計的界面,在它被設計出來之前,用戶事實上無法準確的描述出它。設計過程中經歷了很多的諸如:線框圖、顏色的確定、交互的動畫和信息層次。

往復多次之后,界面確定了。在沒有仔細思考使用場景的時候,開發會誤以為這個功能非常簡單。但是如果你是一個有經驗的開發者,很快會想到的一些問題是:在寬屏下如何展示?在平板上如何展示?在手機上如何展示?即使僅僅支持桌面版,跨瀏覽器要考慮嗎?支持哪些版本?有些UI效果在低版本的瀏覽器上不工作,需要Shim技術。

除此之外,依然有大量的其他細節需要考慮:

①性能要求是什么樣的?

②安全性要考慮嗎?

③在網絡環境不好的時候,要不要fallback到基礎視圖?

④既然涉及發送邀請函,送達率如何保證

⑤與外部郵件服務提供商集成時的工作量

等等。這些隱含的信息需要被充分挖掘出來,然后開發者才能做一個合理的評估,而且這還只是開始。一旦進入開發階段,很多之前沒有考慮到的細節開始涌現:字體的選用,字號,字體顏色,元素間的間距等等,如何測試郵件是否發送成功,多個角色之間的conversation又會消耗很多時間。

需求的變化方向

作為程序員,有一天你被要求寫一段代碼,這段代碼需要完成一件很簡單的事:

打印”logical thinking”5次

很容易嘛,你想,然后順手就寫下了下面這幾行代碼:

print("logical thinking")

print("logical thinking")

print("logical thinking")

print("logical thinking")

print("logical thinking")

不過,拷貝粘貼看起來有點低端,你做了一個微小的改動:

for(var i = 0; i < 5; i++) {

print("logical thinking")

}

看起來還不錯,客戶的需求又變成了打印”Software development”5次。既然是打印不同的消息,那何不把消息作為參數呢?

function printMessage(message) {

for(i = 0; i < 5; i++) {

print(message);

}

}

printMessage("logical thinking")

printMessage("Software development")

有了這個函數,你可以打印任意消息5次了。客戶又一次改變了需求:打印”logical thinking”12次。既然次數也變化了,那么一個可能是將次數作為參數傳入:

function printMessage(count, message) {

for(i = 0; i < count; i++) {

print(message);

}

}

printMessage(12, "logical thinking");

printMessage(5, "Software development");

完美,這就是抽象的魅力。有了這個函數,你可以將任意消息打印任意次數。再回過頭來看看那個最開始的需求:

打印”logical thinking”5次

稍微分割一下這句話:打印,”logical thinking”,5次,可以看到,其中兩個元素最后都變成了可以變化的點,軟件開發很多時候正是如此,需求可能在任意可能變化的方向上變化。這也是各種軟件開發原則嘗試解決的問題:如何寫出更容易擴展,更容易響應變化的代碼來。

軟件的復雜性來自于大量的不確定性,而這個不確定性事實上是無法避免的,而且每個軟件都是獨一無二的。軟件的需求會以各種方式來變化,而且往往會以開發者沒有預料到的方向。

本文網址:http://www.laiwlz.live/news/411.html

關鍵詞:泰安ERP軟件,泰安軟件開發,網絡公司泰安

最近瀏覽:

甘肃快三今天的开奖号