分享一個效率工具的程序和源代碼

前言


今天和你們分享一個效率工具,並分享運行程序和完整源代碼。這個工具是輔助管理我本身的平常工做而開發的,從06年開始開發初版,已經持續使用十多年,如今仍然在使用和改進中,這說明這個工具本質上是有效的,因此才能一直堅持使用和優化。
在最近,我又用C#和Winform進行了重寫。原本我想用WPF或者Electron重寫,這樣能把界面作的漂亮一點,或者能實現跨平臺。但由於工做繁忙,確實難以抽出不少時間。最後從實用的角度考慮,仍是用傳統的技術重寫了。
此工具通過多個版本的迭代,一直在作減法,把非核心的的功能都砍掉了,只保留了三個功能:任務管理、工做日誌、謹言警句。程序員



工具歷史




此工具最初是我在部門經理崗位上開發的。由於平時既有開發工做,也有些管理工做,不少事情比較雜,比較細。後來我又到了產品經理的崗位上,溝通的事項更多。它曾經的功能就比較複雜,包含了:計劃、任務、績效、便籤、控制、日誌等功能。

舊版本

圖:曾經的舊版本


但這麼多年下來,在不斷的使用中,作了屢次改版。我確實發現了作一個「產品」的真理:「少便是多」。無論原來開發的功能多細緻,通常在我到了新的崗位上之後,可能大部分功能都逐漸再也不用了。由於工做內容變化了,所要使用的效率工具也會隨之變化。所以能長期一直伴隨你使用下來的功能,纔是你的核心需求。這也說明,產品若是隻是功能的堆疊,而非核心需求的功能,終究會逐漸被淘汰。
也基於這種想法,從第二版開始,我逐漸作減法,迴歸核心的需求,將邊邊角角能夠用其餘工具配合的功能都撤除了。
最新用C#重寫,只保留了三個十多年來一直在使用的核心功能:sql

  • 工做任務

工做任務採用了四象限工做法,將工做內容分爲:重要&緊急,重要&不緊急,緊急&不重要,不緊急&不重要。數據庫

  • 工做日誌

強制每一小時填寫一次工做日誌,天天可回顧和總結本身的工做內容。微信

  • 謹言警句

人的成功不僅在於努力,而在於觀念,更在於習慣。努力終會鬆懈,而習慣纔是能夠鍥而不捨的。因此一些智慧的句子,能夠記錄下來,系統進行輪播,每半小時播放一條,讓好的觀念反覆播放,植入你的大腦,讓習慣成天然。app



新版本功能



新版本

任務管理框架

任務管理的分類很是重要,通過我本身的實踐,我以爲四象限工做法是比較有效的方法。在此模塊中,我也特地標註了各象限中的任務類型應該採起的相應處理策略(我的理解管理學者的觀點後自我總結的):編輯器

  • 重要&緊急:關鍵詞是 「高效處理」
  • 重要&不緊急:關鍵詞是 「及時計劃」
  • 緊急&不重要:關鍵詞是 「快速處理」
  • 不緊急&不重要:關鍵詞是 「能夠不處理」

記錄的功能自己很簡單,甚至沒用什麼功能強大的編輯器,由於這並不重要,重要的是工做方法。根據四象限工做法,合理分類安排本身的工做任務,完成工做後從各自分類裏刪除任務便可。
任務管理是經常使用功能,在程序最小化時會隱藏到系統右下角成爲托盤圖標(點擊托盤圖標,可從新打開程序),或者點擊浮動窗上的第一個按鈕,也可從新打開程序。
浮動窗
在系統啓動後,浮動窗會顯示在顯示器的右上角。函數

工做日誌工具

工做日誌

工做日誌模塊提供了日誌錄入、查詢和分析功能。
對於日誌的錄入,系統提供了兩種渠道:優化

  • 系統定時錄入

每一小時系統強制要求錄入,不填寫日誌內容不能關閉。可輸入項目有:日誌內容,工做評價,工做效率(0-100間的數字)。日誌內容必填,其餘選填。
日誌錄入
輸入好後,可按組合快捷鍵 Alt+S 保存。

  • 經過浮動窗臨時記錄

可點擊浮動窗的第二個功能按鈕,臨時記錄日誌。記錄完成後,下一次自動記錄的時間調整爲1小時後。
浮動窗

謹言警句

警句
此模塊提供警句的維護、輪播功能:

  • 可增長,修改,刪除記錄
  • 可設定記錄的輪播排序值
  • 可設定記錄是否顯示(是否排入輪播列表)

警句會按順序自動輪播,每30分鐘播放一條。警句播放後可手動關閉,不關閉的話1分鐘後自動關閉。出如今屏幕上的位置隨機。
警句播放

浮動窗、托盤、自啓動
爲了提供使用交互的方便性,程序提供了浮動窗和托盤圖標功能:

  • 系統啓動後即打開浮動窗,浮動窗在屏幕的右上角

浮動窗
浮動窗的左側 || 可按住拖動調整浮動窗的位置;右側有兩個按鈕,分別是:打開任務管理,和記錄工做日誌。

  • 程序最小化時,程序會自動收入到屏幕右下角托盤區,點擊托盤圖標可從新打開程序

托盤圖標

  • 此工具做爲平常經常使用工具,可設置爲隨電腦自動啓動,設置方法爲:打開系統菜單的設置窗口,勾選「開機自啓動」後保存

設置
自啓動

注意:若是是Win10系統,須要將程序以管理員身份運行,才能成功設置爲自動啓動。
自啓動



講到這裏,工具的功能已經講完了。若是對源代碼不感興趣,但對此工具備興趣的朋友,可直接滾動到文章末尾,掃描二維碼關注微信公衆號,而後在後臺回覆「工做助手」,可得到程序的下載連接。

程序如何運行?

  • 程序爲綠色軟件,解壓後可直接雙擊運行文件:BL.Open.WF.WorkAssistant.exe,或者以管理員方式運行(如上圖)
  • 只支持Window系列操做系統,Mac,Linux下不能使用
  • 此工具全部功能都在電腦端,適合長時間使用電腦工做的朋友,若是不經常使用電腦工做,那可能用處不大



程序源代碼




下面是程序員關心的內容。

本程序由5個項目構成。4個基礎類庫項目 + 1個Winform項目。4個基礎類庫是從公司產品框架中分離出來的基礎類庫,是頗有實用性的基礎類庫代碼。

解決方案

BL.Open.Core 核心類庫
在覈心類庫中包括:

  • Aspose.Cells 封裝
  • EmitMapper 封裝
  • log4net 封裝
  • 分頁功能
  • 經常使用類型擴展
  • 模型(Model)擴展

BL.Open.Core.EF EntityFramework6.0 基礎類庫
在此類庫中包括:

  • EntityFramework.Extended 擴展

支持直接更新到數據庫的語法,而不是EF的先提取再提交,好比:
context.ass_in_changebill.Where(c =>c.BillId == billId).Delete();

  • CodeFirstStoreFunctions 支持

此爲EF對數據庫的自定義函數的支持

  • EF的功能擴展

好比RemoveModifiedStatus(),用於批量設定Model中不更新的字段。還有EF事務擴展、EF簡單倉儲模式(Repository)等

BL.Open.Core.SQLite Sqlite 基礎類庫

在此類庫中包括:

  • 對Sqlite的中文支持

好比根據C#中的中文字符串查詢時,要讓Sqlite可以查出正確的數據,須要在C#中實現自定義函數。

  • 提供了一批Sqlite自定義函數

由於Sqlite數據庫自己功能較弱,因此其餘DB中有的不少數據庫函數都要自定義實現。

BL.Open.Core.WF Winform 基礎類庫

在此類庫中包括:

  • 引入了WeifenLuo UI框架

這是本程序使用的UI框架

  • 一些UI自定義控件
  • 經常使用數據庫控件的擴展,好比DataGridView,ListView的功能擴展

BL.Open.WF.WorkAssistant 工做助手 項目庫

項目庫中目錄說明:
目錄說明

目錄說明

具體到業務模塊中,有哪些有價值的東西呢?我想這些內容應該是值得關注的:

  • 本項目中,使用EF能夠順暢的操縱Sqlite數據庫

EF官方只支持SQL Server, 而對Mysql,Oracle這種大規模數據庫的第三方支持也還比較到位。而對Sqlite這種小型數據庫的支持,則不是很好。本項目解決了EF支持Sqlite中的多個關鍵問題,用起來仍是比較順暢的。

  • 新的數據綁定模式

由於使用了EF這種ORM,因此對於DataGridView的使用能夠徹底脫離DataTable,DataSet這種老舊的實現模式,而是採用ORM的實現方式,使用List 代替了DataTable。你們能夠看到,如何順暢的實現List數據綁定到DataGridView,它用到了List ,BindingList 等類。

  • 熟悉WeifenLuo UI框架的使用
  • 完整的列表窗口 + 數據編輯窗口 的交互方式的經典實現


得到方式

只獲取程序

獲取方法:

  • 掃描下面的二維碼,關注微信公衆號
  • 在後臺發送文字 「工做助手」,便可得到程序的下載連接

獲取源代碼

獲取方法:

  • 掃描下面的二維碼,關注微信公衆號
  • 將公衆號中的同篇文章分享到朋友圈,並對分享後的朋友圈截圖(部分截圖便可)
  • 在後臺發送分享的截圖,管理員確認後會發送源代碼的下載連接



微信公衆號 掃描二維碼關注

相關文章
相關標籤/搜索