如何在工作中提效
背景
日常工作中,我们总是在跟提效打交道,比如研究流程,研究体系,可以很好的帮助开发或者说团队提高效率,但是我们自己什么时候会针对自己的工作流程做优化,针对自己进行提效呢?
获得我们的行为统计
我们每天做了什么事,哪些事情可以有更优的解法,哪些流程可以做更好的优化,我们首先要做的第一步就是对我们自己有一个深层次的了解。
我们工作中会有各种指标对我们进行度量,统计。同样的,我们想要分析自己,就必须要对自己的情况进行一定的统计,统计我们每天,每周,每月在各个工具上花的时间,通过这种方式就可以很好的对我们日常工作有一个初步的了解,最好多进行几个周期数据的观察,这样得出的数据会更客观。
Mac电脑比较方便,自带的屏幕使用时间,就可以帮我们统计这些数据。Windows电脑也许需要找一些平替的工具来进行统计。
分析
有了这些基本数据,我们就可以进行针对的分析,就我自身而言,每天工作耗时排名第一的是浏览器,第二的是企业微信,第三是写代码的工具。排名前三的总计加起来会占用到80%。所以我们要优化的内容,主要是在这三个(类)工具上。
浏览器
第一次看到这个数据的时候我也有点奇怪,我花时间最多的竟然是浏览器,这简直不可思议,但是回想一下,确实如此。现阶段企业内部的工具,例如内部的OA系统,Wiki,工具站点都是以B/S的架构呈现,因此我们要跟这些系统打交道,那就必须使用浏览器了。关于浏览器,再做更细的分析,同样可以分为这么几类。
- 访问站点
访问站点应该是比较频繁的操作了,我们内部的系统五花八门,要把所有站点的地址都记住是不现实的,传统的方式就是利用浏览器的书签,或者用一个记事本进行记录,那么这些方式用起来都略有些麻烦。随着站点的数量增加,书签会越来越难找,记事本的数据也会越来越多,寻找的时候只会越来越慢。
- 访问特殊的页面
这些特殊的页面指的是某些系统特性的页面,例如我常用的webshell
,每个容器的webshell
地址是不一样的,那么就没有办法用记事本或者书签进行记录。
企业微信(IM)
企业微信可以抽象的定义为IM类的工具,企业微信,微信,甚至邮箱都可以定义为这类。
这类的工具从实质上来说能真正意义上优化的并不是工具本身,而是自己使用的方式,如何减少无效的沟通才是这类工具优化的意义。
编码工具
我日常使用的编码工具也是五花八门,Goland
,Pycharm
,VsCode
甚至Vim
。这类生产力工具,想要提效,那么更多的是增加自己对这些工具的熟练度以及编码技能的提升。
我的优化
每个人都可以根据自身的情况做一些定制化的方案,我这里抛出我自己的方案,仅供参考。
关于浏览器的优化
我个人使用的是Alfred
这个工具对我的访问内容进行一些设置,达到快捷访问站点的目的,Alfred
又一个WebSearch
的功能,原本的功能就是快速的进行一些检索的工具,我们把使用场景转换一下,相当于是一个通过某一个特定的key
,映射了一个固定的URL地址,然后还可以自定义的给一个变量。
例如一个平台的地址是http://platform.oa.com
。我们可以在WebSearch
中添加这个地址,映射为pt
,那么使用Alfred
的时候,输入pt
就会自动跳转到这个地址。
这种方式可以很方便的把常用的地址用一个短的代码(文本)来替代,从而减少自己触达某个平台的时间。
从数据结构上来说,这种方式其实就是在大脑中建立一个hashmap
,而我以前记录在小本本上,每次去小本本找地址的,可以归类为是一个list
。hashmap
的检索效率是高的,并且不会因为数据量的增大而变慢。
如果需要访问一些特殊的页面,例如我们的容器平台页面的地址,这类页面会根据某些条件发生变化,因此这里我通过Alfred
的Workflows
来进行快速触达,当然,这里会需要一些编码的基础。可以参考写一个workflow | Less is more (wengyb.com) 这篇文章写一个属于自己的Workflow。
关于IM工具的优化
其实这部分能优化的点比较少,能参考的就是定期分批的处理消息。
按照事项的着急程度,着急的肯定第一时间就电话来催了。这类就只能优先处理,而IM的消息则可以定期来处理,例如几小时,或者用番茄闹钟的,几个周期之后再来处理问题,这种方式可以有效的减少自己做事被打断的情况,能够很大程度的保持思路清晰。
关于编码的优化
编码工具其实更多的看个人的使用习惯,我比较喜欢JetBrain
系列的重IDE
,这种IDE
功能全,配置少,基本上开箱即用。缺点就是比较吃资源,但是这些资源我个人认为是比较值得的,因为这些资源占用后,能够快速并且智能的给你做自动补全,跳转等,相比于VsCode
,使用起来的丝滑程度高很多。
从另一个角度来看,自己日常的代码结构,也是可以模版化生成的。还是按我自己的习惯来,我们写RPC接口经常用到的结构是这样的:
/**
* @Author: svenweng
* @Date: 2022/04/07 19:53:48
* @website: http://www.wengyb.com
*/
import (
"context"
)
// TestDemoRqst ...
type TestDemoRqst struct {
}
// NewTestDemoRqst ...
func NewTestDemoRqst(eq *pb.xxRequest)*TestDemoRqst{
return &TestDemoRqst{
}
}
func (t *TestDemoRqst) checkParams()error{
return nil
}
// Do ...
func (t *TestDemoRqst) Do(ctx context.Context)error{
var err error
err = t.checkParams()
if err != nil{
return err
}
return nil
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
这种结构就可以直接利用Alfred
的特性自动生成出来,自己每次就不需要额外的去重复的写这些公式化的代码了。
另一个优化点则是利用AI写代码。Github
提供的Copilot
插件能够非常智能的给我们做代码的推荐,个人使用了一段时间,效果非常好,编码的效率直线上升。
关于自己写一个工具或系统
我相信大部分的IT从业者都会有类似的想法,但是从实际的使用上来说,体验都比较不好,自己写这类东西大概可以分为两类,1. 命令行工具,2. 一个带有界面的系统。
- 命令行工具
命令行工具使用起来需要先打开终端,然后再进入到特定的目录,然后还得记得住使用的参数,总体使用下来体验非常糟糕。
- 带有界面的系统
这类系统同样比较麻烦,得打开某一个页面,然后点点点到自己需要的地方,然后才能使用,并且编写起来比较费事。
我个人找到的解决方案就是用Alfred
的Workflow
接入脚本,基于Alfred
方便的呼出,可以非常优雅的直接触达我们要的脚本。