轉眼間自學軟件已經半年有余,所做軟件不能說是很好,但是我認為只要有用戶的軟件就是好軟件。今天把自己的開發(fā)軟件過程中的心得與體會總結起來、記錄下來,希望新人少走彎路。
軟件開發(fā)之前,需要先構思軟件大致功能、程序是否可行、程序具體實現(xiàn)辦法、程序代碼結構、程序容錯性、用戶體驗設計、程序的執(zhí)行效率、軟件界面等。有必要的話建議新建個txt,保存程序具體開發(fā)流程,然后按照步驟一步步來。
明確軟件大致功能
首先我們要明確要做的這個軟件功能是什么、主要目的是干嘛的。我之前就在論壇上看到過一個網(wǎng)友發(fā)的記事本軟件,居然還帶音樂播放、3G掛Q等功能,實在是畫蛇添足了。比如為什么騰訊要開發(fā)那么多軟件,QQ音樂、QQ游戲、QQ影音等等等等..而不把他們綜合成為一個軟件?這是因為各軟件功能的針對性比較強,因為一個使用QQ音樂聽歌的用戶,不可能會同時使用QQ影音看電影。當然,如果副功能針對性不強,和主功能有較強聯(lián)系的,可以合并開發(fā)。
程序是否可行
明確了軟件大致需要實現(xiàn)的功能之后,我們再考慮這些功能是否可以實現(xiàn),如果某些功能根本沒有辦法實現(xiàn),后面的就不用看了。這里建議不能實現(xiàn)的問題多多上網(wǎng)查查,論壇求助,一般情況下你遇到的問題都是前輩們問了好多次的問題。
程序具體實現(xiàn)辦法
多個不同程序同樣的一個執(zhí)行結果,需要反復測試那種效率高、正確率高、用戶可能更喜歡哪一種、再選用哪一種。如做個程序判斷某QQ是否在線,你可以采用兩種方法:1:讓用戶在你的程序中登錄QQ,程序自動尋找用戶指定的那個QQ好友,判斷他是否在線。2:直接讀取對應QQ的QQ在線狀態(tài)圖標,進行判斷。前者獲取的信息更詳盡,后者無需用戶登錄QQ即可查詢,兩者各有優(yōu)點,采取哪一種取決于你程序的主功能。
程序代碼結構
代碼結構是十分需要重視的一個軟件開發(fā)階段,它差不多直接決定了你軟件的未來..一個代碼結構混亂的程序,過段需要更新的時候,連你自己也看不出個所以然。在修改某些核心代碼的時候,甚至會出現(xiàn)牽一發(fā)而動全身的情況。我在學習初期,就曾做過一個結構混亂的程序,后來由于修改一個地方,報出10個錯誤,最終無奈只好放棄了那個程序。建議大家在程序開發(fā)初期一定要注意這個問題,盡量寫出無依賴性,可供其他程序任意調用的子程序,并做好備注。(推薦一篇關于程序代碼結構的文章:防止代碼變質的思考與方法)
程序容錯性
程序容錯性也是非常重要的一個地方,你的一個錯誤彈窗,就可能讓一個用戶右上角,甚至直接刪掉你的軟件。比如“百度網(wǎng)盤搜索工具”的先前版本,軟件啟動后,迅雷下載、快車下載、旋風下載,這幾個按鈕,在用戶還未搜索文件時就是可點擊狀態(tài),一旦點擊就會數(shù)組成員超標報錯。這里建議開發(fā)者要全面考慮程序執(zhí)行中各種可能發(fā)生的情況,使不能讓用戶操作的組件都保持著“禁用”狀態(tài)。
用戶體驗設計
用戶體驗(簡稱UE)FaceUI稱是一種純主觀的在用戶使用一個產品(服務)的過程中建立起來的心理感受。因為它是純主觀的,就帶有一定的不確定因素。個體差異也決定了每個用戶的真實體驗是無法通過其他途徑來完全模擬或再現(xiàn)的。但是對于一個界定明確的用戶群體來講,其用戶體驗的共性是能夠經由良好設計的實驗來認識到。建議開發(fā)者合理運用各種組件,塑造良好的用戶體驗。
程序的執(zhí)行效率
功能大致開發(fā)好了,接下來就要看看能不能提高功能實現(xiàn)的效率,原來需要等5秒鐘的功能,看能不能3秒鐘搞定。建議開發(fā)者在軟件啟動階段。功能執(zhí)行階段使用多線程調用事件,以加快軟件啟動速度、功能執(zhí)行效率。
軟件界面
不注重界面的我把這條放在了軟件開發(fā)的末尾。其實這點也完全可以放在后面,因為一個不錯的界面往往只需調用一個模塊、一句代碼就可以做到。除非是一些正規(guī)的軟件、需要用自繪搞好久。
發(fā)布前測試
切記,你所開發(fā)的軟件不是你一個人用的,不是只要你能運行的軟件,別人就一定也可以運行。軟件發(fā)布前要經過虛擬機測試、QQ好友幫忙測試、確實沒問題了再發(fā)布。
軟件發(fā)布
可以在你平時常逛的論壇、貼吧,也可以發(fā)表在軟件下載站等處。
收集用戶意見
軟件已經開發(fā)完成并且發(fā)布了,接下來就是收集用戶的意見和建議,在軟件中適當?shù)奈恢们度隥Q在線狀態(tài)按鈕、意見反饋按鈕都是不錯的辦法。建議收集意見之后,除非重大BUG、漏洞,每1-2周更新一次足矣。(易語言程序推薦使用“凱旋留言反饋系統(tǒng)”,高效展示所有用戶的意見,甚至可以當做專屬聊天室。)
開發(fā)中遇到問題
最好自行解決,網(wǎng)上搜索,論壇發(fā)帖求助,等都是不錯的辦法。建議平時學習過程中遇到牛人果斷加QQ,不懂的時候問一下,不要太煩人,高手生氣直接拉黑了。
面對用戶的軟件才是軟件的最終形態(tài),軟件的存在價值在于:為用戶提供方便。