設計本身也要有"源"才行,憑空出現的設計那不過是空想,也是不符合實際需要的.沒有乙個設計可以滿足所有需求,因此設計本身就要根據"需求"源頭來做.
第一,先有需求
這裡要說何謂需求,需求籠統來說就是業務,你對業務的理解是乙個不斷加深的過程,這個過程不是設計出來的,而是你的見識,經驗,聯想,對比其它產品,尋找靈感的過程. 總的來說就是你的認識,行動上表現為 "幻想",總結,分析,對比,收集資料等.
需求不是設計, 也不是編碼,需求是一切之源頭(除了你賺錢的慾望),但是需求並不反對編碼. 甚至應該產生一定量的編碼.作為程式設計師,我們有兩種語言,一種是母語,一種是程式語言.我們用母語來思考,也要用程式語言來思考,但是這種思考並不是為了得到實際產品,而是驗證我們的構思,是一種測試.是一種工具手段.
第'二, 中間是設計.
當我們深入理解業務,並能通過程式的初步驗證,已經有所眉目,這個時候就需要設計來幫助我們開展"有秩序"的工作.設計的目的是"秩序",是有條不紊,而非創造力.創造力是需求階段,設計是工程階段.你想你的編碼有條不紊,不會亂到一團糟,可以方便的展開工作,就需要設計.就如建築,你隨便可以搭,但是搭到第'二層的時候發現一樓少了根柱子,或者.起好牆發現那裡需要放乙個牆櫃,又要推倒從來.設計的目的是讓你先一步看到整體,做好預留工作.
設計階段,是整體架構軟體的階段,也是組織我們對業務理解的階段,同時也是分解每一道工序的階段,任意一道工序我們都必須具備解決的能力,砌牆有砌牆的工人,刷灰又刷灰的工人,分解成我們可以解決的工序,找出我們無力解決的工序,修改需求.
設計者往往希望設計乙個超越需求的設計,希望這個設計可以滿足將來需求的變化.這是錯誤的,至少在這個階段來說是錯誤的決定.假如你想滿足將來的需求,那麼你就應該在需求階段提公升需求,而不是在設計階段想需求的變化.
第三,最後是編碼
有圖紙,要做一棟房子是很簡單的事情.如果在圖紙中已經完全解決了編碼所需要的各種技能都是我們具備的,所有工序都是我們曾經做過的,那麼按照圖紙,必然得到圖紙所呈現的結果.
總結: 不要急於設計,也不要害怕編碼,要延長需求分析階段,讓自己多幻想一段時間.
設計不是解決一切問題的良方,而是工程指令而已,真正有創造力的思想,是在我們需求階段給出來的.
不要超前設計,但是可以超前需求.
整理好我們的編碼片斷,以提供設計材料.設計是高於編碼的語言.而這個語言的素材源於程式設計經驗.
GTK GDK GLIB三者的關係
什麼是glib?glib庫提供了一系列函式 functions 和定義 definitions 在設計gdk和gtk程式時很有用.它提供了一些標準c函式庫 standard libc 的替代函式,比如malloc,但在其他的系統上使用時有很多問題.什麼是gtk gtk 是乙個小型而高效的控制項庫,具...
GTK GDK GLIB三者的關係
什麼是gdk?glib庫提供了一系列函式 functions 和定義 definitions 在設計gdk和gtk程式時很有用.它提供了一些標準c函式庫 standard libc 的替代函式,比如malloc,但在其他的系統上使用時有很多問題.什麼是gtk gtk 是乙個小型而高效的控制項庫,具有...
C C C 三者的關係
一 關於c語言 語言是一種結構化程式設計語言。它層次清晰,便於按模組化方式組織程式,易於除錯和維護。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。語言的表現能力和處理能力極強。它不僅具有豐富的運算子和資料型別,便於實現各類...