论设计,需求和编码三者的关系
設計本身也要有"源"才行,憑空出現的設計那不過是空想,也是不符合實際需要的.沒有一個設計可以滿足所有需求,因此設計本身就要根據"需求"源頭來做.
第一,先有需求
這里要說何謂需求,需求籠統來說就是業務,你對業務的理解是一個不斷加深的過程,這個過程不是設計出來的,而是你的見識,經驗,聯想,對比其它產品,尋找靈感的過程. 總的來說就是你的認識,行動上表現為 "幻想",總結,分析,對比,收集資料等.
需求不是設計, 也不是編碼,需求是一切之源頭(除了你賺錢的欲望),但是需求并不反對編碼. 甚至應該產生一定量的編碼.作為程序員,我們有兩種語言,一種是母語,一種是程序語言.我們用母語來思考,也要用程序語言來思考,但是這種思考并不是為了得到實際產品,而是驗證我們的構思,是一種測試.是一種工具手段.
第'二, 中間是設計.
當我們深入理解業務,并能通過程序的初步驗證,已經有所眉目,這個時候就需要設計來幫助我們開展"有秩序"的工作.設計的目的是"秩序",是有條不紊,而非創造力.創造力是需求階段,設計是工程階段.你想你的編碼有條不紊,不會亂到一團糟,可以方便的展開工作,就需要設計.就如建筑,你隨便可以搭,但是搭到第'二層的時候發現一樓少了根柱子,或者.起好墻發現那里需要放一個墻柜,又要推倒從來.設計的目的是讓你先一步看到整體,做好預留工作.
設計階段,是整體架構軟件的階段,也是組織我們對業務理解的階段,同時也是分解每一道工序的階段,任意一道工序我們都必須具備解決的能力,砌墻有砌墻的工人,刷灰又刷灰的工人,分解成我們可以解決的工序,找出我們無力解決的工序,修改需求.
設計者往往希望設計一個超越需求的設計,希望這個設計可以滿足將來需求的變化.這是錯誤的,至少在這個階段來說是錯誤的決定.假如你想滿足將來的需求,那么你就應該在需求階段提升需求,而不是在設計階段想需求的變化.
第三,最后是編碼
有圖紙,要做一棟房子是很簡單的事情.如果在圖紙中已經完全解決了編碼所需要的各種技能都是我們具備的,所有工序都是我們曾經做過的,那么按照圖紙,必然得到圖紙所呈現的結果.
?
總結: 不要急于設計,也不要害怕編碼,要延長需求分析階段,讓自己多幻想一段時間.
設計不是解決一切問題的良方,而是工程指令而已,真正有創造力的思想,是在我們需求階段給出來的.
不要超前設計,但是可以超前需求.
整理好我們的編碼片斷,以提供設計材料.設計是高于編碼的語言.而這個語言的素材源于編程經驗.
?
轉載于:https://www.cnblogs.com/Nobel/archive/2013/03/24/2978293.html
總結
以上是生活随笔為你收集整理的论设计,需求和编码三者的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纸上谈兵: 哈希表 (hash tabl
- 下一篇: Loader的load方法和loadBy