項目開發總結

有時候一些奇怪的想法會忽然出如今腦海中,那一瞬間彷彿有所領悟git

概況

本篇中所分析的全部內容都是以中小型項目爲前提的,iOS,Android,Server這3端開發人數不超過20人。因爲我自己是作iOS的,所以,會從一個iOS開發者的角度來剖析問題。不必定百分百正確。程序員

設計

產品經理已經設計了app的大部分功能,一些交互上的細節確定不可能徹底設計出來。每每這些被忽略的交互設計會在程序員編碼過程當中,形成很大一部分時間的浪費。github

所以,須要有一個方案上的設計,這個設計的主要目的就是處理項目中產品方面的臨時變動。網絡

在真實開發中,最常常出現的一個場景就是遇到這訪問的問題去問產品,產品當時記住了,可能過段時間就忘了。這些產品方面的問題最少喲通知到跟該項目開發相關的全部人,若是到了測試階段,還須要修改交互設計,那麼上述的設計就是有問題的。架構

產品設計是開發前期最重要的一個環節,假定咱們已經有了一個良好的設計,那麼接下來,須要讓項目開發的相關人員對必須對產品有一個清楚的瞭解。app

仍是那句話,在這個階段,讓開發人員把問題精確到每個if上,確定不現實,但經過你們的頭腦風暴後,大部分隱藏的問題和衝突都能被發現。框架

對於app界面的設計人員,須要制定一套統一的設計方案,方案中應該包含總體設計的風格,統計出有多少須要設計的界面。後續的分工會在任務分解中給出解釋。測試

後臺開發應該和移動端開發共同制定一份數據交互規則。優化

說點題外話,我一直以爲不論是寫後臺仍是移動端,總體框架的良好設計可以給程序帶來巨大好處。每一個人寫代碼的風格千差萬別,有的時候同一份數據須要建立好幾個模型,這幾個模型大部分的屬性都是相同的,想一想,這對於開發和代碼優化會帶來多大的阻力。編碼

我我的認爲,若是後臺開發,以模型爲單位組織數據,會給移動端開發帶來極大的便利性。最好有一我的可以專門維護一個屬性池,你們全部的屬性都在這個池子裏獲取,從而就可以避免各類衝突了。

簡單說說iOS端的設計,基本的文件目錄結構的設計,我們就不提了,這都是最最基本的要求。網絡層的設計也不提,每一個公司都會有這方面的封裝庫。咱們首先來探討下模型的設計:

最單純的模型就是用來存儲數據和提供數據的。若是控制器中的邏輯很複雜,最好寫一個處理控制器與數據模型邏輯的管理類,數據的處理全都封裝在這個管理類之中,控制器拿處處理好的處理,去輕鬆的完成他的任務。上邊的管理類是一個核心思想,相信有經驗的開發者應該明白。

對於存儲的設計應該有一個統一的類去管理,數據的持久化不該該隨隨便便的散落在代碼中的各個角落。這個管理類負責了數據存儲的讀取和寫入,以及穩定性的考驗。

除了網絡,模型,存儲,就剩下控件的設計了,控件的設計就一句話,把你寫的每個控件都當作一個小的組件來寫。每個控件都不該該是僅僅基於當前的一個小的需求考慮的,最起碼從其餘開發人員也會使用這個角度去考慮問題。

在真實開發中,我發現一個小小的問題,即便組件的接口寫的很簡單,別人也不必定會用,所以,這些組件應該須要一份文檔來描述它的使用方法,一個很好的例子就是github。

上邊描述的種種都是基於理論方面的內容,須要在開發中慢慢體會。

任務分解

任務分解一樣是一份頗有技術含量的活,對於一個大型的建築項目,中小app的開發真的不算什麼。

根據每一個人的我的能力,把不一樣的模塊,不一樣的功能指定給合適的開發人員。

最難的事情

我我的認爲可以處理好上述的問題的人選必定是架構師,一個良好的設計,一個高度可維護的設計都應該是架構師必備的技能包。

但我認爲,在開發中讓全部的人的技術提升是一件很難的事情,正是因爲技術水平的不同,才產生了開發中的各類障礙,這裏就很少說了。

總結

經過這個項目,我我的獲得的領悟就是設計很是重要

相關文章
相關標籤/搜索