豆瓣代码托管系统 CODE 正式开源

简介:

Douban CODE 是豆瓣开发的一个基于 git 版本控制系统的协作平台。

可能很多人有点诧异,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开发很多的公司, 也不算个问题. 但是假如大家用非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%都是在给自己学的不好找个理由和慰藉罢了. 我的观点是, 想要走在金字塔尖就需要有执念, 否则只能沦落到只能打打嘴炮的地步.

我曾经尝试一边翻着一边去读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会做以下几件事情(不断补充中)

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

截图时间

image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image
image

相关文章
|
网络安全 API
你知道代码托管平台上的代码片段功能吗 ?|Code China
代码片段是一种可分享的小项目,可用于分享开发经验、展示组件和 API 的使用、复现开发问题等等。本次介绍 Code China 上的代码片段创建、以链接形式分享、代码片段下载。
288 0
|
7月前
|
Shell 程序员 开发工具
码云代码托管平台
码云代码托管平台
|
缓存 程序员 开发工具
服务搭建篇(八) 使用GitLab部署一个属于自己的代码托管平台
服务启动完成后,就可以访问gitlab服务了。默认的服务端口就是80端口。默认的用户名和密码是 root/123456(通常建议登录后立即修改默认密码)
292 0
|
1月前
|
jenkins 持续交付 开发工具
除了 Gitee,还有哪些代码托管平台支持 Webhook?
除了 Gitee,还有哪些代码托管平台支持 Webhook?
|
6月前
|
存储 安全 程序员
AtomGit代码托管平台评测赛——赛事收获暨赛事总结
AtomGit代码托管平台评测赛——赛事收获暨赛事总结
70 1
|
6月前
|
存储 安全 网络安全
AtomGit 代码托管平台评测赛——完整操作指南
AtomGit 代码托管平台评测赛——完整操作指南
66 0
|
Docker 容器
『GitLab』在Docker中快速部署GitLab私有代码托管平台
📣读完这篇文章里你能收获到 - 在Docker中快速部署Gitlab
454 0
『GitLab』在Docker中快速部署GitLab私有代码托管平台
|
存储 Linux Go
【git】安装体验Gitea 代码托管平台
【git】安装体验Gitea 代码托管平台
526 0