从0到1:我和木犀的故事

缘起:华大桂声技术部

2013年10月我加入华大桂声技术部。其实一开始我加的是华大青年,但因为那里没有专门的技术部,面试的时候也没有做技术的人面我,所以我在得知桂声招新的情况下,放弃了华青那边的录取。

于是就开始了在桂声技术部的日子。那个时候其实i华大已经建立了,但桂声还是比较强势一些。那段时间主要就是在一个2011级学姐的带领下做桂声的专题和网站。我记得我来的那年之前做了110周年校庆专题和迎新网,都很不错。桂声的专题是很有特色的,现在我们也试图去捡起这个传统。

我接到的第一个任务是做一个恽代英专题,在炳权学长的指导下,顺利的做出来了。关于这个我记得比较清楚的细节,一个是熄灯了之后搬个凳子去走廊里做,还有一个是上线了之后很兴奋,发给很多人看。

接下来就是下半学期开始的桂声改版,我写了一部分的主页。那个时候,我其实压根就不会写真正的代码,如果要用到JS,比如轮播图,我就去网站下一个功能差不多的插件,然后修改一下。这个过程其实是很痛苦的,因为你心里并没有底。所以每次把插件改好都像是一场战役。

一个人的i华大技术中心

2014年开始,虽然我们还是习惯说自己是技术部的,但名义上已经是i华大技术中心了。底下分技术研发部和视觉设计部。

说一个人,我指的是技术方面,设计那边还是很强大的。除了做主任的学姐和炳权学长,其他人并不会技术,然后之前的主任学姐三四月份就跑路了,炳权学长也很早就在名义上退出了。因此这个技术部就只有我一个人了。

然后就是2014年四月份,技术中心春招。我依稀记得那个时候来了有大概三四十号人。然后我在306做培训,其实就是教他们切页面。

那个时候也没想着要做一个技术团队,就想要把技术中心做好吧。当时我自己其实也是小白,也教不了他们什么。这三四十号人也并不是完全合适,因此最后待的比较久的,就只有龚红霞一个人。

2014年的上半年还发生了一件事情,就是桂声10周年庆,请了很多高校的团队来交流,有武大和理工人的来了。当时我们的技术实力几乎为0,然而却在PPT上写了我们用Node,现在想起来还是觉得脸红。我听他们讲JSON,API这些,完全不懂。想来这应该就是我想打造一个技术团队的最初来源吧。

木犀!

木犀这个名字,想来应该就是14年下半年提出的。之所以叫木犀,是因为华师的桂花很出名,但直接叫桂花又太俗。我偶然得知木犀是桂花的学名,于是就选用了这个名字。

这里有个插曲,炳权曾经提议说我们可以叫handle,现在想起来还是觉得很搞笑。

2014年的秋招,来了很多人,胡薇、韩伟、老王、王露晨、梁晓怡,这都是之后设计组的核心,想来之后那段时间也是设计组的黄金时代。小桂漫画,壁纸,表情,都是那段时间做的。

还有一个人,那就是朱承浩。

对我建设团队帮助最大的还是炳权,因为炳权那个时候已经在冰岩了(虽然我到15年上半年才知道),他会给我们很多建议,我也拓宽了很多视野。

2014年下半年我们开始学Python,决定用Python做后端的语言。但那个时候还没有能力去完成一个网站的后台。那段时间我主要是用Drupal这个CMS来做学而的第一版。

学而第一版其实反响还是很不错的,现在数据库里都还有那个时候的评论。这对我来说是一个鼓励,说明产品是有需求的。然后Drupal这个东西,开发难度很大,这坚定了我们自己学后台的决心。

2015年的到来,是一切奇迹的开始。放弃Drupal和各种前端插件,真正的踏入Web开发的大门,就是从哪个时候开始的。所以说木犀的成长史,也是技术的成长史。

首先我们在15年2月全面使用了Tower(这个时间点之前设计组好像就已经在用了)。大家看我和承浩的进度都是从15年2月开始的。至于Tower,对,没错,是炳权告诉我的,因为冰岩在用。

之后就是承浩的时间了。他学了Flask,我们用Flask搭的第一个网站是什么,我已经忘了。我只记得那个时候,光部署网站,就要花好几天,因为书上讲的是AWS这种云服务的部署。手动的部署还是有一些门槛的。那个时候,因为了解的层次比较低,会觉得很多东西是玄学。

3月我们去了联创交流,具体可以参见我的这个博客

5月份和6月份其实还有一次转折。5月份的时候,理工的token团队办了十五周年庆,我们去参加了技术交流会。这次是我们第一次以木犀团队的名义出去交流。也是从2015年上半年开始,我们慢慢习惯以木犀团队的身份出现在所有人的眼中。这次交流会上,我们依然没有太多的干货,相比于其他团队,我们感受到了我们还太年轻。

6月联创Hackday。我们主要是去感受了一下气氛。3月和6月两次去启明,对于我和承浩两个做技术的人来说,这个冲击不亚于工业文明对封建社会的冲击。首先是感受到了华科那边浓厚的技术气氛,其次是感到了一些压力,因为我们团队是如此的弱小,而华师的技术氛围又不想。当然是压力也是动力,不管如何,从2015上半年之后,我们团队在技术上便开始了不断的进步。

联创Hackday

(图片找不到了)

暑假承浩买了Mac,从此就一发不可收拾。那个暑假我在极验实习。其他人进行了我们第一次的夏令营(夏令营这个想法也是炳权提供的)。那个夏令营还是很愉快的,我们做出了第一版的内网,对于Flask的掌握已经好很多了。

夏令营照片:

夏令营最后去落雁岛玩的照片:

2015年9月,团队已经初具规模了。后面的事情,15级的同学应该都清楚了。

接下来的事情就是2015年下半年开发的学而的第二版,完全用Flask写,有同步的路由和REST API组成,前端移动版是一个SPA,用了Webpack和React。这就是我们第一个工程化的产品。

技术团队的成长,其实就是我的成长,承浩的成长,已经后面14级其他同学和15级同学的成长,每次有一个人成长为核心成员,团队就变的更加的强大。

番外:304-306-502

一开始,i华大技术中心的办公地点是在304。那时候我们还是非常自由的,304可以随意的改造。经历过那段时刻的同学应该知道,那段时间是很有归属感的一段时间:

直到今年5月份,304和306装修。我仓皇中去合租了一间房子,在教工宿舍,作为我们的临时工作室:

(图片找不到了)

那段时光是难忘的,也是别扭的,痛苦的。那只狗,上门的邻居,狭小的空间,和我自己当时的各种压力混合在一起。

现在我们主要在306活动,也在304。虽然归属感没有以前这么强了,但因为大家更熟悉了,核心成员也更多了,所以团队的气氛要更好一些。

我还是希望我们能有一间独立的工作室。我们要时刻保持危机感,来应对未来的无限的可能。

前端之路

我个人的前端之路,其实也是木犀从0到1的一个很好的注脚。

我其实在15年的上半年才开始正式学计算机。那个学期在武大开始辅修,然后在团队开始学Flask和Python。5月的时候,我的前端水平是只会写简单的Banner,相比之前Banner都要用插件的水平来说,算是好一些。那个时候是标准的过程式的编程。

5月的时候看了一本单页应用开发的书,里面讲到了IIFE,闭包等等。我如获至宝,写个什么组件(其实我当时并没有组件的意识)就用IIFE,其实这算是最初的模块化,工程化意识吧。只不过我那个时候并不清楚模块化和工程化,也不知道正常的编程语言都是自带模块的。

7月和8月我主要在极验实习,切了不少的页面,里面有一些用jQuery做的组件。这个时候我写展示型的页面以及比较熟练了,CSS也掌握的不错(毕竟在写桂声那些主要就是CSS)。但对于前端的那些Grunt什么的工具,其实我并不是很清楚为什么要用。

所以对于模块的理解,对我来说是一道坎。真正理解模块和工程,还有闭包,大概是今年的事情了。

9月回学校之后我看了React,后来就开始用Backbone写学而。那个时候我对MVC了解的还是比较多的,因为之前后端用的就是MVC。写React的时候比较初步的理解了组件化。之后对于Webpack之类的工具也用的很顺手了。

这个学期对面向对象也略有了解。但对于View和Model的分层,以及组件的抽象,还没有到能手写的地步。那个时候我看Backbone源码,并没有太多感觉。而现在我回头看,就觉得抽象非常的清晰了。

那个时候我对很多事情的理解都比较的浅薄。对于React Native很崇拜,觉得Web的目标就是取代原生应用。觉得Web就是要做单页应用。也没有很深入的理解前端工具为什么存在,以及组件化的发展史。

现在来看,其实Web有Web的特点,需要动态化、快速上线、展示型的东西都可以用Web来做,这只是一个简单的技术选型的问题。

总得来说,这是一个技术视野的问题。如果你用过很多别的语言,那你就应该很容易的理解模块的存在。如果你开发过原生应用,那你就应该很好的理解为什么Web开发的UI应该是组件化的。

今年开始,我把兴趣移到了函数式,编程语言,还有计算机基础上面。对于前端,我主要在开发工具解决我们自己的工作流中的问题,还有就是研究框架和工具的源码,进一步深入。

现在回过头来看,我就能发现前端学习的一个最佳的路径,DOM可以不用花很多心思,但组件一定要自己去手动实现。模块可以直接用标准的模块。前端无非是普通的客户端软件开发,从这个视角去看的话,事情就清楚多了。

计算机基础加上足量的工程经验,应该就可以成就一个好的工程师了。我的前端之路还算顺利,大家的学习道路,在我们这些先行者的踩坑之后,肯定会更加顺利。但有一点是肯定的,要把一样事情学好,需要你的热情,时间,和精力。

还有一点,就是你的视野是随着你的经验而增长的,视野对你理解一些技术是非常有帮助的。平时我们在安排学习路线时也会特意的去安排背景阅读材料,或者是讲一些思想和Lab结合起来,努力让大家能够尽快的熟悉那些方法论层面的东西。同时,你自己的思考也是离不开的。我经常会思考,踱步。好的书常看常新,经典的思想,也是需要反复的思忖才能领悟的。

我们在路上,前方不会太远

2016年,团队最大的新闻当然就是华师匣子的上线。这个是我们的第一款移动应用,也是将来一切产品的推广基础。

在我看来,团队最大的成长,一个是技术团队在工程化上慢慢摸索,有了自己的方向。我们的方向就是通过造轮子来深入原理,积极的实践最新的技术,写完善的文档,在社区中争取拥有一定的影响力

在团队的管理上,确立了早读制度,试行了导师制度,管理工作组共同管理团队,成功的进行了秋游,招新算是顺利,团队管理层平滑更换。这些都是一个团队平稳运行的基石。如果说这个大框架搭好了,我们就可以把精力投入到具体的产品和新人培养中去了。

在接下里的日子里,我们要把产品的汇报制度完善,项目组的气氛要更好,全员大会要常态化,组内技术积累要抓紧,新人双轨培养的计算机基础方向需要花很大的力气建设,UED部门要重新上路。

对于团队的期望,我不想说太多,我只能说,作为一个木犀人,你就算毕业了,也依然要参与到团队的建设中去,只是不在第一线了而已。只有这样才能慢慢的把事情做好。我们追求的是理想中的团队,可能我们永远都无法到达那个理想中的境界,但一直在成长,一直在进步的话,大家开开心心的,就挺好。

我们在路上,前方不会太远。