个人时间管理系统的设计与实现

留给每个人的时间都是有限的,如何利用好时间是值得考虑和深入挖掘的。

时间管理法

参考番茄时钟工作法和24枚金币时间管理法,我把准备工作分为4大部分:1、活动清单;2、今日待办;3、计时器;4、时间记录表。下面分别说明用途和用法:

1. 活动清单

即To-do List。番茄时钟工作法将todo list拆分成活动清单和今日待办,是一个很好的设计。可以类比于计算机系统中内存和磁盘的设计。

在活动清单中,罗列自己计划要做的事情。可以在任何时间写入1条,正常是自己在计划时写上的,如果是在番茄时钟执行过程中由于中断而写上的,则添加一个计划外(u)的标记。

可以使用单独的纸记录,或者利用手头已有的各类软件工具。

2. 今日待办

即今日的To-do List,和活动清单的todo list的不同点:

  1. 这里记录的是今天计划完成的事项和计划外紧急事项
  2. 每一项需预估出所花费的番茄时钟数,先提前打上方框,在番茄时钟每执行完1次当前事项后在方框中画叉。如果发现完成事项预估的番茄时钟数不足,则需要标记+的数量;如果完成事项发现预留的方框没有用尽,则标记-的数量,用于后续时间记录表
  3. 在番茄时钟周期内被自我内部尝试打断的时候记录一个|,被外部尝试打断的时候记录一个—;然后将新增事项记录到计划外紧急事项或者活动清单的u标记事项。
  4. 每个番茄钟的执行具有原子性,如果真的发生的中断切换,当前番茄钟周期作废

推荐使用便签纸记录

3. 计时器

即番茄时钟。记录工作时间(25min)、小憩时间(5min),可以使用软件(我用的是tomatobar)或者物理钟。

4. 时间记录表

由24枚金币时间记录表和番茄时间工作法的记录表结合而来。

记录每天做的事情,完成/未完成的番茄钟数量,被打算的次数,平均任务处理时间

服务端系统设计

数据设计

一条记录:startTime endTime actionDesc actionType
每天的时间记录的最细粒度为半小时。

交互设计

使用B/S架构。

数据同步

支持数据导出、导入合并。

数据库表定义

先以root用户登陆创建timemanage数据库:

1
2
3
4
create database timemanage;
grant all privileges on timemanage.* to 'wsd'@'localhost'; // create user 'wsd'@'localhost' identified by '190701';
flush privileges;
quit;

接着以wsd用户登陆数据库建表:

1
2
mysql -u wsd -p
use timemanage;

报错与解决

MyBatis执行SQL报错:

1
### Error querying database.  Cause: java.sql.SQLException: Unknown system variable 'transaction_isolation'

原因:MySQL 8及以上版本使用’tx_isolation’替代了原先的’transaction_isolation’,而我正在使用的MariaDB 11则与MySQL 8之前版本对隔离级别定义变量名一致,因此报错。

修复:降级pom依赖中的mysql-java-connector版本:

1
2
3
4
5
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
WebX中有哪些约定 GIMP图像处理教程

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×