做者:覃超
连接:http://www.zhihu.com/question/19977889/answer/13539702
来源:知乎git
平时就常常实践. 整个公司的code review就是使用这个. 具体说来, 因为个人project稍微有点特殊,因此我这一年在facebook工做的时候一直在用两套Code Review工具: Facebook的Phabricator 和 Google的Gerrit (他们都是开源). 我以为两个工具都很快,很稳定,而后都有效地提供了code review必备的功能:好比比较任意两个不一样版本, 对任意一行代码来写评语, 以及能够很方便地导入和导出代码到本地机器. 用了将近一年的时间,若是我要给本身的公司选一个工具的话,我会选择Phabricator. 主要是以为这个界面很干净, 而后配色很是好看, 整个感受比Gerrit要现代化很多. 另一个方便地地方,就是Gerrit上面只能看到版本作的修改,而没法直接展开整个文件(除非下载), 而这点Phabricator完成得比较好. 还有就是Phabricator上面能够发各类图片,显得气氛比较轻松. 具体你能够在http://Phabricator.com上面注册一个帐户,而后去看看eprisetley的diff, 就能够大体了解这个工具的功能和特色. 最后要说的是: 这个工具如今已经开源, 并不属于Facebook, 并且开发它的首席工程师也已经离开Facebook本身创业. 在加上 AladdinZ 张超 在评论里面说的亮点: (credit属于他,并且的确也是我用后以为有很大差异的地方) 1. Phabricator将全部文件的比较直接展开,而后放在一块儿,方便人阅读. 而Gerrit只有一个文件列表,而后用户须要点每个文件,才能看到具体的修改; 2. admin的权限设置问题. 另外我还想到一点Phabractor比较人性化的地方: Phabricator还能够捆绑unit test和以及格式检查和规范的工具(e.g. JSLint), 而后用户在上传diff的时候, phab会自动用新版本的代码去跑unit tests,以及运行JSLint, 而后在code review里面就能够看到unit tests有几个failure和error,以及JSLint的报警信息. 对于Gerrit, 不知道可否相似配置一下.github
著做权归做者全部。
商业转载请联系做者得到受权,非商业转载请注明出处。
做者:赵戈戈
连接:http://www.zhihu.com/question/19977889/answer/24101951
来源:知乎sql
从 12 年公司老东家成立创新产品团队开始到目前,Phabircator 已经从只有咱们团队使用到如今老东家全面投入使用。刚开始因为是创新产品团队,不用受制于公司大环境的束缚,能够自由发挥的空间更多。因为我的比较喜欢玩工具,好比 Trac 和 Redmine 以及 Bugfree 都用过很长时间(固然历来没有以为很满意),正当老是不满意的时候 Phabricator 进入了视线,通过一些使用和研究,咱们决定将传统的 Subversion + ReviewBoard + Jenkins 切换到 Git + Phabricator 的平台上,暂时抛弃了持续集成部分,轻装简从开始了咱们新的工具时代。Phabricator 最先是 Facebook 的内部审查工具,看过王淮的《打造 Facebook》都应该知道,Facebook 最厉害的工程师都须要进入工具部门去锻炼深造,因此质量就不明觉历了吧。听说后期 Phabricator 在 Facebook 资助下专心作这个,迭代和更新速度都很快,总体界面和 Facebook 的风格简直是一模一样(就以为 Facebook 的传统风格太像是工具了)。做为资深使用用户有资格发表点对使用 Phabricator 的一些见解:首先,Phabricator 是基于 PHP + Mysql 的,可是配置起来也不麻烦。我的也曾经贡献过一些 Bug fix,从代码上来讲 Phabricator 虽然不是个人风格,但风格和写法上很是不错。全部的开发都是面向 OOP,资源的管理是分离的很清楚的,配置的管理是多重的(数据库,文件,默认)等等。高手写的代码都值得追随和拜读。因此,若是你在作 PHP 建议来读一读。其次,传统的概念上,项目、仓库和任务都是以项目为主绑定在一块儿的。而在在 Phabricator,全部这些都不是耦合在一块儿的。项目就是项目,仓库就是仓库,任务就是任务。但全部的东西都是以项目做为线索链接在一块儿的。一个任务能够属于多个项目,仓库的 commit 和 review 只有在提交任务的时候,能够结合进去。若是要想更好的使用仓库,好比自动 Review,审查 commit,还须要用到 Owners,根据配置,全部人会拥有仓库的审查权限,全部仓库的提交也都有 Owners 来进行审核。这种松散的组合,想必和 Facebook 内部开放协做的项目态度是有关的,对于开放的团队来讲很是有好处。<img src="https://pic1.zhimg.com/c20fe9690d437e8ff9907a0a279059e8_b.jpg" data-rawwidth="940" data-rawheight="455" class="origin_image zh-lightbox-thumb" width="940" data-original="https://pic1.zhimg.com/c20fe9690d437e8ff9907a0a279059e8_r.jpg">再者,代码仓库的支持很完整。Git,Svn,HG 一个都不落下(什么,你说 CVS,那是什么)。对于仓库,Phabricator 有很好的自动检测和拉取机制,你推的代码,很快它就能收到,根据你定制的规则去指派给相应的人去审核。除了能够审核,查看代码也很是方便,甚至它自己支持了 ctags 的导入,若是你导入了 ctags ,在代码中甚至能够用 IDE 中快速定位的方式去查找代码源自哪里?高亮天然就不用说了,没有一种语言不支持的,估计新版本连本身的 Haske Lang 都支持。<img src="https://pic3.zhimg.com/ee6064b75e5dcd2246eba696d98485f6_b.jpg" data-rawwidth="1254" data-rawheight="691" class="origin_image zh-lightbox-thumb" width="1254" data-original="https://pic3.zhimg.com/ee6064b75e5dcd2246eba696d98485f6_r.jpg">而后,辅助工具也很丰富,对于开发以外的各类需求来讲均可以知足。好比文档、图片审查、倒计时、问答、代码分享、投票、密钥管理、日历、聊天、文件共享简直是费尽心思。文档是代码开发的重要部分,Phabricator 采用了本身编写的 reMarkup 语法和Markdown 很是类似,可是多了表格,目录索引,引用自有文件任务等功能,使用上很快就能进入,基本不会有什么问题。简单说说图片审查,这块是我最没有想到的。不过也解决了一个咱们设计的痛点。能够把设计稿提交上来给你们看,你我均可以圈圈点点,提交意见,最终定稿。不然,设计师这个跟开发同性质(须要被产品经理赶)的用户只能上 Phabricator 看任务。其它的就很少说了,基本都是字面意思,若是你有用到最好,用不到也无所谓,只是辅助。<img src="https://pic2.zhimg.com/0f7e57ef71e7c8c4836efa5a3415c9f1_b.jpg" data-rawwidth="1051" data-rawheight="662" class="origin_image zh-lightbox-thumb" width="1051" data-original="https://pic2.zhimg.com/0f7e57ef71e7c8c4836efa5a3415c9f1_r.jpg">接着,要说下命令行。Phabricator 提供了个命令行叫 arc (Arcanist),总之很方便。它有几个用处:操做数据(任务查看操做);开发辅助(gitflow 工做流,查看提交的 diff,代码检查,执行单元测试);辅助(文件分享下载、代码分享,升级)等等。对于开发来讲,命令行再熟悉不过,用好这个命令行能够少上 Web 界面去操做,对工做效率的提高简直是大赞。<img src="https://pic1.zhimg.com/ce9d8f3989b61ca06eacc9cebc17cfa4_b.jpg" data-rawwidth="565" data-rawheight="354" class="origin_image zh-lightbox-thumb" width="565" data-original="https://pic1.zhimg.com/ce9d8f3989b61ca06eacc9cebc17cfa4_r.jpg">最后,Phabricator 很潮很自由。看看界面上的文字上若是你不去查查字典,估计有很多词你都不认识,应该很多是出自希腊古语。不过能够经过配置关闭使用正常点的描述。在帐号系统支持上支持的很到位。Github、Facebook、Google 和公司内部的 LDAP 都能支持。Phabricator 的 API 是开放的,基于此你能够作出来不少符合本身需求的东西。Phabricator 也对邮件支持的也很到位,配置好收发邮件后,就能够像 Github 那样使用邮件来进行工做流。总之。若是你在挑选 Review 系统拿不定主意,看完就果断入了吧。这套系统是免费的开源的。就先说这么多。数据库
著做权归做者全部。
商业转载请联系做者得到受权,非商业转载请注明出处。
做者:代绪
连接:http://www.zhihu.com/question/19977889/answer/24122118
来源:知乎markdown
不仅是适用于开发,咱们产品团队也将pha用于产品文档撰写和项目进度管理pha相似markdown的语法可以很好的控制文档格式,在线编辑模式又提升了产品与技术直接文档信息同步的效率,若是很好的使用邮件订阅的功能,重要文档的修改均可以及时的告知每个相关人员同时,task式的任务指派模式能很好的整理产品需求,将以往Excel管理feature的模式在线化,并且因为task与wiki,code review都在一个系统中,每一个task的说明可以与产品技术说明直接关联,每一个人均可以看到该task的相关进度对于产品经理or项目经理来讲,phabricator也是很是好的选择工具
著做权归做者全部。
商业转载请联系做者得到受权,非商业转载请注明出处。
做者:匿名用户
连接:http://www.zhihu.com/question/19977889/answer/24066695
来源:知乎gitlab
正在使用Phabricator,我感受它是:“真tmd的好”从抛弃jira,将redmine迁移到trac,专心折腾trac两年,再用上gitlab之后,虽然每一个工具定位不一样,可是整体感受没有一个工具真的是在作“人”作的事情:
1. 沟通,Phabricator上的沟通是主对人,特别是owner这个角色,很是适用于使用快速迭代的团队。你还在用qq和邮件作报告和推动迭代?2. 合做,Trac上没法merge request,gitlab直接搬github。硬伤就不说了,问题是merge request并不是是admin/master的工做,gitlab须要新开一个fork的行为,而Phabricator的audit是很是直观的:谁是owner,就均可以对此commit进行审核。3. 独立,trac和gitlab都没法对自身之外的repository进行窥探。因而我在Phabricator上将之前全部trac和gitlab的repository导入。一旦决定抛弃他们,切换到自主hosting就好。同时还支持mirror到源。4. 开放,你有新的皮肤想用?想用fontawesome?开源。自用自改。实践就是:立刻部署立刻尝试立刻切换就能够立刻开始使用Phabricator而其余沦落为bugtracing(本来是什么就是什么)。其余工具想不用想。装个trac加插件话费一个礼拜匹配版本,jira买或者用盗版,gitlab无。单元测试
http://www.zhihu.com/question/19977889测试