工作开发环境搭建

几年时间撰文诸多,描述了各种不同语言的环境配置指导,但是对于Mac OS平台没有统一描述过较为整体的配置。一来是因为迄今为止的三段正式工作经历当中前两次都是要强制使用Windows平台做开发,并且只有PC机可以选择;二来是因为我自己的非正式工作经历(比如开发Lambda、背单词APP等),只用到了EmacsXCode单一的工具和环境。当下的工作中终于可以选择MBP了,也因此有契机总结一下全局视角的开发环境。(关于其它mac软件环境配置,参考开源创意软件常用软件

做工具的主人,而不是奴隶

Minimal Emacs for Haskell

做工具的主人,而不是奴隶

我始终觉得工具越是开箱即用越好,曾几何时,这个赞誉属于过Macbook。在开发工具领域,很多优质的商业化集成开发环境就是好的样本,诚然这样的工具并不是针对每一种编程语言都随处可见。不同的语言需要不同的理解和优化,好的IDE需要投入巨大的成本去开发。所以很多小众的语言依然需要我们自行配置开发环境。

以上为自我引用。

工欲善其事,必先利其器

逻辑很简单,我需要配置如下几个层面的环境:

  1. 硬件基础设施
  2. 系统本身的环境,包括VPN(大家都是面向Google、Stack Overflow编程)等
  3. 程序语言环境
  4. 开发工具与辅助工具的环境
  5. 流程图与文档整理、写作工具的安装
  6. 效率与管理工具的安装

硬件基础设施

  • 电脑: rMBP「Mid 2018 15-inch」, rMBP「Late 2019 16-inch」
  • 键盘: HHKB pro 2「白無刻」

系统环境

最新版本的macOS已经配备了zsh终端。比老版本的好用一些,系统的配置最重要的两个分别是HomebrewVPN,这里不详细说VPN,简单提一提:很多协议已经不能用了,到2021年为止,我在使用的协议是VMessbrew的安装如下:

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

程序语言环境

macOS默认包括LLVMPython

大多数语言的安装

大多数语言有一个版本管理器和包管理器,比如node环境内的nvmnpm,其他语言列举如下:

  • Haskell: 在官网按说明使用ghcup安装Glasgow Hasekll Compiler,然后使用stack进行包管理
  • Ocaml: 使用brew install opam安装opam,同时管理版本和包
  • Rust: 使用下面的命令安装rustup
1
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Node: 使用brew install nvm,而后brew install npm,剩下的自行按需安装
  • Scala: 安装JDK,而后brew install sbt
  • Scheme: brew install mit-scheme
  • TypeScript: npm install typescript --save-dev
  • Prolog: 这里使用一个商业授权的实现SICStusProlog 4.3.2

二进制安装包

  • Java这类去到官方网站直接下载JDK来安装
  • IsabelleCoq去官网下载安装包

开发工具与辅助工具的环境

开发工具环境

辅助工具环境

  • Diff工具Meld: brew install meld
  • CodeRunner 简单快捷的运行很多语言
  • Github Desktop Github代码托管
  • SourceTree Git/Hg 版本管理工具,Atlassian出品
  • Tower - 比 SourceTree 更好用,商业付费
  • 数据库访问:Jetbrains的DataGrip

流程图与文档整理、写作工具

文档相关

  • Dash 技术文档查询
  • Zotero 文献整理APP
  • Scrivener 最强大的学术文献、小说写作软件
  • MacTex 如果常写学术论文,这个是必备的,完整版包含了很多好用的写作工具,如:TexShop
  • ShareLatex 在线的Tex工具包

一般办公与大纲写作

  • M$ Office全家桶,OneNote可以作为EverNote替代者(出于信息安全考虑,很多公司禁用)
  • Emacs的org mode,非常强大
  • OmniOutliner,商业版的org mode

流程图与屏幕录制

  • OmniGraffle,流程图与矢量图形绘图软件,Mac上最好用的制图工具,Mac/iOS独占
  • LICEcap 好用的屏幕录制工具

效率与管理工具

  • OmniFocus,最好的GTD工具
  • OmniPlan,甘特图项目管理
  • iStat Menus,管控机器参数
  • Transmit 服务器文件管理
  • 一些大公司内部通常会有自己的邮件、沟通、事件提醒工具,比如阿里/蚂蚁是钉钉

Imandra IDE - VSCode