douban code 是豆瓣開發的一個基于 git 版本控制系統的協作平台。
可能很多人有點詫異,code不是已經開源了麼? 是的,2014年2月14日code的早期版本就開源到了github。但是後來由于很多原因沒有在做下去, 今天, 它真的開源了。
讓我堅持下來的也是我想給外界看到豆瓣工程師文化的結晶, 這是一種情懷, 今天我想說說我和code的故事
code為什麼開源:希望更多的人可以使用 code,希望更多的人可以一起開發 code。 - code team
市面上有 gitlab,有 github 企業版。我們折騰一個這樣的東西有什麼意義呢?以下是我的看法:
code是一款豆瓣工程師自發組織, 基于我們自己的需要做出來的. 他其實是網際網路公司程式員的一個需要, code曾經給github的同僚們示範, 獲得了很高的贊譽.
它并不是github的python克隆版, 有些地方卻是和github殊途同歸.
當你産品發展到一定地步, 對這個版本控制工具會有更多的定制化需求, 這個時候會需要二次開發. 假如你是個ruby開發很多的公司, 也不算個問題. 但是假如大家用非ruby的語言為主, 那麼就很痛苦. ruby雖然在配置管理, web開發上面有一席之位, 但是沒有python這麼普遍. 同僚們的參與局限性就多了很多.
假如你所在公司是python系, 或者愛好python系的, 那麼code真的是一個很不錯的選擇. 首先它是免費的, 它是由國内python最大應用公司的工程師們開發, 品質有保證. 看代碼的過程中也能學習到一些python的技巧, 豆瓣的玩法, 了解豆瓣的開發流程.
我一直覺得輪子是需要造的, 這個過程你能了解造輪子的樂趣, 一直在用其他人的東西那麼永遠隻會停留在這個程度上.
用code, 看code代碼的時候, 仿佛可以看到那幫有情懷, 有工程師文化的同學們在讨論需求, code review… 我一直認為這種關系和友誼才是最好的團隊具有的
好吧, 啥是情懷呢?
「我堅信程式員都是有情懷的. 」
從我決定繼續這件事, 到現在已經4個月有餘. 這個過程裡面經曆蠻多, 比如我經曆着從技術轉型做管理, 部門問題多多, 人員也在我強力介入下也流動蠻大的 -。-; 我也要花很大的精力陪女兒; 我一直也在不斷的給自己充電, 我現在也要開始寫書了… 做了tl, 唯一的感覺就是時間不夠用, 我是個蠻有潔癖的人, 以前做普通工程師的時候按期完成我職責範圍内的就好了, 現在責任大了, 看着産品線的sentry裡那麼多的報錯, 看着trello裡面堆積那麼多的card還沒有機會做… 尤其在我使用一種新的管理風格有關, 讓我倍敢壓力, 非常辛苦.
要不是@xtao不斷催促, 可能還要拖期.
是什麼支撐我的情懷?
告訴你們個小秘密, 我來豆瓣其實也是和code有很大的關系的… 在這裡感謝@xtao和邢老師.
這一切是為什麼捏?
話說那是13年下半年, 我的前公司從svn轉到了gitlab. 我們在内部搭建了一個gitlab伺服器. 各個産品線的代碼都開始往上面遷移, 我不得不說它是市面上非常好的開源選擇. 但是過了一段時間我就發現了問題:
我是python系的, 我有時候對它是不滿意的, 有想法二次開發的.
這裡我提一點, 很多人都說: “哎呀不要局限于程式設計語言, 不要去争論xx是宇宙第一語言”. 我的觀點是, 隻有0.1%的天才+4.9%的有天賦, 能力很強的人是可以這麼說的. 剩下的95%都是在給自己學的不好找個理由和慰藉罷了. 我的觀點是, 想要走在金字塔尖就需要有執念, 否則隻能淪落到隻能打打嘴炮的地步.
我曾經嘗試一邊翻着一邊去讀gitlab的源碼, 想嘗試定制它. 努力了差不多一個月放棄了. 原因無二, 這種臨時報佛腳去玩轉一個大公司北京多為大牛參與的開源項目的必然結果.
很痛苦, 但是内心又多有不甘, 于是決定做一個大事: 用python造個gitlab的輪子:
樣式扒gitlab
根據gitlab的路由方式添加url
使用pygit2作為git後端
做起來才知道, 這是一個非常浩大的工程, 對于我當時的技術能力來說是個非常大的挑戰. 我汲取前後端知識就基本直接用在這個項目上了.
但是有一天, 我有個放棄的念頭.
之前我對豆瓣也沒有什麼特别的感覺. 直到有天我看到清風在 c2d2 的分享
我才知道在遙遠的豆瓣, 有這樣一幫人和我有同樣的想法. 我稱他們為geek. 這是我向往的地方呀. 于是, 我決定去豆瓣
code開源不久, 我就到了豆瓣.
非常遺憾, 我進來的時候, code的核心開發大多離開了豆瓣. 我沒有機會和他們一起做code. code功能也接近穩定, 心情蠻失落的我隻是修了幾十個bug. 加一些功能, 比如:
滑鼠放在團隊上也會hover一個team的card
telchar - 類似quora的qlint
滑鼠emoji會懸浮圖檔的放大版本
項目的guidelines
等等.
我會保證code會一直做下去. 但是單個人的能力精力有限, 我歡迎更多的公司都來用code, 幫助它變得更好. 也歡迎更多的同學參與進來.
未來code會做以下幾件事情(不斷補充中)
完善code的功能 - 現在放出來, 跑起來了. 但是預計還會有很多坑
增加初始化腳本, 填充資料
修複travis-ci
國際化 - 現在code裡面有很多中文, 需要英文能力很高的同學一起來做
重構 - 有很多功能都是需要重構甚至重寫的
其他方面的嘗試
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0YDOjRmN3MDM5MTZkdDO1cTOhNDOhJWMmRGMmdzNlVGNjNjZhhzN18CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)