最近开发了一款适合自己用的大纲笔记软件 Awesome Outliner。这篇文章分享自己为什么要开发这样一款软件。
缘起
开发者在开发软件,阅读开源代码,看文档和博客学习技术,准备面试资料的过程中,会经常借助笔记类软件或者博客来整理自己的思路,将学到的知识进行归档,将自己的经验和想法进行归档。每一位开发者都有着自己喜欢用的笔记类软件,或者写博客来进行归档。
对于我个人而言,我最开始用的笔记软件是有道云笔记,后来换到了Microsoft Notes, 后来换到了大纲类笔记软件幕布。在使用了大纲类笔记软件之后,我感觉到自己的工作效率有了明显的提升。后面我会结合我工作中的常见的场景来分享为什么大纲类笔记软件提升了我的工作效率。以及现有的大纲笔记软件还有什么满足不了我的需求的地方。
场景
场景一:看文档和博客学习
对于某项新技术的刚入门者,在开始入门的时候,总会免不了要看大量的文档和博客来进行学习。在学习的过程中,如何对知识进行归档,方便后面进行查阅和巩固呢。
有的人偏好写博客,用写博客的方式来学习新技术有很多好处,比方说可以博客易于传播,互联网上面的其他人看到了或许也对他们有帮助。
但是对于我个人而言,用写博客的方式来学习新技术不是适合我的方式,因为在学习过程中很多知识都是官方文档里面或者其他人博客里面写了很多的,我如果在学习过程中还把这些东西写成博客,感觉是一种重复和简单搬运,对我而言价值不大。而且博客以平铺文字的展示方式,对于我后面在查找和复习的时候,依然不能够帮助我快速的查看要点。在尝试了市面上很多笔记软件之后,我选择了大纲类笔记软件来应对看文档和博客学习新技术这个场景。
大纲类笔记软件主要分析两个: 幕布和DYNALIST。
幕布
首先来看幕布,幕布是国人开发的outliner软件,覆盖网页,PC,Mac,iOS,Android多平台,可以说是全平台覆盖。
下面看我在学习react的过程中使用幕布记的一些笔记:
以react 生命周期这个条目在作为示例,大纲笔记以非常直观和条理清楚的形式展示了知识结构,可以快速的展开折叠进行查阅和复习。
以学习react技术为例,可以把关于react的所有知识点都放到同一个文档中。在编辑的过程中又可以进入某个子项,在视图中显示以这个子项为根节点。
在文档编辑器的上方(我框出的红色区域),可以跳转到上层的任何节点。
幕布支持直接复制剪切板的图片到编辑项里面。
支持以思维导图的方式进行查看
单个条目还支持添加描述项
总结来说,幕布的优点多多,但现阶段也还是有一些功能没有,比方说对于单个文档,不支持收藏文档内部的某个条目,对于条目的描述项,把IDE里面的代码或者网页上面的代码复制进去,所有的代码高亮信息会丢失,所以我在使用过程中贴代码一般都会用截图的方式。
DYNALIST
DYNALIST 相对于幕布,我认为有价值的功能有支持收藏文档内部的某个条目,其他方便大同小异。把IDE里面的代码或者网页上面的代码复制进去,同样所有的代码高亮信息会丢失。
场景二:辅助阅读自己不熟悉的代码
在阅读开源项目的代码时,刚开始的时候,对代码里面参数的含义,函数的意义,以及函数之间的相互调用关系可能都不是很清楚。
我在阅读开源项目代码的时候,会使用大纲笔记软件辅助我更有效率的搞清楚这些。
比方说我在阅读d3.js这个开源项目的过程中,使用幕布这款软件做的一些笔记,辅助我弄清楚对代码里面参数的含义,函数的意义。
在阅读react源码的过程中,辅助我理清楚render 函数的调用流程
因为幕布和DYNALIST 在粘贴从IDE里面复制进去的代码时,都会丢失代码的高亮信息。用图片来贴代码在使用时总会有点不爽。
场景三:开发软件过程辅助自己整理思路,列todolist
这个使用场景以我自己开发的软件来进行作为例子,可以把大纲笔记软件当todolist来进行使用
不足
虽然大纲笔记类软件极大的提升了我工作和学习的效率,但现有的大纲笔记软件也有很多我想要的功能暂时还没有实现。比方对于我个人而言,特别有用的粘贴代码的功能,以富文本编辑器的形式来编辑描述项的功能。
最后
为了实现自己的特别需求,同时为了将这段时间自学react 和各种前端开发的技术得以运用,我自己开发了一款满足自己需求的大纲笔记软件。我暂时给这个软件取了个名字叫Awesome Outliner. 这款软件目前已经完成了部分功能,但还处于开发当中,很多功能还不完善,后面会慢慢添加。软件的下载地址是https://github.com/awehook/awesome-outliner-package/releases。软件的具体使用说明见https://github.com/awehook/awesome-outliner-package 里面的README。
软件的界面长这样:
我会把开发这款软件过程中所开发的一些库开源出来,但软件本身的代码目前没考虑要开源。目前开源了一个思维导图的库blink-mind-react,这个库目前状态还没有稳定,还在继续添加新功能和调优。