1 minute read

选择

这个问题困扰了我很久, 纠结于phabricatorgitlab这两者, 前者使用php开发, 后者使用ruby开发.

gitlab的优势是有prci, 用起来和github基本一样, phabricator的优势是强大的任务管理和bug追踪管理, 附属工具非常多, 而且都很出色.

当然, 我主要的开发语言使用的是php, 但这不是我选择phabricator的主要原因. 主要是强大的任务管理工具, 让我可以把任务管理从trello上迁移过来.

实践

部署phabricator的过程还算顺利, 文档做的非常好, 90%的问题都可以在官方文档中找到.

整体的配置主要分为web, git, email, file, notifications这几个部分, 比较好配置, 只是git配起来步骤有点多而已.

困难

创建项目, 创建任务, 创建代码仓库, 每一步都是那么的顺利. 用起来非常顺手, 这是我的第一个感觉.

不过我还是低估了phabricator的复杂度, Herald, Policis都挺复杂的, Policis随处可见, 配着配着就蒙了, 不留神我的小伙伴就看不到代码仓库了.

Herald一开始以为就是为了跑通代码审计流程而设计的, 后来发现不是那么回事, 功能强大的很.

当然我觉得比较坑的还是AuditDifferential功能, 其实这部分也是phabricator最强大的地方. 顾名思义, 这部分主要是为了实现代码审查而设计的, 但是强大的phabricator提供了两套审查方案.

  • Differential代表了pre-push我称之为代码审查, 需搭配Arcanist

  • Audit代表了post-push我称之为代码审计, 需搭配Herald

这部分绝对是让人最纠结的部分, 我最开始尝试了代码审查, 但是ArcanistWindows并不是非常好用, 而且, 类似pr的机制需要项目负责人专注于处理代码的提交请求.

Audit轻量很多, 首先, 不需要Arcanist. 只需要使用一般的git流程就可以了, 当代码push的时候, 系统会自动触发Audit流程.

期望

推动我将phabricator以及git在team中实践的动力实际上来源于对TDD & BDD以及CI的向往.

当然, phabricator的迭代速度远远超过我的预期, 每周 changelog让我感到自己简直low爆了.

结论

我不是一个务实的开发者, 更不是一个理想的技术负责人, 我知道交付逾期的问题出在哪里, 但是我无法控制, 我不希望失控蔓延, 所以我需要phabricator.

资源

Phabricator User Documentation

wikimedia (最佳实践素材)

Khan Academy Development Using phabricator

Evan Priestley@Quora

另:

Evan Priestley phabricator的负责人, 真心是个大神. Is it true that Facebook has no testers?中的回答

Ex-Facebook employees have some privileged channels they can use to report issues; I personally report around 13,000 bugs per month

给跪了

Updated: