• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

数码时代的效率生活

开发技术 开发技术 2周前 (09-13) 20次浏览

0. 引言

目前,有太多的信息都以电子资料的形式存在,也有太多的工作和生活被绑定在线上。在这个连货币都马上要数字化的时代里,如何打理好自己的数字生活,保护好自己的数字资产,很重要。

1. 需求分析

作为一个非典型程序员和深度学习炼丹师,平常又会逛逛论坛,写写BLog,代码文档是最常要处理的两类数字资料。
此外,业余还喜欢拍照,大量的照片也需要妥善保管。

总结核心需求如下:

  • 资料在必要时较易实现本地化

  • 资料在必要时较易实现跨平台迁移;

  • 对于不同类型的资料,分场景进行保存和备份;

  • 尽量提高资料保存和备份的自动化程度。

1.1 本地化

本地化的意思是指,我可以把原始格式的资料拉取到本地磁盘上。这也是针对于云服务越来越盛行的现状所说。

在合理的场景中,在线化、上云是大势所趋,我也是拥护者和受益者。工作中,在需要协作的场景下,我已经不止一次地去推动如腾讯文档、禅道等工具的使用,来取代老旧的Office式项目管理模式。

但对于需要积累和沉淀的资料,全部在线化,我是心怀担忧的。

我不怕被云端绑定,但我怕被云端绑架。

我希望能够享受云端的便利,但在最坏的时刻,还有一个托底方案,能够把所有的原始资料掌握在自己手中。

1.2 跨平台迁移

既然我不希望我的资料被云服务器绑架,类似地,我也不希望我的资料被某一款软件或系统所绑架。

举例来说,我自认是一个喜欢整理和总结的人,但对于《印象笔记》这款号称第二大脑的笔记软件,我一直是采取回避的态度。

它太封闭了,除非用一些黑科技手段,你很难把你存储在里面的资料原封不动地搬运出来。你使用得越多,你就被套牢越深。假如有一天它的系统崩溃,或公司倒闭,对你来说就是灭顶之灾。这种头悬利剑的感受很不好。

再比如,一款常用的生产力工具,如果是某操作系统独占(MacOS,说的就是你),那我一般不会选择用它,我会优先选择Win/Linux/Mac跨平台兼容的软件。

目前,我在办公室的工作终端是Win10,还有一台Linux的远程服务器,在家的电脑是Ubuntu。为了保证单位和家之间的工作状态无缝切换,工具的跨平台兼容性很重要。

1.3 分类和自动化

代码,文档,数据,程序文件,照片等不同资料的存储要求有非常大的差异。这主要从修改的频率和资料本身的大小两方面体现。

因此也就需要选择不同的方案。我主要会从Git托管,网盘,NAS和移动硬盘四个方面去考虑。

自动化的需求主要是为了对抗人的思维惰性,如果一切都依靠繁琐的手动操作,那么很可能坚持不了多久。

2. 实现思路

2.1 个人知识库

前面说过,我对于把自己称为“第二大脑”类型的软件是回避的。

但对于这种理念,我是十分赞同的,收集-整理-输出,完整经历这一过程,知识才能被更好地掌握。

只不过我愿意多花费一点点时间和操作,自己来掌控这个流程。来实现前述的“本地化”,“跨平台”等原则。

2.2 资料分类

经过分析,将资料按如下类别进行分类:

类别 特点
代码/笔记/文档 重要性高,修改频繁,文本化
其他文档资料 多样化,零碎
大体积数据 修改少,持久保存
  • 代码、笔记、文档:所有靠自己码出来的文本类资料,含金量最高。所有特性都指向了一种最合适的保存方式,那就是Git。有保密要求的,托管在公司内网Git;无保密要求的,我会在Github/Coding等多个平台同步托管。

  • 其他文档资料:工作/生活中有大量这类文档,比如下载的各种论文/电子书,工作中的各种PDF/WORD/EXCEL,文件增删较为频繁,但文件内容本身修改频率并不高,这种时候,最合适的应该是同步盘工具

  • 大体积数据:比如照片/视频,大量的样本数据,下载的视频课程,一些需要保留的程序安装文件等,基本没有修改的需求,但需要持久保存,并方便随时读取。我置办了一个小型的NAS,主要用于这类需求。只要能联网,手机和电脑就可以随时随地接入看网课或者翻看以前拍摄的照片和视频。此外,每隔一段时间,我还会将整理过的照片/视频在网盘上备份一次。

  • 最后,大概以每月一次的频率,我会将所有类型的资料在移动硬盘上备份一次,作为最后的保险。

2.3 文档/笔记

工程代码和对应的文档是工作产出要求,而在此以外的文档和笔记,则是个人持续积累和提升的关键,这边专门谈一谈。

对于个人文档/笔记,我采用的是一种去中心化的方案。

说得更直白一点,我更倾向于用最传统的本地文件夹方式来组织和管理,同时利用Git这样的版本管理工具,实现文件的多端同步。

对于现在也很流行的标签式管理体系,暂时没有领会其精髓,在实际操作上往往也需要与系统或软件强绑定。如果未来有第三方的工具能够进行这方面的增强,我可能会尝试一下。

在遵循Git基本规范,操作得当的情况下,所有的文档会在我所有的电脑和多个远程托管平台上保持同步更新,以此达到:

  • 极高的标准化,一处编写,多处使用;

  • 极高的安全性,因为同时损坏或丢失的情况几乎不可能发生。

3. 工具推荐

合理而顺手的工具可以大大提高工作效率和工作时的幸福感。我也很喜欢尝试和折腾一些效率/生产力类型的工具。

为了配合前面提到的所有指导原则和实施思路,下面推荐一些我用过或正在使用的工具。

3.1 Markdown及相应编辑器

大部分程序员应该都很熟悉Markdown。

不Coding但是有码字需求的人,也强烈推荐尝试一下。

这是一个用过后就再也回不去的神器。如非必要,我现在绝不会主动打开MS-Office,因为Markdown太好用了。

Markdown的优点,我总结主要有以下几点:

  • 纯文本,简单快速;

  • 兼容性高,格式统一;

  • 能够被git diff所识别。

缺点可能就是对于复杂的排版支持不够。

概括地说,就是方便写文,特别是技术类文档,但不方便写书。

虽说任何文本编辑器都可以用来写Markdown,但是一个顺手的写作工具还是能够提高效率和舒适度。专门支持Markdown写作的工具软件有很多,这边推荐三款。

3.1.1 VSCode

官方网址

同类型的还有Atom和SublimeText,它们本质上都是代码编辑器,自身或者通过插件扩展,可以实现Markdown的编辑功能。

但使用体验来说,VSCode是最好的,而微软官方的Remote系列插件,则完美符合我的使用需求,只此一项就秒杀了另外两款。

作为一个Vim盲的我,调试代码时再也不用本地编辑后,手动用SFTP上传服务器运行了。

VSCode可以兼容编码和简单的Markdown编辑需求,但体验上跟专门的Markdown编辑器还是有些差距,最主要体现在快捷键的支持范围,以及插入图片等附件时的便利性。如果想要真正体验飞一般的输入快感,你需要下一款。

3.1.2 Typora

官方网址

这个软件在网上的口碑非常好,我自己使用的体验也很棒,目前是我的主力编辑器。

将Markdown这种标记语言的特性和所见即所得的功能整合起来是它的特色。而对于插入图片的操作优化,特别符合人的使用直觉,进一步降低了学习成本。

3.1.3 Mark Text

官方网址

Typora虽然目前免费使用,但它属于闭源软件,等正式版推出,估计会收费。如果软件足够好,我也是愿意付费的,但本着保险起见的原则,我又搜寻到这样一款开源软件,几乎完美实现了Typora的所有优点。

Mark Text在一些细节上可能还需要打磨,但已经足堪大任。我目前在自己的Ubuntu系统中,就是使用的Mark Text。

3.2 Git及托管服务

3.2.1 Git

Git几乎可算是现代程序员的必备技能。但用来做文档的同步管理也是非常棒的,如果只是个人用来管理文档,不涉及分支和协作的话,Git其实很简单,只需要用到非常有限的操作,而且目前也有足够多的可视化工具可以辅助。

3.2.2 Git托管服务

关于Git托管服务,公司内网的本地部署采用的是Gitea的方案。

公网的话,Github是绕不过去的。但鉴于某些原因,Github的登录不是很稳定,传输速度也非常感人,因此,我还会同时托管在Coding和Gitee上,连接稳定快速多了。

3.3 同步盘/网盘

3.3.1 坚果云

坚果云大概是目前国内唯一一款,免费用户也能用得比较舒心的同步盘产品。

Win/Linux/Mac/Android/iOS/Web全平台兼容。

日常办公涉及的文档资料,我都是通过坚果云实现自动同步。只要注意一下不要把特别大的文件放到同步地址下,每个月免费的上传下载额度基本足够使用了。

也有一些别的软件支持同步盘,但功能都有些缺陷,比如不支持多个终端的同步,不能自由设置多个同步地址等,坚果云还是最好用的。

3.3.2 百度网盘

虽然不充会员就特别慢,但是似乎也没有其他更通用的选择了。据说阿里云也要出个人网盘了,希望能带给我们更多选择。

3.4 NAS

目前用的不算标准NAS,是联想出的一款个人云存储。当时买它主要是看中了便宜,首发期间有很大优惠,几乎等于买机械硬盘送NAS。但也满足基本需求了。

后边如果要升级的话,可能会考虑威联通或者群晖的产品。硬件方面的动手能力很弱,就不考虑DIY方案了。

3.5 其他

再推荐一个自己用得比较顺手,觉得很有价值的工具。

3.5.1 Teambition

这原本是一个团队项目管理工具,但其实用来做个人任务管理和日常生活的协作都很好。

还有一些其他类似的在线工具,比如Trello,Worktile,Tower等可以选择。

(1)用于个人

我会把Teambition当做一个便签和TODO-List来使用,用项目的方式分类管理起来。

比如把阅读清单作为一个项目,分为“在读/已读/待读”三个任务列表,每本书作为一个任务,任务详情中可以记录一些简单的阅读情况。甚至看到一些精彩或有用的段落,通过截屏或拍照的方式,把图片上传在备注中,留待后期的进一步整理。把书看完后就可以把任务置为完成。

再比如把Blog写作作为一个项目,想到一个可写的主题就列为一个任务作为备选,任务详情中可以随时记录一些点子和零散的资料。这样,就可以累积起不少素材。写完成篇后就可以把任务置为完成。

自从用了这种方式,读书的效率提高了不少,特别是把一本书读完的概率提高了不少;而Blog的产出效率也提高了。

(2)用于家庭协作

家庭生活中,一些重大的事项其实也可以看作一个个项目,我跟老婆经过一段时间的尝试,也摸索出一种用项目管理的理念来提高生活条理性和规划度的模式。

之前我们还用过微软的ToDo,简单的协作也很不错,比如购物清单,快递备忘等,但是更复杂更长时间跨度的协作管理就感觉有些力不从心了。目前ToDo还在使用中,但仅限于这些短平快的备忘性质任务。

比如把家庭出游当做一个项目,分为“待出行/构想中/已出行”三个任务列表,每一次出游作为一个任务,任务详情中可以记录出游的各项细节情况,比如目的地、住宿预订、车票机票预订、景点门票预订等,还可以把攻略和参考链接附上。回来后,在项目Wiki里,还可以写游记。

以后回顾起来非常清晰明了,甚至系统自动的统计报表功能,可以帮你完成出游的数据统计。

其他比如买房/装修,娃上学择校等,都可以列为项目,进行更有条理的规划。

4. 关于写作

看到过有人说,程序员都应该学会写作,都应该去写博客。话虽说得绝对,但我觉得有道理。

代码是一种语言,日常用语也是一种语言,只不过一个是要让机器读懂,一个是要让人读懂。而把语言和逻辑组织好,并表述清楚的能力,其实是相通的。

并且,在一定规模的团队协作项目中,使代码能够让人看懂,可能比让机器看懂更重要。让人看不懂的代码,就算当时写得再精巧再完善,无法维护始终是致命伤,不说其他人接手,就算作者自己,可能过一段时间也回忆不起来当时的解决思路。

之前折腾过一段时间的静态博客工具Hexo,利用Github和Coding的Pages服务去生成个人博客网站。后来又玩过Hugo,也是一个类似的工具。现在回头想想,只是为了满足自己动手折腾的好奇心。像我这样在社交媒体上的隐形人,自建站约等于零流量。不如回归一些较为主流的平台,省去维护的精力,用这个时间多写几篇帖子。


喜欢 (0)