今天跟大家唠唠我这几天捣鼓的“内罗”项目,这名字听着挺高大上,就是个个人知识管理工具。
我就是觉得笔记软件太多,要么功能太臃肿,要么界面太花哨,用起来总觉得不得劲儿。就想着能不能自己搞一个,简单、直接、好用,就成我的目标。
我得确定用什么技术。考虑一圈,前端用*,主要是熟悉,上手快。后端嘛本来想用Python的Flask,但后来想想,为追求一点点性能,还是上Go,顺便也练练手。数据库就选PostgreSQL,稳定靠谱。
然后就开始吭哧吭哧地写代码。先搭个基本框架,实现用户的注册、登录功能。这部分没啥难度,照着文档敲就行。重点是笔记的存储和检索。 我希望能够支持Markdown格式,这样写笔记的时候可以方便地插入图片、链接什么的。
- Markdown解析:用的Go的第三方库,mmark,用起来还不错。
- 全文检索:一开始想自己写,但后来发现太麻烦,直接用PostgreSQL的全文检索功能,效果还行。
界面这块,我尽量保持简洁。左边是笔记列表,右边是笔记内容。可以新建、编辑、删除笔记。为方便管理,还加标签功能,可以给笔记打标签,方便查找。
中间遇到不少坑,比如:
- 前端的Markdown编辑器,一开始选个挺好看的,但用起来总有问题,后来换个简单点的,就稳定多。
- 后端的性能优化,Go虽然快,但如果代码写得不也跑不起来。我针对数据库查询做些优化,效果还挺明显。
- 部署问题,一开始直接扔到服务器上跑,后来觉得太low,就上Docker,方便多。
“内罗”基本能用。可以写笔记、管理笔记、搜索笔记。虽然功能还比较简单,但已经能满足我的基本需求。下一步计划是加入云同步功能,这样就可以在不同的设备上同步笔记。
整个过程下来,感觉还是挺有成就感的。虽然累,但也学到不少东西。最重要的是,做出一个自己喜欢的东西,这感觉真不错!
想跟大家分享一些心得:
- 不要一开始就追求完美,先实现基本功能,再慢慢迭代。
- 多看文档、多查资料,遇到问题不要慌,Google一下,总能找到答案。
- 善用第三方库,能省不少事。
- 坚持下去,总能做出点东西来。
这就是我这几天捣鼓“内罗”的全部过程,希望能给大家带来一些启发。下次再跟大家分享其他好玩的东西!
还没有评论,来说两句吧...