> 需求分析是完整項目開發的關鍵環節,也是技術人員往往忽視的。
## 為什么要做需求分析?
### 正確的做事和做正確的事的區別
首先,我們想做一件事,需要我們的大腦指揮和體力實施。就是要經過意識和行動才能有結果。想象雖然看上去沒什么直接產出,但是也是至關重要的。
意識決定行為。錯誤的意識帶來的只能是錯誤的行為,然后導致錯誤的結果。
要想正確的做事,首先的前提是保證做的事一定要正確。
如果我們要做的事,從預期結果上就和我們的目的無關,那么這件事就不是正確的。
正確的做事不一定是在做正確的事。只是把一件事正確的完成了。
做正確的事,才是先有正確的事,然后才是在做。
### 需求分析是一個不斷明確目標做計劃的過程
我們拿到一個網站需求,從大的方面來講,他有一些類別。比如說是博客、門戶、論壇、影視站,企業站等。
這些類別然后對應一些常規的基本需求。比如博客要能發博文,要能評論;門戶分類要全;論壇要訪客和用戶活躍、能發帖、做任務等。
然而我們自己去做,不可能 按著一個類別找一個網上的通用程序就完了。比如wordpress或者discuze。
肯定有一些需求別人沒有,必須我們自己去實現,這樣才能達到我們的價值。我們創造,我們創新,我們幫客戶解決了特殊問題。我們才能進步。
### 需求分析能幫我們探討計劃的細節的可行性,以及對應的技術方案是什么。
### 需求分析可以確定做什么
以前的軟件工程里專門有需求分析這一階段,并且大項目應該有產品經理去和甲方討論明確出一個需求,立項時寫入合同里。
這樣做的好處是避免后續的糾紛,我們提供什么和我們要做什么是兩回事。我們要做的是義務,我們提供的是能做到的。
有時候我們沒義務,甲方總是提需求以外的,讓你完成。你那覺得能做不想做又抹不開面子,但做了又耽誤了進度。
這時候就出現分歧,大家可以回到原始探討過的需求上來。
### 需求分析能幫我們理清思路,節省時間。
大家經常有這么一個錯覺? 技術往往實現起來很容易。做一些改動,不會花太多時間。
錯錯錯! 每一次改動相當于扼殺技術人員的成果和他們的積極性。
復雜邏輯間存在相互依賴,并不是幾行注釋就能隨便刪減一個功能的。
還得為系統穩定性做修改。變動的需求,往往其考慮就是不成熟的。有可能影響后面的擴展性。
有的時候,我們在做需求分析時,可以將一些目標的解決方案列出來,然后和同事討論,這樣找出可能出現的問題及及最優的解決方法。這樣當預期問題出現時就不會驚慌失措了。
## 如何做需求分析?

就像我上面畫的圖,我們可以借助Xmind軟件,整理一個思維導圖。
首先要做的功能,比如“各種類型的post content的存儲和顯示”、“搜索”、“后臺”。
然后思考一些“難點”和邏輯性東西,比如系統里對象。
最后進行數據庫設計,將所有表的表名和字段確定。同時驗證下數據庫設計是否滿足所有需求和難點解決方案。
記住xmind是你的思路體現,如果有新的想法要隨時更新,方便以后隨時回憶。
- 序
- 前言
- 內容簡介
- 目錄
- 基礎知識
- 起步
- 控制器
- 模型
- 模板
- 命名空間
- 進階知識
- 路由
- 配置
- 緩存
- 權限
- 擴展
- 國際化
- 安全
- 單元測試
- 拿來主義
- 調試方法
- 調試的步驟
- 調試工具
- 顯示trace信息
- 開啟調試和關閉調試的區別
- netbeans+xdebug
- Socketlog
- PHP常見錯誤
- 小黃鴨調試法,每個程序員都要知道的
- 應用場景
- 第三方登錄
- 圖片處理
- 博客
- SAE
- REST實踐
- Cli
- ajax分頁
- barcode條形碼
- excel
- 發郵件
- 漢字轉全拼和首字母,支持帶聲調
- 中文分詞
- 瀏覽器useragent解析
- freelog項目實戰
- 需求分析
- 數據庫設計
- 編碼實踐
- 前端實現
- rest接口
- 文章發布
- 文件上傳
- 視頻播放
- 音樂播放
- 圖片幻燈片展示
- 注冊和登錄
- 個人資料更新
- 第三方登錄的使用
- 后臺
- 微信的開發
- 首頁及個人主頁
- 列表
- 歸檔
- 搜索
- 分頁
- 總結經驗
- 自我提升
- 進行小項目的鍛煉
- 對現有輪子的重構和移植
- 寫技術博客
- 制作視頻教程
- 學習PHP的知識和新特性
- 和同行直接溝通、交流
- 學好英語,走向國際
- 如何參與
- 瀏覽官網和極思維還有看云
- 回答ThinkPHP新手的問題
- 嘗試發現ThinkPHP的bug,告訴官方人員或者push request
- 開發能提高效率的ThinkPHP工具
- 嘗試翻譯官方文檔
- 幫新手入門
- 創造基于ThinkPHP的產品,進行連帶推廣
- 展望未來
- OneThink
- ThinkPHP4
- 附錄