淘宝陈皓微博引发关于Git和GitHub讨论

标签: 淘宝 微博 git | 发表时间:2013-02-19 08:59 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

2月18日,已经转战淘宝的著名技术人 陈皓发布了一条微博,对淘宝内部的共享开放平台提出自己的见解:

今天了解了一下淘宝的共享开放平台,感觉面对阿里内各种特殊异化的业务的需求,再加上各种降权开关,性能优化,这个平台要干的事越来越复杂,承载的业务逻辑越来越多,越来越不好维护。采用服务化模块化的解耦可以做到灵活性,但是还是不够。感觉可能需要像Linux+Git的方式才能适应高速开发。

他又补充了一条微博,指出:

可尝试使用Linux+Git的方式,让各个业务团队把代码fork过去自行定制,一些定制过后的有价值的代码稳定后可以回到主干,各个fork出去的分支可以互相merge。而当主干代码升级后,各个fork出去的代码同样可以享受主干的升级。只有Git可以干这样的事。(不过,这需要对代码有强大掌控能力的团队)

同在淘宝工作的 拔赤认为:

淘宝里舍得花时间玩git的人太少了

虽然 淘宝千丫指出:“咱有git的”,但拔赤说:

嗯,多数人仅仅拿git存代码,真真有些浪费啊,呵呵 对此, 淘李福认为: 你说的挺对,不过目前的困难主要还是代码安全的问题,很多工程师想用git,但是没有内部开源就不能自由fork 淘宝玉伯: 如果能推动公司购买 GitHub 企业版就好了,很多问题都可以解决,很多内部平台都可以节省掉。我试着推动过公司去购买,最后集团只搞了个半残的免费的 GitLab …… 企业版不是将代码存放在 GitHub 网站上,而是在内网部署一个 GitHub,代码很安全,就如我们安装 Jira、Confluence 等软件一样。 …… 小团队不用购买企业版,开通私有库就好。目前我自己掏银子给团队买了些私库用,实在不想折腾公司的 SVN。

敲代码的张洋提到:

我也曾多次吐过这个嘈。不过我这种小啰啰也就是想一下而已。力荐Github企业版啊

同在淘宝的 玄澄的问题是:

具体可以替代哪些内部平台?

淘李福回复:

目前 github + trello + travis + puppet + capistrano 可以符合研发过程的全部需求,唯一的缺失环节是联调和系统测试环节的自动化,这块我们正在尝试

玉伯也指出:

和程序员相关的平台基本都可以用 GitHub 企业版替代,比如源码管理、文档、QC、CR、CI,甚至发布、管控等都可以。其实我觉得阿里味也可以用 GitHub 企业版替代。

不仅仅是淘宝,豆瓣也有人出现, andyh说:

豆瓣内部有 code,高仿 Github,今天一周岁。

在知乎上,可以搜索到豆瓣负责技术管理的 耿新跃在2012年4月发布的一段话:

豆瓣在用git,不过历史遗留的东西还在svn里,某些原因导致迁移到git上还有困难(比如我们目前有些地方依赖svn的目录级权限控制),在逐步解决中

另外,我们不单用了git,还用github发布开源项目,内部还买了github enterprise用作日常开发,大家用pull request的方式来实现code review和交流,效果不错。

当然,github enterprise比较贵,我们目前只在部分团队用,同时我们在尝试自己做一个类似的东西,基本上是在trac基础上增加github的功能。

对于陈皓提出的Linux+Git方案, 火星前哨站3的看法是:

要求相当高,不光是代码掌控能力,还包括架构设计能力

onedear提出一个问题:

有价值的代码回到主干,这个是否有专门的人来做这个工作?

余肖誉回复:

一般是权威人做的工作,这个世界,这个工作做得最好的是Linus Torvalds本人

Row_Li已经认识到了这样做的关键:

跟咱们很神似,不过咱们没有相关团队掌控代码。最终弄成现在不堪入目。基本不想看那鸟代码第二遍

@ deljuven有同样看法:

这是个理想的状态,需要许多人一直持续不断的努力~~ 但是觉得能把分支理顺的人实在太少了==说句实在话,我一直觉得我们的分支太少了==

morejam建议:

这个陈首席应该有经验,搞网络设备的,各种开局,各种新需求各种从主线拉分支。

对此, 陈怀临回应

这个TOT和Branch的研发代码的问题,是个很复杂的事情 …… branch之间不能做merge。branch出现一定要去“死”。必须保证TOT clean,回TOT要手工sync。

小米科技米聊产品研发经理 瞿晋萍认为:

用Git? 由此造成的多版本问题在快速开发,各个业务组独立发展的情况下会不会得不偿失?还是传统点,基于一个与业务无关的framework/mechanism, 各个业务在上面开发plugin/policy

丸子常在的一句话可作为本文的总结:

中国和美国软件企业的真正差距之一,软件要拥有优秀的管理设计思想才可以应对未来复杂的业务需求 ,要不然基本上就会这样,越做越复杂,越做质量越差,越做需要的精力越大。

大家都在提GitHub的企业版,不妨让我们看看 GitHub企业版都提供哪些功能:

  • 代码审查:其中包括未来风格的代码审查、评论提交、分支分析、对比视图等功能。
  • 团队管理:30秒即可让用户访问代码,不需SSH key,同时提供进度信息主动更新。
  • 工业标准的OVA:OVA是Open Virtualization Format(简称OVF)的一种实现,OVF是一种开放标准,用来定义对虚拟机中运行的虚拟应用和软件进行打包和分发的标准。GitHub Enterprise版本以OVA格式分发,兼容VMware和VirtualBox。
  • 企业级的安全性:通过启用SSL和私有模式,强制整个团队使用最安全的连接。
  • LDAP和CAS集成:GitHub Enterprise版本可以直接集成到支持LDAP和CAS团队管理的基础设施中。

当然,还有出色的社区支持。

目前,GitHub企业版的知名用户包括:暴雪、Rackspace和在线交易网站Etsy。

郑柯 郑柯,实用的理想主义者,相信:每天改变一点点,这个世界会更好。

您可能也会喜欢

相关 [淘宝 微博 git] 推荐:

淘宝陈皓微博引发关于Git和GitHub讨论

- - InfoQ cn
2月18日,已经转战淘宝的著名技术人 陈皓发布了一条微博,对淘宝内部的共享开放平台提出自己的见解:. 今天了解了一下淘宝的共享开放平台,感觉面对阿里内各种特殊异化的业务的需求,再加上各种降权开关,性能优化,这个平台要干的事越来越复杂,承载的业务逻辑越来越多,越来越不好维护. 采用服务化模块化的解耦可以做到灵活性,但是还是不够.

Git基础

- Wolf - 潘魏增
上个月末在公司内部作了一次《Git基础》的主题分享. 这里把分享内容公布出来,希望对一些朋友有用. 如果之前没有接触过Git,wikipedia上面已经有非常好的介绍. pdf格式:http://panweizeng.com/download/git-basics-meituan.pdf. keynote格式:http://panweizeng.com/download/git-basics-meituan.key.

Git-rebase 小筆記

- lepture - YORKXIN×YORKXIN
最近剛好有個機會整理很亂的 Git commit tree,終於搞懂了 rebase 的用法,筆記一下. 大家都知道 Git 有個特色就是 branch 開很大開不用錢,但很多 branches 各自開發,總要在適當時機 merge 進去 master. 看過很多 git 操作指南都告訴我們,可以妥善利用 rebase 來整理看似很亂或是中途可能不小心手滑 commit 錯的 commits ,甚至可以讓 merge 產生的線看起來比較簡單,不會有跨好幾十個 commits 的線.

Git 简明教程

- satoru - python.cn(jobs, news)
Git 是一款强大的分布式版本控制系统.在他的官网可以找到已经有很多著名的项目正在使用. Like most other modern version control systems, Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another.

git架构图解

- - CSDN博客研发管理推荐文章
  最近又遇到Git了,发现网络上Git的资料确实不咋滴,难懂不全面. 至于Git是什么我就不多说了,相比svn上手确实更难. 与svn集中版本库相比较,Git被称作分布式版本库,在分布式的版本库中任何一个库都可以作为中心库看待. 如果说svn是颗树,那么Git就像一张网. Svn在每个目录都有一个.svn文件夹存放信息,而git只在根目录才有,这就决定了svn可以单独拉取某个子目录或者某个文件,而git需要全部拉取.

科普:Git Commit Guidelines

- - IT瘾-dev
降低Review成本,可以明确知道本次提交的改变和影响. 规范整个Team的提交习惯,对技术素养的养成有益. 可以通过统一工具,抽取规范的message自动形成change log. 目前Github的Angular项目,就是完全采用规范的Git Message来进行日常的提交管理和发布管理的,下面是这个项目的Commit记录,和自动根据commit生成的change log.

利用淘宝 API 在新浪微博上分享淘宝商品,赚取淘宝客返利

- Ken - python.cn(jobs, news)
前段时间做了个新浪应用,在新浪微博上分享淘宝商品. 淘宝api申请好几次都没能通过审核. 于是把代码共享,为学习flask的朋友多一个参考项目. 项目地址:https://github.com/laoqiu/sinaapp. 项目实例:http://tuibei.viimii.li (网站功能已无法正常使用).

一些 Git 設定偏好

- dylan - ihower { blogging }
讓 command line 指令列顯示目前處在哪一個 Git Brnach,最早是在 RGBA 看到這一招,非常方便. 請修改家目錄的 ~/.bashrc 或 ~/.bash_profile 檔案:. 記得打開 Git 的 color 設定,這樣 Git 指令的輸出結果才會加上顏色,像是 git status 等:.

Git和Mercurial(Hg)的分析

- gOODiDEA - 译言-电脑/网络/数码科技
来源Analysis of Git and Mercurial. 原文地址:http://code.google.com/p/support/wiki/DVCSAnalysis. (译者注:Mercurial以下简称Hg). 注:这篇分析完成于2008年夏季,当时我们正第一次为Google Code支持DVCS而作的研究工作.

GoogleCode 的 git 使用小记

- Fstone - Gracecode.com
早先就知道 GoogleCode 支持 git,不过一直没时间体验. 近期实在受不了频繁的 svn commit 加上公司的联通网络访问 GoogleCode 实在是慢得让人无法忍受,于是咬咬牙想把 GoogleCode 中那陈年的代码迁移到 git 控制中. 总得来讲,设置 GoogleCode 项目中新的版本控制方案并不复杂,只需要在管理中点击需要的版本控制系统就行.