#2: 如何实现多人协作功能,在macOS上如何快速搭建自己的开发环境

2019/11/15 08:52

如何实现多人协作功能

最传统以及多人写作的文本编辑器采用的算法多为 Operational transformation

OT Explained对OT算法提供了可视化演示。

🇬🇧Figma是如何设计多人协作功能的?

Figma团队针对设计应用特有的需求,调研了OT、CRDT 方案。最终基于CRDT算法进行了修改,改为有中心,多CRDT结构。

🇨🇳实时协同编辑的实现

这篇是2014年的文章,介绍了现有的协同编辑现有的实现方案,对各个方案的基本原理解释的不错。

🇨🇳在macOS上如何快速搭建自己的开发环境

搭建开发环境主要分为三部分:

  • 管理与同步所有的配置
  • 初始化各种配置。环境变量,shell、ssh配置等
  • 安装常用软件。命令行工具和App

管理与同步所有的配置

我在Google Drive中创建一个 dotfiles 的文件夹,里面的配置文件软链到目标目录下。这样修改配置文件时,能够立刻同步到网盘中。当然用iCloud或者DropBox也没问题。

之所以没采用 git 主要出于两个原因:

  1. 我希望在修改配置后能立即同步,如果其他设备也用网盘同步,无需任何操作立即生效。
  2. 不需要历史记录

初始化各种配置。环境变量,shell、ssh配置等

dotfiles 中放一个 bootstrap.sh脚本,里面包含:

  1. 请求 sudo 权限
  2. 安装 Xcode Command Line Tools
  3. 安装 HomeBrew
  4. 建立配置文件的软链,或者拷贝配置文件到目标目录
  5. 安装常用软件。

对于 dotfiles 怎么管理,也可以看看这个repo:Awesome dotfiles

安装常用软件

几乎所有软件都通过 Brewfile 维护。这个文件里包含:

  • 使用 brew 安装的命令行工具
  • 使用 brew cask 安装的App
  • 只能通过 App Store 安装的App。可以使用 mas

只需要 brew bundle --file=Brewfile 即可安装所有。

如果希望实时更新 Brewfile,也可以在安装软件后,通过 brew bundle dump 生成 Brewfile。

小工具推荐

exa: 一个使用Rust编写的现代版 ls 。可以查看文件的git状态,速度也更快。可以作为 ls 命令的 alias

ripgrep: 一个使用Rust编写的行搜索工具,比现有的大多数工具都要快。可以替代 thesilversearchergrepack

CLI: improved: 这篇文章中也介绍了很多比系统自带更好用的命令行工具