分享 @xinzhi 的 TeaHour 访谈笔记 (Form 36 氪)

xinzhi · 2013年05月13日 · 最后由 poshboytl 回复于 2013年05月13日 · 4801 次阅读

我是通过 @sundevilyang 在上海的 #rubyconfchina# 上认识的 @poshboytl@yedingding ,最近他们来北京考察了 36 氪的办公室,约了近期的 TeaHour 访谈,谈话是关于我本人和 36 氪的。

平常和人交流比较少,沟通有点困难,录制效果可能不是很好,这里给个文字版剧透一下,当然不全部涵盖,主要是说说 Rails 和 ruby-china 相关的。

介绍一下本人。男,88 年 11 月产自广西边境,姓名项新智。高二时候从个人博客兴起的时候开始接触互联网。从早期的 BSP 博客百度空间写 CSS 模板开始学习一些 HTML,结识一个域名爱好者搭建过 CMS,BBS 和 Blog,尝试做一些更改和定制,百万格子、分类信息,做过一些小作品如 “百度空间发帖助手” 等十多个博客周边网站(域名是 hibaidu.cn/net/org 形式山寨百度的 hi.baidu.com),访问量和用户都有不少,投放 Google 广告获得过几百美元收入。个人博客在百度空间也是早期访问量超过百万的用户之一。当时学的是 ASP 语言,用的虚拟机。

高三基本没心思学习,笔记本上规划的是所谓的产品设计,直到现在我一直喜欢研究行为心理。物理考试得分个位数后被辞退回家(我只做我会做的题目),买了台二手电脑,鼓捣 Linux 和 Firefox 浏览器,搭建服务器环境,折腾 WordPress,改模版改插件,学习主题定制,做过词汇测试,对对碰游戏等东西,学习过 Python 环境的 GAE 网站开发,做过一些小企业网站的外包。做过半年的建筑工。

在家里蹲了 3 年,然后去杭州和一个朋友开始创业,两周左右上线了电商网站优惠屋 (youhuiwu.com),自动采集国内一两百个电商网站的最新促销信息,加入返点链接,创建数十个微博帐号从新浪和腾讯微博上吸引粉丝为目标用户,较高日收入达到四五百,因为个人感觉有道德问题受煎熬,三个月后项目终止。

加入 36 氪至今快两年。从早期比较熟悉的 WordPress 开始作维护和模板开发,为第三方合作开放定制页面和内容接口,开发内部协作平台,维护服务器,做自动化数据报表,事务一直比较繁杂。去年 10 月底招聘到一名助手,负责线下活动宣传网页的制作,其实 36kr.com 整站还是我一个人负责的。别忘了我们还有针对创业者和投资人的产品数据库和创业服务平台 36 氪 Plus ( 36kr.net ),这是我们平台部负责的,此外我们还有市场部,负责线下活动、品牌、合作和广告销售。

36 氪成立于 2010 年 12 月 8 日,我接手的时候是 11 年 7 月 7 日,日 PV 5w,年底时候达到 15w,12 年底达到 30w,目前是 50w ~ 100w PV 每天。用户注册量从改版前 4k 左右到目前为止超过 5w。

我主导的两次改版都是纪念日这一天。上次改版我们选用了 ruby-china 论坛的开源代码,主要是底层的改变,数据库从 MYSQL 迁移到 MongoDB( MYSQL 转 MongoDB 是从 MongoHub 导入的,数据在 Adminer 下运行代码转换字段,文章、用户、评论、分类、标签均完整转换,HTML 转了 Markdown 格式保存,很难想象这么复杂的结构都是可视化转换的吧。。新旧版切换时,数据转换过程不到 10 分钟),服务器采用的是云主机,支撑每日 50w PV 的情况下,还没有作很多优化。最初上线的时候,评论显示性能较差,数据库进程导致服务器负荷偏高反应迟缓,因为新旧网站共存,图片上传的一个 Bug 导致将超长 HTML 塞入相关字段导致首页 500 错误达十多分钟,之后由于没有完整测试和后台误操作也导致过短时故障,一直运行还算正常。

去年 5 月开始接触 Rails,简单做过基于 Rails 的内部协作平台和招聘服务,有一点点背景,从决定改版策划到决定采用 ruby-china 源代码,包括后台功能和前端,历时三个月上线,这几个月里我住在公司很长时间,每天晚上都忙到两三点,冬天都基本没盖被子,睡几个小时起床常鼻血不止。选取 ruby-china 代码作为基础,是因为我一直关注它的代码提交和更改,应用之前有过较多了解,部分功能模块也可以毫无更改地使用,比如关注、喜欢、和收藏,我们改版前微博授权注册登录用户就超过 100 万,希望在这个版本中,提供针对读者的服务(目前数据显示收藏功能最受欢迎)。

就文章部分列一下相关功能:

  1. 支持 13 个字短标题;
  2. 指定相关文章(不指定可自动匹配标签);
  3. 支持 tag;
  4. 自定义微博,自动同步微博,从微博获取转发量,从后台转发评论原微博;
  5. 草稿,投稿者待审稿件,投稿审核通知;
  6. 指定摘要和特色图片;
  7. 分析正文内容关联产品和公司名;
  8. 活动报道文章关联相应活动;
  9. 文章热度;
  10. 支持发送长微博;
  11. 支持微信阅读,自动翻页,搜索,针对作者可以随时查看点击率,远程发布等。
  12. 支持邮件订阅,定期推送匹配话题标签的文章。
  13. 支持 UC 资讯中心内容定制,WAP 等。

从 Clone ruby-china 代码到现在的更改量对比:

36Krs-MacBook-Pro:ruby-china xiangxinzhi$ rake stats
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |  1483 |  1174 |      32 |     172 |   5 |     4 |
| Helpers              |   352 |   289 |       0 |      40 |   0 |     5 |
| Models               |  1490 |  1126 |      24 |      99 |   4 |     9 |
| Libraries            |   584 |   394 |       9 |      26 |   2 |    13 |
| Model specs          |   979 |   812 |       3 |       0 |   0 |     0 |
| Controller specs     |   611 |   516 |       0 |       0 |   0 |     0 |
| Helper specs         |   354 |   283 |       0 |       0 |   0 |     0 |
| Routing specs        |    58 |    43 |       0 |       0 |   0 |     0 |
| Request specs        |    43 |    36 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |  5954 |  4673 |      68 |     337 |   4 |    11 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 2983     Test LOC: 1690     Code to Test Ratio: 1:0.6

36Krs-MacBook-Pro:ruby-china xiangxinzhi$ cd
You have new mail in /var/mail/xiangxinzhi
36Krs-MacBook-Pro:~ xiangxinzhi$ cd 36Kr
36Krs-MacBook-Pro:36Kr xiangxinzhi$ rake stats
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |  3450 |  2824 |      43 |     324 |   7 |     6 |
| Helpers              |  1205 |   897 |       2 |     126 |  63 |     5 |
| Models               |  3029 |  2301 |      43 |     197 |   4 |     9 |
| Libraries            |  3144 |  2524 |      43 |     232 |   5 |     8 |
| Model specs          |   994 |   824 |       3 |       0 |   0 |     0 |
| View specs           |    85 |    70 |       0 |       0 |   0 |     0 |
| Controller specs     |   787 |   637 |       0 |       2 |   0 |   316 |
| Helper specs         |   384 |   291 |       0 |       0 |   0 |     0 |
| Routing specs        |    93 |    69 |       0 |       0 |   0 |     0 |
| Request specs        |    54 |    45 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                | 13225 | 10482 |     134 |     881 |   6 |     9 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 8546     Test LOC: 1936     Code to Test Ratio: 1:0.2

我想说我一直是抱着学习的心态,几乎没有可以分享的经验,只是实践自己的想法,我日常工作的大部分时候,是用本子记录想法和收集反馈,研究访问数据,习惯夜间毫无干扰的时候开始编码工作(白天杂务过多容易烦躁)。平常 Ruby China,V2EX,Hacker News 都比较关注,每日造访。36 氪的文章我不会每篇都看,但有时确实会错过一些好东西。

我的联系方式:

感谢提供分享

PS:又在这里发现个广西老乡

膜拜,只比我大一岁,差这么多 👍

同膜拜……

因为个人感觉有道德问题受煎熬,三个月后项目终止。

为啥?美丽说、蘑菇街这类的不都是这样的?

你的链接带来了不少流量,哈哈哈

哈哈,新智同学的文章比我们的节目还先出来....

和新智见过面,也聊过两次了。 总体感觉新智同学是个非常谦虚和内敛的优秀程序员.... 做事极为认真。 我见过的所有嘉宾里,他应该是准备最为充分的一个,他几乎把所有问题要怎么回答都先变成了文字。

个人非常欣赏他... :D

需要 登录 后方可回复, 如果你还没有账号请 注册新账号