如何提高設計能力?

2021-06-19 01:11:08 字數 1438 閱讀 3766

要提高設計能力首先需要對軟體設計有著精神上的追求,即在軟體開發的過程中追求設計的完美性。夢想之所以有可能成為現實,是因為我們會去「想」並為之努力,軟體設計能力的獲得也不例外。設計能力的獲得並不會因為不去追求而「不小心」獲得且水平很高。具備軟體設計追求的人,會在設計的第一時間積極思考以試圖找到更優實現,也會隨著產品的演變而反思是否存在更好的設計,或者在必要的時候會選擇接受挑戰去通過改善設計幫助團隊走出困境。

提高設計能力的另乙個途徑是實踐加模仿。設計能力的提高,一開始要看別人的設計,且看出其中巧妙的地方,如果看懂了往往會在大腦中留下一定的印象。以後碰到類似設計主題時就會想起曾經在某乙個專案中存在類似的設計,如果還完全記得那一好的設計是如何實現的,那就依樣畫葫蘆地做。當然,如果不記得也沒有關係,可以再檢視那個專案的設計並模仿它。類似的模範多了幾次的話,後面就很容易想到用它,且領悟其中的精髓並把握各種設計方法的本質,乃至最後自己也能創造性地思考出更優的設計方法。這種學習方法,對於學習物件導向開發更是重要,因為物件導向的設計思想更抽象。作者曾經的乙個專案組長是如此評價面向對向設計的 ——「我覺得它很繞」。是的,在還沒有完全掌握物件導向開發時就是這種感覺,但一旦掌握了就會覺得它是那樣的自然和直接了當。

實踐和模仿的目的是為了最終形成自己的設計思想,設計思想的形成需要通過思考去做到。設計思想是什麼?是設計時所遵守的各條原則。為什麼有的設計一看就覺得好呢?是因為它符合某些設計原則。而思考的目的就是從各種好的設計中,找出藏在背後的原則。如何從乙個好的設計中找出隱藏在後的設計原則呢?作者在高中時購買過一本武術書 —— 《截拳道》,這本書講解了李小龍創立的截拳道。截拳道更加注重搏擊效率,因此,它的招式都是以實用、直接打擊對手為目的。誠然,在格鬥的過程中,沒有人會優先考慮自己的招式是如何的「酷」,否則就是找打,而應注重如何在格鬥過程中占上風乃至最後取勝。李小龍的截拳道也正是從紛繁複雜的招式中發現最為簡練的那些,通過對招式的簡化來提高搏擊效率。李小龍創立截拳道的過程或許與我們從好的設計中找出隱藏在背後的設計原則很相似,需要什麼樣的能力呢?洞察力!想一想,李小龍能創立截拳道是不是也正因為他對於武術招式獨到的洞察力呢?他通過運用洞察力去去除那些在博擊中沒有打擊效用的部分,以達到簡化並提高博擊效率的目的。洞察力不只對於找出設計背後所隱藏的設計原則有用,其實在整個軟體開發乃至人生中都有著十分重要的作用。良好的洞察力有助於發現表象背後的本質,或尋找出問題的根源。軟體行業的洞察力也可以理解為技術敏感度,或職業本能。

設計能力的提高意味著將掌握更多的設計原則,能力的提高過程也是對設計原則進行精化的過程,理論上,應盡可能讓各設計原則所涵蓋的內容是正交的。設計不是簡單地運用每乙個原則,有時需要在各種原則中進行平衡。乙個設計在兩個原則之間存在一定程度的衝突時,是先滿足其中的哪乙個呢?還是兩者都需要進行一定的折衷妥協?這些都需要有很好的平衡能力。平衡能力的獲得同樣需要通過思考,或者平衡能力也可以通過定義適當的原則進行掌控。

追求設計之美是提公升設計能力的原動力,實踐和模仿起到的是熟悉各種「零星」的好設計,而思考則是幫助領悟各種「零星」的好設計並找出隱藏在其背後的設計原則,進而形成自己完整的設計思想體系。

如何提高自己的業務設計能力

明確資料需求需要考慮以下幾點 1 有哪些頁面 2 每個頁面需要哪些資料 3 頁面之間是否有公共的地方 4 在以上幾點的基礎上歸納出介面 設計資料結構需要考慮以下幾點 1 介面傳入哪些引數 2 介面返回哪些引數 3 返回的引數以什麼樣的結構返回 4 使用什麼來儲存資料,存在資料庫裡還是配置檔案裡 5 ...

實現能力與設計能力

我見過太多的 我自己以前也是 只注重實現功能。國內絕大多數的程式設計師都以為實現了就成功了。在開始敲鍵盤之前,有多少人想過即將被建立的 會有多少的可維護性?是準備建立用完就扔的 還是需要不斷公升級 改進的 如果是需要長期被維護 改進的 在最初的時候,如果只是注重實現,而忽略整體框架的設計,那麼最終等...

資料庫設計 能力等級

乙個威客系統,要針對雇主與服務商設計能力等級,具體計算等級方式如下 總的來說就是按照公式查詢出資料然後顯示 為了便於管理,決定將資料存在資料庫中 有人可以是雇主也可以是服務商 所以等級資料可以是一張表 加上等級變更記錄,一共兩張表 等級表為表a,變更表為表b 在等級計算中,註冊時間於當前時間計算出使...