1
agagega 2021-01-30 12:13:22 +08:00
我倒是挺好奇 Notion 这种 App 在电脑和手机上如果真的用原生开发的话,工作量有多大,会比实现一个 Web 版难很多吗
|
2
iConnect 2021-01-30 12:22:45 +08:00 via Android
@agagega 原生开发的工作量和实现一个浏览器没多大区别了,还是 Safari+Chrome 两个。
|
3
loveyu 2021-01-30 12:31:52 +08:00 via Android
一直就是用网页端,app 用来临时记录
|
6
ijrou 2021-01-30 12:34:25 +08:00
桌面版的感觉还行,但是手机安卓版的,,,迟钝,,体验非常不好,,,
|
7
ayase252 2021-01-30 12:51:54 +08:00 via iPhone 1
网页端中文打字也卡啊.....
|
8
chiu 2021-01-30 13:11:07 +08:00 via Android
一直用的 Mac/Win 客户端,好像没有相似 issue
|
9
wbing 2021-01-30 13:12:24 +08:00 via iPhone
搞个好点的代理,基本上都能很流畅。
|
10
gesse 2021-01-30 13:17:23 +08:00
可能是你的 mac 要更新了。 更新到 m1 感觉毫无压力。
不过 web 端多 tab 是一个需求。 PS:顺带说一句,现在 evernote 模仿 notion 功能,客户端也整套壳,难用之极,连 cmd+j 键都不支持了。 |
12
DivineRapierH 2021-01-30 15:17:36 +08:00 via iPhone
你这么一说 cmd+c 复制失败我也遇到过,我还以为是自己手残没摁对🤯
|
13
chaleaoch 2021-01-30 16:13:19 +08:00
notion 和 teambition 比 差别主要在哪里?
|
14
cynics 2021-01-30 17:47:21 +08:00 via iPhone
如果苹果全家桶,craft 更好用
|
15
namelosw 2021-01-30 17:51:48 +08:00 4
@agagega 开发个原生的成本, 1+1 远大于 2:
1. 原生本来就很花钱 2. 原生跨平台得弄好几遍, 有的东西很难搞 3. 需求还得跟现在一样, 很多 Rich editor 都是基于类似 DOM 的模型设计的, 有很多地方能偷懒, 用原生重写完全是重造轮子了 4. 写出来很长一段时间也都是 bug 满天飞, 很不好修, 比如网页和客户端复制粘贴之类的细节, Layout 和拖拽和网页行为不一致等等 PS: 编辑器 SAAS 这个领域其实很微妙, 还有一个因素是离线. 很多人因为没原生所以不用 Notion, 还有很多人因为没离线不用 Notion. 很多人用了 bear 之类的东西, 但是那些又没有很好的 collaboration. 因为离线和 collaboration 两个东西放在一起就巨难做: 一般 collaboration 是用 OT 算法写的(比如 Google doc 和所有类似产品, 我不太确定 Notion 是不是已经有了, 但是如果二选一他们肯定会选 collaboration). OT 就是服务器 facilitate 所有客户端来的 event 然后修改给每个客户端 broadcast 的 event 来达到最终一致的效果. 但是这种算法的缺点就是没法离线(比如 Google doc). 另外一种 collaboration 是用 CRDT 数据结构, 是可以自结合的数据结构, 可以离线很久之后自动合并, 能保证最终一致. 但是 CRDT 的问题是每种数据结构都要单独设计, 在大量字符串上面就有一些性能体积的问题, 如何完美解决这个问题现在还是一个学术前沿话题. 之前跟 Fuchsia 系统有点关系的 Xi editor 夭折一部分原因和尝试 CRDT 有关. (不过设计师用的 Figma 的节点是用 CRDT 解决的, 节点比字符串文档单纯一些) |
16
iConnect 2021-01-30 18:34:35 +08:00 via Android
@namelosw #15 OT 就是服务器 facilitate 所有客户端来的 event 然后修改给每个客户端 broadcast 的 event 来达到最终一致的效果. 但是这种算法的缺点就是没法离线(比如 Google doc).
你说的这个原因,导致离线和协作难以实现,想知道 office365 现在是怎么解决这个问题的? |
17
BeautifulSoap 2021-01-30 18:53:24 +08:00
以 notion 公司的体量,我是无法想象如果用原生方式实现一个 notion 全功能客户端的话,他们要多少成本和时间(光一个 API 就做了这么多年,迭代速度堪忧,但也和人少新冠有关,这没法强求)
但我还是希望等今后 notion 成长起来的话,能尝试下原生客户端 |
18
THP301 2021-01-30 19:10:06 +08:00
本来就是一个网页端加一个服务端的事, 在加一层桌面端封装一下肯定效率低很多啊
|
19
Aixtuz 2021-01-30 19:12:06 +08:00
虽然我也期望有原生更好用的客户端,但是想想这个成本代价,估计还是会转嫁到用户费用上的。
|
20
matrix67 2021-01-30 19:14:18 +08:00 2
你们这边主要讲的问题是多人编辑同步问题吧。
我记得听内核恐慌吴涛老师讲到,这个多人编辑本身就是 cap 问题。 from: http://www.alloyteam.com/2020/01/14221/ - C Consistensy,一致性 - A Availability,可用性 - P Partition Tolerance,分区容忍性 假设 A , B 两个人同时编辑文件然后网络断了。 那么在网络分区的情况下,客户端发送请求尝试来对 A 区一个节点进行数据写入,由于 AB 区网络不通,这时候无法同步写入信息给到 B 区节点。 在这种场景下,究竟允不允许当前客户端进行数据写入呢? 1 、如果允许客户端数据写入,那么当前节点的可用性得到了保证,但是由于网络分区,所以网络不可触达,数据无法同步。因此此时是无法满足一致性,也就是分布式系统中,同时访问两个节点,可能会返回不同数据。 2 、如果不允许客户端数据写入,那么当前节点的一致性得到了保证,所有节点数据都是一致的。但是由于数据都无法写入,这时系统显然是 “不可用” 的,也就是可用性无法满足 这就是常见的 CP 与 AP 的组合。 但为什么没有提到 CA 的组合呢?为什么假设都是在允许网络分区的情况下呢?答案是这里的场景是分布式系统,如果不允许存在网络分区,那么显然每次写入数据都可以进行同步,自然一致性和可用性显然得到了保障。但这也不是分布式系统了(也就是不满足 a b 同时编辑的前提了)。 |
21
matrix67 2021-01-30 19:17:25 +08:00
根据陈天的这篇 notion 研究: https://zhuanlan.zhihu.com/p/152964640
|
22
qbug 2022-08-02 01:22:51 +08:00
@namelosw xi-editor 也没有夭折吧,现在 [GitHub 仓库]( https://github.com/xi-editor/xi-editor)仍然是活跃状态
|