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