代码改变世界

分享一个效率工具的程序和源代码

2019-01-24 17:35  圣殿骑士18  阅读(1302)  评论(3编辑  收藏  举报

前言


今天和大家分享一个效率工具,并分享运行程序和完整源代码。这个工具是辅助管理我自己的日常工作而开发的,从06年开始开发第一版,已经持续使用十多年,现在仍然在使用和改进中,这说明这个工具本质上是有效的,所以才能一直坚持使用和优化。
在最近,我又用C#和Winform进行了重写。本来我想用WPF或者Electron重写,这样能把界面做的漂亮一点,或者能实现跨平台。但因为工作繁忙,确实难以抽出很多时间。最后从实用的角度考虑,还是用传统的技术重写了。
此工具经过多个版本的迭代,一直在做减法,把非核心的的功能都砍掉了,只保留了三个功能:任务管理、工作日志、谨言警句。


工具历史


此工具最初是我在部门经理岗位上开发的。因为平时既有开发工作,也有些管理工作,很多事情比较杂,比较细。后来我又到了产品经理的岗位上,沟通的事项更多。它曾经的功能就比较复杂,包含了:计划、任务、绩效、便签、控制、日志等功能。

旧版本

图:曾经的旧版本

但这么多年下来,在不断的使用中,做了多次改版。我确实发现了做一个“产品”的真理:“少即是多”。不管原来开发的功能多细致,一般在我到了新的岗位上以后,可能大部分功能都逐渐不再用了。因为工作内容变化了,所要使用的效率工具也会随之变化。因此能长期一直伴随你使用下来的功能,才是你的核心需求。这也说明,产品如果只是功能的堆叠,而非核心需求的功能,终究会逐渐被淘汰。
也基于这种想法,从第二版开始,我逐渐做减法,回归核心的需求,将边边角角可以用其他工具配合的功能都撤除了。
最新用C#重写,只保留了三个十多年来一直在使用的核心功能:

  • 工作任务

工作任务采用了四象限工作法,将工作内容分为:重要&紧急,重要&不紧急,紧急&不重要,不紧急&不重要。

  • 工作日志

强制每一小时填写一次工作日志,每天可回顾和总结自己的工作内容。

  • 谨言警句

人的成功不只在于努力,而在于观念,更在于习惯。努力终会松懈,而习惯才是可以持之以恒的。所以一些智慧的句子,可以记录下来,系统进行轮播,每半小时播放一条,让好的观念反复播放,植入你的大脑,让习惯成自然。


新版本功能


新版本

任务管理

任务管理的分类非常重要,经过我自己的实践,我觉得四象限工作法是比较有效的方法。在此模块中,我也特意标注了各象限中的任务类型应该采取的相应处理策略(个人理解管理学者的观点后自我总结的):

  • 重要&紧急:关键词是 “高效处理”
  • 重要&不紧急:关键词是 “及时计划”
  • 紧急&不重要:关键词是 “快速处理”
  • 不紧急&不重要:关键词是 “可以不处理”

记录的功能本身很简单,甚至没用什么功能强大的编辑器,因为这并不重要,重要的是工作方法。根据四象限工作法,合理分类安排自己的工作任务,完成工作后从各自分类里删除任务即可。
任务管理是常用功能,在程序最小化时会隐藏到系统右下角成为托盘图标(点击托盘图标,可重新打开程序),或者点击浮动窗上的第一个按钮,也可重新打开程序。
浮动窗
在系统启动后,浮动窗会显示在显示器的右上角。

工作日志

工作日志

工作日志模块提供了日志录入、查询和分析功能。
对于日志的录入,系统提供了两种渠道:

  • 系统定时录入

每一小时系统强制要求录入,不填写日志内容不能关闭。可输入项目有:日志内容,工作评价,工作效率(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框架的使用
  • 完整的列表窗口 + 数据编辑窗口 的交互方式的经典实现

获得方式

只获取程序

获取方法:

  • 扫描下面的二维码,关注微信公众号
  • 在后台发送文字 “工作助手”,即可获得程序的下载链接

获取源代码

获取方法:

  • 扫描下面的二维码,关注微信公众号
  • 将公众号中的同篇文章分享到朋友圈,并对分享后的朋友圈截图(部分截图即可)
  • 在后台发送分享的截图,管理员确认后会发送源代码的下载链接

![微信公众号](http://wpimages.bossiot.com.cn/%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BA%8C%E7%BB%B4%E7%A0%81.jpg) 扫描二维码关注