开源了,开源了

喜大普奔.

欢迎围观试用: CODE

CODE">再来一遍 CODE

想直接看效果的可以看 这里 或者拉到最下面.

可能很多人有点诧异,CODE 不是已经开源了么?是的,2014 年 2 月 14 日 CODE 的早期版本就开源到了 github. 但是后来由于很多原因没有在做下去,今天,它真的开源了.

让我坚持下来的也是我想给外界看到豆瓣工程师文化的结晶,这是一种情怀,今天我想说说我和 CODE 的故事

CODE 的意义

CODE 为什么开源:希望更多的人可以使用 CODE,希望更多的人可以一起开发 CODE。 - Code Team

市面上有 gitlab, 有 github 企业版。我们折腾一个这样的东西有什么意义呢?以下是我的看法.

  1. CODE 是一款豆瓣工程师自发组织,基于我们自己的需要做出来的。它是互联网公司程序员的需要而产生的,CODE 也曾经给 github 的同仁们演示,获得了很高的赞誉.
  2. 它并不是 github 的 python 克隆版,但是有些地方却是和 github 殊途同归.
  3. 当产品发展到一定地步,对这个版本控制工具会有更多的定制化需求,这个时候会需要二次开发。假如你是个 ruby 开发很多的公司,用 gitlab 也不算个问题。但是假如大家用非 ruby 的语言为主,那么就很痛苦. ruby 虽然在配置管理,web 开发上面有一席之位,但是没有 python 这么普遍。同事们的参与局限性就多了很多.
  4. 假如你所在公司是 python 系,或者爱好 python 系的,那么 CODE 真的是一个很不错的选择。它是永远免费的,它是由国内 python 最大应用公司的工程师们开发,质量有保证。看代码的过程中也能学习到一些 python 的技巧,豆瓣的玩法,了解豆瓣的开发流程.
  5. 我一直觉得轮子是需要造的,这个过程你能有造轮子的乐趣,能力得到更多的提高,而一直在用其他人的东西那么永远只会停留在这个程度上.
  6. 用 CODE, 看 CODE 代码的时候,仿佛可以看到那帮有情怀,有工程师文化的同学们在讨论需求,code review... 我一直认为这种关系和友谊才是最好的团队具有的

情怀

好吧,啥是情怀呢?

情怀就是以心灵的满足而不是功利的得失作为自己的行为标准的一种品质。 一件没什么用的事,还是要去做,也许只因为我喜欢,也许只因为它看起来很美 -- 知乎 @宋老末

「我坚信程序员都是有情怀的. 」

我决定继续这件事 , 到现在已经 4 个月有余。这个过程里面经历蛮多,比如我经历着从技术转型做管理,部门问题多多,人员也在我强力介入下也流动蛮大的 -。-; 我也要花很大的精力陪女儿;我一直也在不断的给自己充电,我现在也要开始写书了... 做了 TL, 唯一的感觉就是时间不够用,我是个蛮有洁癖的人,以前做普通工程师的时候按期完成我职责范围内的就好了,现在责任大了,看着产品线的 sentry 里那么多的报错,看着 Trello 里面堆积那么多的 card 还没有机会做... 尤其在我使用一种新的管理风格有关,让我倍敢压力,非常辛苦.

要不是 xTao 不断催促,可能还要拖期.

是什么支撑我的情怀?

除了眼前的苟且,还有诗和远方 - 知乎 @戴晓溪

我和 CODE

告诉你们个小秘密,我来豆瓣其实也是和 CODE 有很大的关系的... 在这里感谢 @xTao 和邢老师.

这一切是为什么捏?

话说那是 13 年下半年,我的前公司从 svn 转到了 gitlab. 我们在内部搭建了一个 gitlab 服务器。各个产品线的代码都开始往上面迁移,我不得不说它是市面上非常好的开源选择。但是过了一段时间我就发现了问题:

我是 python 系的,我有时候对它是不满意的,有想法二次开发的.

这里我提一点,很多人都说: “哎呀不要局限于编程语言,不要去争论 xx 是宇宙第一语言”. 我的观点是,只有 0.1% 的天才 + 4.9% 的有天赋,能力很强的人是可以这么说的。剩下的 95% 都是在给自己学的不好找个理由和慰藉罢了. 想要走在金字塔尖就需要有执念,否则只能沦落到打打嘴炮的地步.

我曾经尝试一边翻着《Ruby 元编程》一边去读 gitlab 的源码,想尝试定制它。努力了差不多一个月放弃了。原因无二,这种临时报佛脚去玩转一个大公司北京,多位大牛参与的开源项目的必然结果.

很痛苦,但是内心又多有不甘,于是决定做一个大事:用 python 造个 gitlab 的轮子:

  1. 样式扒 gitlab
  2. 根据 gitlab 的路由方式添加 url
  3. 使用 pygit2 作为 git 后端

做起来才知道,这是一个非常浩大的工程,对于我当时的技术能力来说是个非常大的挑战。我汲取前后端知识就基本直接用在这个项目上了.

有一天,我产生了放弃的念头.

之前我对豆瓣也没有什么特别的感觉。直到这天我看到 清风在 C2D2 的分享

http://segmentfault.com/a/1190000000410324 http://www.infoq.com/cn/articles/douban-code-2years http://www.infoq.com/cn/presentations/tools-love-knot-of-engineer-culture

在遥远的豆瓣,有这样一帮人和我有同样的想法。我称他们为 geek. 这是我向往的地方呀。于是,我决定去豆瓣

CODE 开源不久,我就到了豆瓣.

非常遗憾,我进来的时候,CODE 的核心开发大多离开了豆瓣。我没有机会和他们一起做 CODE. CODE 功能也接近稳定,心情蛮失落的我只是修了几十个 bug. 加一些功能,比如:

  1. 鼠标放在团队上也会 hover 一个 team 的 card
  2. telchar - 类似 quora 的 qlint
  3. 鼠标放在 emoji 会悬浮图片的放大版本
  4. 项目的 guidelines

等等.

我本想拿下 CODE 全部的徽章,但是给我颁徽章的人们却不在了.

CODE 的未来

我会保证 CODE 会一直做下去。但是单个人的能力精力有限,我欢迎更多的公司都来用 CODE, 帮助它变得更好。也欢迎更多的同学参与进来.

未来 CODE 会做以下几件事情 (不断补充中)

  1. 完善 CODE 的功能 - 现在放出来,跑起来了。但是预计还会有很多坑
  2. 增加初始化脚本,填充数据
  3. 修复 travis-ci
  4. 国际化 - 现在 code 里面有很多中文,需要英文能力很高的同学一起来做
  5. 重构 - 有很多功能都是需要重构甚至重写的
  6. 其他方面的尝试

截图时间