程序员如何打造自己的知识库(2)——架构设计

全栈 shanhuhai 4847℃ 0评论

上一篇我们讨论了程序员积累知识的重要性,这些知识我们称之为资产,对于程序员来说资产大概有 “代码片段”, “笔记”, “链接”。我们讲了实现这样一个知识仓库的大概思路,它必须要可以“随存随取”,因为程序员都很懒,你必须要很低成本的让他能记录,记录才会更容易发生。


架构设计

下面我打算开始着手实现这个项目,简单的架构图如下:

回眸架构图

这是我计划的实现方式,当然你可以用自己的方式来实现。

首先整个架构分为三个部分:

客户端:

由于程序员的工作环境不是在 IDE里码代码, 就是在浏览器里找资料,要不就是在终端里敲命令,所有先做三个端基本上都能覆盖掉大部分的工作场景了。
浏览器端写一个chrome扩展, 终端用 golang写一个二进制工具来实现,IDE 先不实现, 不过Alfred 可能会实现一下,看后期有没有朋友想加入进来搞了,可以支持更多的端,甚至手机客户端。

接口层:

“接口层”将所有端的接口统一到一起,提高代码可复用度,提升系统可维护性。

服务层:

服务层提供各种基础服务, 服务层的服务互相独立,不耦合,方便后期维护和扩容,

  • 用户系统是必不可少的;
  • 存储服务用来存储我们的笔记,链接,代码,计划还是用Mysql,稳定一些;
  • 搜索服务计划用Elasitcsearch,这是目前最流行的开源搜索系统了;
  • 爬虫计划自己写,其实目前需要的能力很简单,能将一个链接抓取过来就行了,不过可能会比较麻烦的是,如果是墙外的链接,爬虫可能要走代理;
  • 自然语言处理,这块需要做的是对文章关键词的提取,然后对爬虫爬过来的数据要做清洗。

开发计划

计划先实现服务层,我会做一层测试,然后做接口层,最后再做端,可能感觉是这样顺手一些。
如果顺利的话,明天会在github 上开坑,欢迎加入。

转载请注明:大后端 » 程序员如何打造自己的知识库(2)——架构设计

付费咨询
喜欢 (4)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址