CompHub番外篇:如何借助Notion进行独立开发

CompHub是什么?

CompHub是一个能够将散落在各处的比赛进行聚合,以用户友好的方式重新展示的工具。当前已支持了数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。

CompHub基于Notion进行开发,主页如下所示,更多体验可进入CompHub主页

CompHub主页的一部分

Notion能够帮到什么忙?

一个idea的落地,可拆分为立项、设计、开发、推广和盈利,独立完成这些环节的人,我们称之为独立开发者。对于独立开发者来说,以最小的成本、最快的速度将idea变为MVP(最小化可实行产品,Minimum Viable Product)显得至关重要。君子生非异也,善假于物也,站在前人的肩膀上,能够摘到更高的果子,利用好现有的工具无疑能够加速将idea变为MVP的过程。而Notion便是一个不可多得的好工具。

我初识Notion是将其作为第二大脑进行知识管理,随着对Notion了解的深入,越体会到它的强大。Notion的Slogan是“One workspace. Every team.”,显然,它是一个知识管理和团队协作工具,这类工具在市场上不胜枚举,但作为一个从2016年开始,至今估值百亿美金的产品,肯定有其独特之处。在我看来,有以下几个优点:

  • 专注内容,排版简洁。在段间距、字号、字体等外观选项上,用户并没有太多选择,从而只需要关注于内容本身即可;另外通过Notion提供有限的排版样式,无需过多的操作便可得到简洁的界面。
  • DataBase及多视图展示。提到DataBase,我们一般想到黑压压的命令行界面和望不到头的SQL代码,而Notion则提供了一个可视化的数据库,通过鼠标点击即可完成增删改查操作,基本能够满足日常的轻量使用。进一步地,Notion还提供了DataBase的不同展示视图,包括表格视图、日历视图、列表视图、看板视图、画廊视图……基本能满足常见的展示需求。
  • 开放的API。国外的产品大多有开放API给开发者二次开发的好习惯,通过Notion的API,开发者可以用代码批量地完成DataBase的增删改查、控制界面的显示效果。
  • 丰富的第三方开发工具。虽然官方提供的选项有限,但广发开发者的想象力是无限的,NotionPet、indify等第三方平台提供了丰富的组件(对比国内外Notion组件库哪家强?);由于API的开放,也有不少为Notion开发chorme插件(Notion 的插件介绍和使用)。

通过以上的分析,我们可以很容易想到:Notion可以充当平常开发中“数据库”和“前端展示”的角色!

如何用Notion实现CompHub?

借助Notion完成CompHub开发,主要分为四个步骤:

  1. 数据抓取:从多个平台收集比赛的信息
  2. 数据存储:将每一场比赛的信息作为DataBase中的一行,通过调用Notion API存入指定的DataBase中
  3. 界面展示:在Notion中选择合适的DataBase视图来展示数据库中的数据
  4. 页面分享:通过将Notion页面进行分享,生成分享链接,别人便可以通过这个链接访问到此页面

第一步:数据抓取

数据抓取所涉及的内容与Notion无关,这里不做过多介绍。

第二步:数据存储

关于如何创建和授权Notion开发账户,网上已有很多资料(如:以全新的 Notion API,尝试全新的记账方式),这里不做过多介绍。

Notion目前提供的API涵盖了对DataBase、Page、Block、User、Comment…等粒度操作,文档完整易懂且有丰富的例子,通过这些API即可对DataBase的增删改查。

这里想着重介绍Notion的一个利器——Formula

Notion Formula

试想,如何实现“倒计时”功能?如果是自己写前端,可以用JS实现。在Notion中,则可以用到Formula来实现。

Formula作为DataBase中的一个列属性,它能够将其他属性的值作为输入,设置指定的运行逻辑,展示最终运行的结果。像上面提到的倒计时功能,可以通过调用dateBetween函数,输入当前的时间和比赛结束时间,将二者相减,便可实现“比赛结束倒计时”功能,如下图中DayLeft字段所示,这样得到的DayLeft的值每天都会自动改变。

倒计时只是冰山一角,Notion中有丰富的函数来满足常用的操作,在下图中,对于不同进度的比赛,CompHub通过Formula属性将关键信息进行外显。

第三步:界面展示

通过Notion自带的展示功能可以满足大部分的展示需求,另外一些个性化的需求可以通过第三方工具来满足。

DataBase视图

多种视图展现DataBase是Notion的一大特色,开发者可根据不同场景选择合适的视图。比如在CompHub中,为了让用户快速知道当前有哪些可以报名的比赛,选用了“画廊视图”这一种图文卡的方式展示比赛的关键信息,当用户想自定义查询目标比赛时,选用能够展示条数更多的“表格视图”来展示。

数据类比赛的图文卡展示

OJ类比赛的图文卡展示

数据类比赛的列表展示,用户可以方便地过滤比赛的平台

OJ类比赛的列表展示

第三方插件

前面提到,由于Notion的开放,吸引来了不少开发者为其开发第三方工具。比如站点访问统计、点赞等功能,都可以找到合适的第三方插件实现。

NotionPet平台提供的组件

第四步:页面分享

基本功能开发完毕,已经完成的页面如何分享给别人访问呢?前面说到,Notion是个团队协作工具,所以我们可以利用它的文档分享功能。另外升级成Pro用户还可以让搜索引擎收录该页面。

Notion有什么缺点?

以上通过介绍CompHub的开发流程,展示了Notion的诸多优点。为了让大家对Notion有一个全面的了解,这里也列举一些我在开发CompHub过程中体验到的Notion的缺点:

  1. 平台随时可能改变产品策略。Notion作为一个商业公司,为了追逐效益可能会对现有的产品策略做调整,甚至将现有的免费功能变为收费功能,这些都无可厚非。开发者置身事内,对平台策略的调整毫无还手之力。像我之前使用的国内某个Notion像素级模仿产品,它甚至会将文档的“正文搜索功能”变为收费功能,都不知道后面会做出什么事情来。所以最好依托大平台进行开发,他们一般现金流充足,用户人数多,不会轻易改变基本的产品策略。

  2. 对用户体验问题的优化能力有限。Notion在CompHub项目中充当了“数据库”和“前端展示”的角色,但开发过程中则存在一些差强人意的地方,比如:官方宣称的API的QPS为3,但实际体验中时不时会碰到超时的情况;官方虽然没有介绍DataBase的性能,但对于CompHub中一个两千多场比赛的DataBase,实际体验下来感觉查询的耗时并不低。如果是自己搭建服务器进行开发,这些用户体验问题都能够自己解决。

  3. 难以进行搜索引擎优化(SEO)。前面提到,在进行页面分享时,升级为Pro用户,便能让搜索引擎收录该页面。但在实际体验中,用Google搜出来结果里Notion结果的占比很少,也意味着Notion这个站点的权重可能并不高,这对产品推广多少有些限制,而国内的搜索引擎甚至可能都没有收录Notion的内容。这一点可以通过将Notion上的内容同步搬运到国内内容平台来解决,比如CompHub会将最新的比赛信息在公众号、知乎、CSDN等平台进行发布,这些平台的页面会收录在国内外的搜索引擎中,且这些站点的权重也很高。

  4. 小众的个性化功能难以实现。虽然Notion有丰富的第三方插件来满足一些通用的个性化需求,但相信大多数产品都有一些非常小众的个性化需求,这一点则很难在Notion上实现,比如复杂的动画交互……

以上这些缺点,都是基于Notion是一个开发工具而讨论的,但这多少有些苛刻了,毕竟Notion只是一个知识管理和团队协作工具。

写在最后

一个Idea刚从脑中冒出来时的欣喜若狂,到接下来苦思冥想地确定MVP和奋笔疾书地Coding,到最终落地后能够为他人提供便利和价值。这个凭借自驱动力创造正反馈的过程,它所带来的成就感,是在日常工作中难以获得的。从前,一个手艺再好的木匠,它的作品也只能为村子里的人提供价值;而如今在互联网时代,我们通过仔细观察发现小众需求,创造产品满足需求,最后可以通过互联网将我们的产品传播给需要的人,这是个伟大的时代。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值