最近在做乙個校線的小工具,button lable textbox checkbox combobox 等小控制項一組合,再用wpf中mvvm新的架構,在viewmodel中實現背後的控制邏輯,乙個小工具的雛形就ok了。開發除錯後,beta版本發布。
一周後使用者普遍反映,介面不友好,使用不方便,「我的操作完成狀態我也不知道」,老工具的啥啥功能怎麼沒了?加上工具對於老環境支援度不好,新工具的推廣效果很差。
認真反思後,在兩個多月後,我決定對新工具根據使用者反饋,大力調整,除了盡量保留老工具所有的功能外,盡量把使用者的互動做好,讓使用者真正使用起來方便,不需要指導書。
做完後,專案推廣失敗,總結了下,主要有以下兩個方面的原因。
當時專案曲折,自己感覺是個小專案,就沒有寫專案程式設計書,結果就把環境的支援考慮到不多,使用小工具,需要公升級環境,結果很少有使用者主動去公升級環境,最後拖累兩個月的推廣。
兩個月後,這個問題,我用了半天就搞定了。
我的小工具的核心缺陷,就是沒有對測試資料的實時列印,讓使用者可以很方便的檢視到自己操作的結果。說的更簡單點,就是怎麼清晰的把資料列印在操作介面上,並提供必要的提示。
這個問題困擾了我乙個多星期。
介面設計是非常吸引使用者的乙個方面。好的介面設計,一方面提高使用者使用的效率,使用者的認可度,同時,另一方面也可以減少開發人員的維護工作。
好的介面設計,是建立在使用者對業務的理解上,對使用者習慣的把握上。
wpf的布局控制項都在system.windows.controls.panel這個基類下面,使用 wpf提供的各種控制項在wpf應用程式中介面進行布局,同時對各種子控制項(如按鈕、文字框,下拉框等)進行排列組合。
grid顧名思義就是「網格」,它的子控制項被放在乙個乙個實現定義好的小格仔裡面,整齊配列。 grid和其他各個panel比較起來,功能最多也最為複雜。
其實給我解決問題的時間很少,最多兩天的時間,我不斷的翻閱資料,並參考了幾個老工具的介面方式。
老工具使用的是wcf寫的,使用的控制項是listview,在wpf中,需要繫結行、列的資料,這個地方比較難懂,利用週末的時間,我終於寫出來乙個demo,結果還是感覺不太好用(網上的教程太少)。
為了讓控制項使用更容易上手,我選擇了大家都在使用的datagrid控制項,網路上的教程很多,特別是英文的版本,非常詳細(這一次,我又深深感受到了學好英文的巨大優勢,讓自己的程式設計能力和世界接軌。。。。),自己學習了一上午,控制項的使用基本搞定,準備移植到工具當中時,仔細思考了下,同時又和同事討論了下,發現這個控制項對於很多列資料的顯示不太適合,因為他的每一列都和程式中的屬性繫結,我有100多列,我就要定義一百多的屬性,感覺好傻。。。
專案越來越緊張,我直接找了乙個開源的log的實現,結果使用起來了也很費力,一般的例子都沒有直接繫結到介面上顯示,而是在後台記錄日誌。正好其他專案有使用richtextbox的例子,我直接放棄了log4net。
之前的專案使用的richtextbox是使用的winform,wpf對richtextbox進行了重寫,很多屬性和方法都變了,對這個我又研究了一天,終於搞定。
校線工具比串**付專案複雜度要低,然而這個專案多了介面設計,這是個全新的領域,對我來說。
介面設計就要首先考慮使用者的使用習慣,做好初步的規劃。這個也屬於專案總體設計的一部分。
「不僅知道開頭,知道如何結束同樣也非常重要。」
專案遇到難題如何解決?求助?最直接的是,還是提前提高自己的技術能力,不論什麼時候。
寫值工具專案總結
gif,jpg,bmp和jpeg,有什麼區別?c 中image和byte 的互相轉換 如何新建webapi,生成注釋,testclient的專案?什麼是反射 什麼是dictionary 系統如何系統自定義欄位名稱 如何用rfid的tid方式快速讀取繫結 如何新建listview的image的字段和d...
多校聯賽總結
首先是一些資料 2014 multi university training contest 1 by fzu a 數學 費馬小定理 b 網路流 最小k路徑覆蓋 c 樹形dp 樹的重心 資料結構 d 貪心 巧妙 e 數學 dp 隱含馬爾科夫模型 f 線段樹 函式式 二分 g 線段樹 狀態壓縮 h 模...
校招前總結
從9月份,大三開學之前堅定要走c 後台開發的方向,有很認真的看許多關於c 網路程式設計的書。如下 c c primer effective c 深度探索c 物件模型 stl原始碼剖析 網路程式設計 unp 卷1 unp 卷2 linux多執行緒服務端程式設計 apue tcp ip 卷1 作業系統 ...