@
zjb861107 可以选多个啊,给 app 返回文件名。难道现在的 api,app 能后台直接读取相册?
发现项目里很多人偷懒就前者方案了,可能需求往往就是 CRUD 这样方便,又是不面向公众的系统总觉得安全性次之,很危险吧
orm 有个问题你们怎么搞的,就是控制器接受入参,往往就直接用数据 entity 类了,我觉得这个做法很危险啊,被人知道可以篡改数据,加点限制条件也很繁琐啊。但是如果再定义一个 vo 类入参,set 到 entity 存储 是不是有点累赘,好像只能这样做?
为啥安卓不能在技术上控制为 app 只能读用户最后选的照片?
@
robinlovemaggie 不错哦,有共鸣了
@
wsw 还没写完呢,先把时间线说完。后续看情况可以补充一些东西,看看大家有共鸣没
@
raph 是的,一说创业板就是掌趣这家公司了
@
Lucoie 我想找个相册,专门传一些有代表的。另外我这里其实有很多记录北漂的照片,得益于当年早期 Y 同学有个奥林巴斯的数码卡片机,拍出来的还挺清晰呢
铜币无所谓吧,不过还是谢谢大家了
后来领驾照那天,还去了一个特别的地方,后来这个地方火了,那就是龙’泉‘寺,据说是有程序员出家搞 IT 很厉害的地方,当年好像还没出名。龙’泉‘寺离我们驾校很近,考完科四笔试等发驾照的时候就上山去看了看,需要门票,不过正好中午,赶上了一顿免费斋饭。我记得大家都坐在长凳上围着桌子。开始吃饭的时候,人们都五指合十祷告,我一看还有点紧张也学着假装默念起来。和尚给大家发了素馅的包子,红薯,玉米粥什么的,还挺好吃。回城的路上加了一起考试小组的一位南方姑娘的 QQ,后来也没怎么聊。
拿到驾照后,在北京开过一次车,就是 Y 同学的一辆捷达,手动挡,从西二旗开到北四环,记得那车我换挡了几次,同学都说没挂对。后来就再也没开过手动挡。再次开车就是自己在老家买了车,2016 年国庆还自驾回了一趟北京,各个地方都转了一遍。那个感觉不错,没想到还能开车回到自己奋斗过的地方呢。北京路况体验不错,一方面可能假日人少,另外就是北京的路比我的家乡好很多,司机们还是很有素质,很规矩的。
后来在北京,还办了一件大事,考了驾照。学车这东西真的挺麻烦的,主要是教练很少有耐心的,挖苦、打击的很多。我是五月份报名,十一月多就考下来了,只有周末才有时间练,也算比较快了。我们驾校在海淀西北方向,坐班车也要挺久,驾校很大,自然风光不错。有段时间一开始是晚上上课,下课挺晚了,然后在北四环的华堂下车,去里面买处理降价的果盘。学车挺幸苦,顶着大太阳接受教练的鄙视。我科二最后一把过的,科三中间反倒是因为没有超车被教练说靠边停车,说路况这么好超过他呀,然后又起步到终点考过了。后来还抽到夜考了,结果就是傍晚在路边坐在车上打打灯光。说实话,北京的正规驾校挺水的,比老家地方驾校要好考。
我在北京的最后一份工作是一家创业板上市的游戏公司,说它是游戏公司,其实不准确,因为他的长处在于资本运作。早期的最大投资者是某影视公司,后来成功套现离场。所以它做游戏其实一般,只是并购了很多小公司而已。我的同事挖我过来,也是得益于公司刚完成上市,早期的快速扩张。同事基本都是圈子里的人,又聚在了一起。那时候大概是 2012-2013 年,我的工资终于达到了一万元。后来回到老家,别人听说我北漂回来,都感觉我挣了好多钱,其实我挣一万块只有不到两年,之前的工资都是一点一点涨起来的。现在回想起来,北京的高工资应该是我快要走的时候才开始的,并且只有你在 BAT 应该才有机会。而我们这种三流本科的人,北漂也不是不能存活,只是财富自由的机会比较少。记得公司开始不久搞了一场户外拓展训练,我们组里有个特别活跃的人,当时大家还不太熟,就知道他是个小领导。后来我在公司上市资料里才发现他持股不少,之后套现应该财富自由了吧!
来到这家公司,终于过上了忙碌的生活,晚上都要加班,不过打卡时间都会累积到一起,最后离职都给算了补助。我主要参与了这么一个项目,那时候苹果手机已经非常流行,我们组做了一个 ios 端的网络游戏。有两个 iOS 开发者,配备了苹果电脑,使用 oc 开发。公司还有好多美术,设计 ui,绘制原画什么的。我们这个游戏是模仿国外某单机游戏,通过一种类似布阵的组合规则,完成 pvp 回合操作。游戏性很强,但是初期领导强调一定要防止作弊,为了解决这个问题,我搞了前端后端一起处理游戏阵型变化,每次验证数据,防止前端篡改。但是游戏的规则其实挺复杂的,有一些时候两边计算的结果有差异,这个问题把我搞了很久。结果后来项目组发生了变故,制作人带着项目和前端人员走了。这个是公司默认允许的。因为制作人自己本来原来就开着一个公司,可能他和这家公司签了什么协议吧,这些商业东西实在是太复杂了。总之我挺沮丧的,其实从业这么多年,一直没有完成一款游戏的真正上线。本来这次进入了这么好的平台,有这个机会,结果发生这样的事情。
在这家公司的时候,前同事对我之前搞的东西非常认可,也经常探讨遇到的各种问题。那时候已经出现专门的运维这个概念了,不像上家公司还是自己买的服务器送到机房,我还亲自去机房部署了服务器。这次我们的服务器是在主机上虚拟出来的,当然那时候还没 docker 这个东西。有一次,我们就遇到一个特别奇怪的问题,java 进程莫名奇妙的就掉了,排查不出来任何原因。后来只能猜测是虚拟机发现资源不足把进程杀了,我发现当年刚出来的技术肯定有不完善的地方,被我们给遇到了。
在这家公司的时候,还有一件恶心的事情,我竟然遇到办公室政治斗争了。实在是恶心,不能不提,简直是搞 IT 的耻辱。当时挖我过来的同事 Z 算是一个技术负责人,由于我和他关系比较好,他就分给我一些比较基础的工作,负责给其他项目组提供基础支持。另外还有一个项目组,里面有个小胖子,是个北京本地人,总是一副趾高气扬的样子,总是提一些他认为很是牛逼的做法。有一次 z 和我说,他说这个人和他还有领导说,我写的代码都是什么垃圾玩意儿。真是气死我了,我提供的只不过是基础支持,没有写很多逻辑代码,怎么就垃圾了。我觉的他完全是觉得我和 z 好像把持了技术领导地位有点不服,作为搞技术的我从来没遇到过这种人,无法接受。后来随着项目组制作人的出走,我在公司打了半个月酱油,也提出了离职,完成了我在北京的最后一份工作。那次我是裸辞,时间大概是 2013 秋,我在北京的职业生涯就此结束。
(未完,后续再讲讲北京的生活,以及离职后的回老家过度期)
时间线大概到了 2012 年左右,距离我结束北漂也不远了,后面的回忆比较多,可能也是因为距离现在最近。首先是我们又搬家了,地点是回龙观那边,属于昌平区。前面很多年我们都在市区租房,南城和西城我们没有怎么接触,其他地方都留下了很多回忆。这次搬到回龙观,可能也是上天的安排,如果北漂没来过这边应该也是一种遗憾。这个地方离北京市区挺远的,属于五环外,但是也挺热闹的,很多北京人被拆迁也是搬到了昌平区。我们租的是一个三居,H 哥 M 姐一个屋,我一个屋,还有海归回来的 M 一个屋。这个房子的房东也是很让我们羡慕,夫妻两人非常朴素,感觉应该是安徽人,很早就在这里买了房,当时房价简直白菜价,他买了两套!我们租的时候价格已经令人乍舌了,如今更是令人唏嘘。
小区在地铁十三号线边上,如果出门坐地铁,需要穿过一个冬暖夏凉的地下走廊,之后就是和北京完全不同的另一番景象了,有点像什么地方的小镇,只有几条主干道,街道似乎也没北京市区干净,但是生活方面挺方便的。唯独令人头疼的就是挤地铁了,那时我感觉北漂的人比前几年要多了好多,地铁站的入口都加了迷宫一样的蛇形缓冲排队栏杆。那段时间的雾霾非常严重,而且我住的屋子临近道路,窗户可能有点不严。有段时间我发烧了,比较严重,还在医院打了两天滴点,这是我第一次在北京就医。另外一次,我在中关村那边的广场上玩滑旱冰,结果把手给纽了,拍了一个 CT 发现没有大碍,只是手腕肿的厉害,不过也就一个多礼拜就好了。那时候的身体素质还不错,不像现在,明显发现自己有点老了。
此地虽然比较偏,也别有一番特色,一方面是基本就在八达岭高速边上,所以进城很快。特别是有一班 345 路快速公交车,由于走八达岭高速,一站就可以到达北京市区的三环马甸桥。我后来的公司就在那边,晚上加班完 30 分钟不到就回家了,一点也不堵。当年在北京,公交票价还是四毛,学生两毛,地铁 2 元钱随便换乘。小区附近还有一条铁路,很少有火车经过。有一次,我们三个人沿着铁轨一直走到西二旗那边。
H 哥和 M 姐在这住的时候,M 姐怀孕了,那年五月的一天,他俩急匆匆的收拾了东西去了医院,H 哥得了一个儿子,我还依然单身。单身的生活其实也挺快乐,我特别爱瞎逛,住到这边以后,我经常去北面的各种野外地区溜达,有一次跑到一个什么北七家村。因为后来我又解锁了一想爱好,那就是摄影,而且玩的是胶片机,特别迷恋胶片的色彩。喜欢提着相机到处溜达,用专业的话来说是扫街,偏重人文题材。有机会可以给大家一个相册地址看看。
可能大家有点疑问,我北漂没有找女朋友吗?答案是确实没有,我的同学情侣都是原来学校里就在一起了。到了北京这个地方,大家的交际圈子应该挺窄的,主要就是同事了。和我关系比较好的有两位女同学,一个是大学时候的学妹,基本在我来的第二第三年也来北飘了,我们也时常一起去看电影,逛场馆,有一次她还邀请我看了演唱会。后来大概比我早两年结束了北漂回了老家。我记得她走那天我也挺沮丧的,给她打电话也没有接,觉得好像是同行者放弃了梦想和前途。又觉得自己的前途和未来也很迷茫,队友好像做了一个了却,有点羡慕,矛盾的心情。另一个姑娘也是大学时候的校友,她喜欢我们班的一个同学没有结果,我俩比较能聊感情问题。后来她考上了北航的研究生,专业是英美文学。有段时间我是北航的常客,经常去找她玩,去五道口,中关村那边吃饭逛街。有一次她弟弟来北京玩,我陪着他俩逛了科技馆。后来我不记得为啥,我俩突然就不联系了。然后有一次我在国贸那边一个口腔医院洗牙,竟然碰上她了,她和一个她介绍是男同学的人一起来的。后来我回老家,记得就联系过一次她才知道我回老家了,后来就没音信了,不知道她是留在北京还是也回老家了。
在北京时候,参加过四次同学同事的婚礼。一次是我的第一家公司的同事,他在通州买的房,媳妇据说学历没有他高,但是本人挺漂亮的。第二次是大四寒假和我一起去北京的那位女生,在老家结婚了。由于离北京不远,我和同学一起去了,村里摆的宴席,她家是卖家具的,家里住的是一个四层小楼。第三次也是天津某郊县的一个同学在老家结婚,我和 Y 同学一起去的,那次竟然是腊月,我们在外面的大棚吃的宴席,碗里竟然还有冰碴子,体验非凡。后来的一次就是合租的 H 哥 M 姐终于领证了,由于 M 姐是另一个专业的同学,他们叫了两桌同学一起吃了一顿饭,那次吃饭全是我们的大学同学,后来大部分都回了老家。H 哥后来有段时间跳槽到了梅花味精这家公司,位于廊坊那边,他们顺势就在那边买了一个房子,我们还一起去参观过。后来 H 哥觉得梅花味精的 IT 没什么发展又辞职了,廊坊的房子也闲置了。有点可惜的是,他们后来没多久把房子又给卖了,根本就没赚钱,如果一直留着应该也能涨不少。
S 同学大概是第一个结束北漂的,他找了一份出差的工作,在老家石家庄和北京来回跑,有时候回北京和我们相聚。说是家里给介绍了一个女朋友,当时还在苏州上学学医。S 其实一直内心很纠结,他在大学时候是我们班的学霸,每天都要在楼道里借着灯光学习到深夜,说是习惯了高中时候的生活。后来励志要考研结果失败了,就开始北漂,结果工作也不是很如意。有一次我们聊天,他说他们老家那特别看重学历,而且他的亲戚里有孩子上了研究生,他没有考上被鄙视的很没有地位,自己也很懊恼。后来我回老家去石家庄出差和他聚了聚,那时候他已经有房闺女也有 5 岁了,很欣慰的是买房比较早,石家庄的房价也是后来飞涨,因为那个地方人实在太多了。
对于北漂的人来说,租房其实是个大问题。很多人并没有同学朋友,或者无法一起合租,只能与陌生人合租。房源一般都在中介手里,中介是个鱼龙混杂的行业,很多人因为租房被中介气的吐血。比如不给退押金就是最常见的问题,或者挑你毛病不给全退。然后因为各种原因,比如换工作了,房东不租了什么的,往往住一年可能就要搬家了。2010-2011 年,我和 H 哥他们又开始了合租,搬到了北四环的惠新西街附近。说起这个房子,有点故事。房东是国家某部委的工作人员,房子其实是单位的福利房,她的上级以 20 多万转让给了她。那个时候,这个房子的价格已经比这个 20 多万涨了好多了,更别提若干年以后了。当时我们感叹,如果给我这个机会,我卖肾也得搞到这个房子啊。
这次租房,我仍然出了大头,自己住了一个大屋,还有阳台,体验相当棒。M 姐是南方人,做饭不错,喜欢放辣,正和我口味。我们经常周末去菜市场,那时候我才第一次吃到藕这种蔬菜。因为我的家乡当年蔬菜品种少的可怜,尤其冬天只能吃酸菜土豆。说起来吃,北京的物价其实是相当低的,这个完全靠的是国家调控,比我的老家物价要低。惠新西街这边比较热闹,有对外经贸大学,china daily 总部,中日友好医院,还有一家日本名字的超市,华堂商场,英文名是一串读音是日语的名字。在这合租的时候,我不知道为什么总想请大家吃饭。我们几乎每周末都聚会,大概有七个同学能凑到一块。那年夏天,我也比较重视锻炼身体,经常去鸟巢,森林公园那边跑步。
回到时间线来,上次说到我搬到了团结湖这边是 09 年 5 月。这个地方也挺热闹的,团结湖是一个比较大的公园,我时常去里面散步。这离三里屯也不远,那边有使馆区,可以看到很多国家的使领馆。这里有段插曲,我合租的 Y 同学依然是这边和我合租,那边和女朋友也合租。他一直是无业状态,主要也不住这里。这时候他的一个高中同学,想来北京工作就住了过来。此人也是个个性人士,酷爱游戏,大学也是挂科无数,好像最后没有毕业,妈妈是个地方领导。他来面试了几个就不了了之了,开启天天玩 DNF,魔兽世界,白天睡大觉的生活。这人其实挺好相处,也挺能天南海北聊的,我俩一起待了一个多月,他就回老家了。
北京的夏天其实挺热的,我记得我们租的地方是个顶楼,可能这也是个原因。那年夏天差点热死,每天晚上很难入睡,就像在蒸笼里。虽然北京在北方,但是我感觉夏天潮热挺明显的,冬天反而是比较干燥。记得《志明与春娇》这个电影吧,身为香港人的他们特意提了北京气候的问题。住这里的第二年春天,我记得叶子都绿了,突然下了一场特别大的雪,把树枝压的很低,雪又很快化了满地都是水。那些年好像气候挺极端的,特别是雾霾问题,北京大部分候都是灰蒙蒙的天,很压抑的感觉,只有到了秋天才能看到蓝蓝的天,冬夏的体验都不太好。
在北京搬了挺多次家,从唐家岭落脚到自己住地下室再到大裤衩再到团结湖跟人合租之后,这次搬到了太阳宫那边,还是和 Y 同学合租,依然是两居,不同的是这次他俩住了一个屋,我自己住一个屋。我们租房上了一个档次。这个地方当年在北京稍微有点偏,但是我感觉应该是一个非常有潜力的地方,还没被楼群包围。那边往东不远有宜家,一个快餐比卖家具还出名的地方,我特别喜欢逛。我记得我还买了一块地毯,铺在了自己木地板的屋里。 附近还有一家超市,叫麦德龙,是外资开的。我印象深刻,他里面的冷鲜区是整个区域都是冷的,进门还给准备了棉袄可以穿。我们第一次去的时候,我就买了一瓶可乐,最后竟然还给了我一张发票,上面写着税率是多少,让我很惊讶。我同学是买了一个十斤重的大冰淇淋,就像后来自助餐里可以自取的那种,我们回来放在冰箱里吃了好久。
这个时候,G 同学养了一只波斯猫,但是他由于一些情感问题,精神不太好。家里人说是他不应该养这个猫,就暂时把小白寄养到我这里了。那只波斯猫非常漂亮,雪白,一个眼睛蓝色,一个眼睛黄色,毛很长,性格很温顺。我们给她买了猫砂,猫粮,定期给她洗澡,还给她做了绝育。大家逐渐适应了北漂的生活,待遇也提高了,工作也顺利了,岁月静好。
北漂这几年,我还有一个体会,那就是没能在北京上学太可惜了,我的遗憾不在于北京优秀的教育资源和就业机会,而是这里丰富的文化资源。如果当年能在北京上学,那就有很多闲暇时间可以逛书店,看展览。其实我解锁的北京文化活动不多,主要原因就是毕竟码农这个工作还是比较忙的。比较幸运的是,我找到了一个有意思的活动,那就是看电影。大家不要嗤之以鼻,这个电影不是商业影院的商业电影,而是文艺电影。这里就要提到两个文艺圣地了,第一个是位于北京师范大学附近小西天儿的中国电影资料馆,另一个是位于朝阳区东二环当代 MOMA 里的百老汇影院。电影资料馆是个学术机构其实,甚至还招研究生,它收藏了各种国内外的电影,很多都是胶片,场馆很大,有一个巨大的拱形荧幕。场馆每周都有一两次电影放映活动,基本都是国内院线没有上映过的国内外优秀电影,这个简直无敌了。一方面你个人有的电影甚至都下载不到,另外就是那个银幕的体验比自己有投影仪也好 100 倍。特别有意思的是,有一次影院竟然要放映一部日本动画片《新世纪福音战士》,这个消息不知道怎么就在动漫圈给传开了,一下吸引了几百人来观看,排起长队。然后放映的时候,片里的女主角出场,现场发出一种欢呼。由于我不太了解二次元世界,但是感觉这些粉丝形成了一个集体的高潮。另一个百老汇影城,应该属于全国连锁的商业影院,但是他不知道为啥就承担了很多文艺角色,时不时会放映一些以前的小众文艺片,也会参加一些电影节活动。这个地方相对有点小众,我有次中午来看一部文艺片,竟然给包场了,就我一个人。北京如此大,人如此多,还能遇到这种情况。我利用下班时间和周末和同样是伪文青的 G 同学,看了很多这两个地方放映的文艺片,非常怀念。我后来回到老家,有一次商场新装修开的影院就是百老汇,我激动了半天结果后来没开成,变成了星美什么的了。这就引出了一个话题,文艺青年在小镇活的是非常枯燥乏味的,没人愿意不挣钱提供这些东西。北京,确实是文艺青年的圣地啊!
写这些的时候,不知不觉脑海里就浮现出当时那些场景,下班急匆匆赶往电影院,吃周边的麦当劳,驴肉火烧,坐公交地铁回家,回来上豆瓣看影评。现在已经好久没看什么文艺电影了,致我们终将逝去的青春!
2010 年,我解锁了一项爱好,那就是去旅行。众所周知,北京是很多地方的列车始发站,出行十分方便。这一年国庆长假,我本来没有计划出行,休息了两天觉得无聊就去了火车站,看到有去葫芦岛的动车,首先就是被这个地名吸引了,决定去看看。下车后看了一下海,然后发现不知道要干啥了。一想如果住宿费用也挺多,不如坐一个卧铺去下一个城市。我坐火车很喜欢卧铺,舒服,我也能睡着,对我来说很合适。这个举动成为了我后来出行的风格,那就是没有计划没有目的,基本不住宿,白天逛完,晚上卧铺去下一个地方。那种感觉实在是太爽了,可能很多人接受不了,比如休息不过来,觉得行程紧张,对我来说都不是问题,我感觉逛一天正好。那次的下一个目标是长春,但是我没有在长春下车,记得问了一个朋友他说哈尔滨更有意思。从我相册回忆了一下可能直接补了一张票睡到哈尔滨了。哈尔滨挺有意思,有俄罗斯异域风格,有一个步行通道穿过后突然出行了一条大江,我才知道是松花江,这种没有计划的东西最能给人惊喜了。然后下一站我去了大连,一个非常干净的城市,还去了海洋乐园,非常新奇。最有意思的是,大连相当于走到一个“死胡同”了,我觉得直接回去好没意思,意外发现有船竟然可以穿越渤海去山东烟台,就买了一张船票。坐的是那种大邮轮,还有睡觉的房间,晚上还上了一下甲板,风很大,有点冷,海上黑漆漆的没有尽头,如果一个人被扔到大海里会是多么绝望啊!在烟台逛了之后,又去了青岛,参观了外国人留下很多建筑的老城区,别有一番风味。最后从青岛坐动车一站回到了北京。
这次旅行很顺利,感觉很好,从此每逢元旦,清明,五一,端午,国庆我都会出行。我践行的就是后来说的“一场说走就走的旅行”,当天下班就去火车站,而且当年火车票还没实行实名制,我就去退票口看看有人退去哪里的票,有感兴趣的我就从他手里买下来直接出发了。我记得有一次就买了连云港的票,去花果山看了猴子。一旦离开北京,下一个目的地就有很多选择了。我利用小长假去过的地方也挺多的,济南,日照,南京,上海,苏州,杭州,镇江,合肥,洛阳,开封,武汉,长沙,厦门,南宁,重庆,成都,西安,兰州,太原等等。印象比较糟糕的是西部行,第一天下车挤公交就把手机丢了,那次后来基本没什么心情逛了。比较好的体验是一些有个性的城市地区,比如重庆,厦门,三峡大坝,。现在回想起来,没有发生过什么危险也挺好了,有点后怕。现在这些旅行火车票我还都留着,厚厚的一沓,以后有机可以专门写写这些游记。
三、后来项目组决定开始研发手机客户端的网游。我忘了是时代的局限性还是什么原因,老板决定先从 MTK 客户端手机下手。什么是 MTK,就是当年的山寨机,使用了联发科芯片,软件其实也挺丰富的,这种平台的研发使用的是 C 语言,我们组里来了一位 MTK 的开发者。我挺崇拜他的,因为用的是 C 语言,还要在这种另类平台上面实现网络,图形什么的。内存小的可怜,经常要用 byte 变量,对于我们使用 java 挥内存如土的人来说实在是不可思议。这个阶段我的技术又上了一个台阶,也开始招了两个小孩打下手,在管理什么的方面学到了一些东西。由于是网络游戏,我在原来的框架中加入了 netty,并且自己设计了一个网关中心,多个游戏 server 可以注册连接到网关,由网关转发数据。和前端交互也要设计精妙的二进制数据包,最大可能减小流量。由于老板比较重视,我也特别关注性能,有段时间特别痴迷性能测试,并发什么的研究了半天。最后我的框架自己测试性能应该是很高的,可是后来我才意识到性能再高,如果业务复杂,基础框架的高性能也就埋没了。
这个阶段搞到后面也挺迷茫的,由于一直没出实际能上线的东西,没法对自己产生更多认可。甚至又回到了自己在闭门造车的感觉,特别想去成熟的大公司看看别人是怎么搞的。这中间其实有过两次跳槽的机会。第一次是上家公司的技术头头 Z,有意让我去他们的新公司,那天我俩一起吃了晚饭。一方面我是看到他的精神状态感觉不太好,好像被那个公司榨干了。另外就是他说有的项目还在用上家公司那个技术,我觉得不能走回头路。所以就没去。另外一次机会比较牛 x,那就是新浪公司,位于北四环的新浪大厦。也是我的一个前同事,介绍我过去。那次我走了正规的面试流程,最后还见了新浪的副总。他有个独立的办公司,我进去坐下后,他很久没有看我,不知道在忙什么,后来随便问了点不痛不痒的问题就结束面试了。这个结束当然不是不行,其实也是新浪挖了我同事的一个小团队过去,我感觉还是原来那帮人,并没有机会融入到真正的新浪技术团队里,就没有接受 offer 。
最后离开这家公司,也是曾经的同事 Z 挖我走的。我记得老板很不舍,问我有什么需要,首先说的就是涨工资。我和老板提了说是没法对自己认同,想去别的成熟公司看看别人是怎么做的,后来老板没办法同意了。我走那天其实是个特殊的日子,正好是项目上线的日期,下午我已经办了离职,晚上和项目组竟然搞了一个通宵。那天上线引流挺大的,没几分钟服务器就卡死了,没人能登陆进来。主要的问题就在 Hibernate 上面了,大量的玩家定时持久化存储,还有登录上线取数据,瓶颈全部在这里了。一起参与的还有其他项目的同事,他们也重点分析了这个问题,说是后期重构这块吧,这次上线其实也是一次测试活动,并没有造成什么损失。
我在这家公司待的最久,几乎有四年?后来结束北漂,竟然还梦到回了这家公司,和老板聊天什么的。前段时间我还又百度了这家公司,发现他好像转型做了 steam 客户端的 pc 游戏,我觉得老板一直走的路线都挺另类的,也一直没有做大,也没有倒掉,挺神奇。
工作方面目前先介绍到这吧,下家公司后面再说。接下来讲讲 2010-2012 这几年在北京的生活吧!
二、这时候项目组招了一个一米八的威海山东大汉,他的姐姐和姐夫在北京定居了,姐夫也是搞这行的,在一家知名移动端门户的公司,当时还没有什么智能机,手机页面的新闻,娱乐都是很火的东西。我让他负责建一个运营报表查看系统,他使用的是知名的 ssh 框架,我那时还不太了解,帮他查看一个问题的时候,我丢了一次人。就是 web 的 context,他是框架的配置文件里接管定义了,我不知道,只看他部署的目录名不对,我说你都不是这个名字怎么能访问到。他很鄙夷的给我讲了半天怎么回事,我假装懂了,其实非常脸红。新人的加入促使我开始发力学习新技术,逛论坛。首先当然是到处都在提的 spring,包括 springmvc 等,我开始边学习逐步构建一个新的框架。这里说一个专业问题,就是游戏的策划要定义很多道具,数值,属性什么的,肯定是要通过一个系统录入,最简单来说也得是填一个 excel 。由于我没有用数据库的习惯,这些数据怎么进到系统成了个问题。这时候我正好在学 spring 最基本的 bean 概念,那时候 xml 配置文件还很流行,我产生了一个思路,通过把 excel 的数据转成 xml,符合 bean 的定义规范,那么数据不就进到系统里成为对象了吗。这个做法我自认为挺好,最后也实现了。但是山东大汉同学给他姐夫看了我的代码,说是他姐夫说了,这是什么鬼用法,spring 不是这么用的。其实我也知道 spring 管理的应该是啥,但是我觉得我才是真正理解了 spring,也理解了对象的 singleton 和 prototype 的区别。总之这个模式对策划来说填写 excel 很方便,我读数据也很方便。
另外一个专业技术问题,就是 hibernate 这个框架的使用问题了。前面说过,我上个项目是用对象持久化存储,现在用起来数据库,我希望还是能对玩家数据和数据库建立一个映射关系,我不用太关心具体的表结构。然后我就发现 Hibernate 框架就是这个思想,很好的满足了我的需求。但是后来发现,Hibernate 这个框架好像有点生不逢时,他的思想和关系型数据库有一种天然的矛盾在里面。这就是他后来没有火起来的原因,即使用的人,基本也是手写 SQL,没有体现他的特点。我记得这个还涉及学术界的一个讨论,叫领域驱动设计,相对应的是之前存在的数据库驱动设计。后者第一关注的是数据库,什么业务都是一条线下来最后操作的是数据库。而领域设计驱动关心的是业务本身,数据库持久化是外围的不用太关注的东西。我觉得游戏行业和传统的 CRUD 业务系统区别还是比较大的,可能更需要领域驱动来开发。总之我入了 hibernate 的坑以后,是天天纠结各种问题,包括性能问题,级联存储,什么 n+1 查询问题,非常头疼。
总之,在这家公司我基本靠自学摸索,入道了,感觉自我提升比较大。但是当时也纠结如果在大公司能学到什么,这种大小公司的成长区别讨论一直也在网络上被不断探讨,这里我就不再说了。
说到工作,可能又要多谈谈技术方面的事情了,下面这篇讲讲我在这第二家公司经历的三个阶段。
一、初到该公司,我是相当痛苦的,因为压力很大,完全是从头开始。本来也想过把上家公司的东西搬过来,和老板一起商量,提过利弊。老板是个很和善的人,大家又都是同龄人,沟通很顺畅。其实老板给我的压力很小,他目前有盈利的东西,他也知道万事开头难。况且我心里也知道他如果真想快速引入新业务,应该是挖一个成熟的团队过来,现在也就招了一个策划新人,我一个程序,挖我来的运营姐姐。当然我不能辜负老板,就开始了自己写框架的旅程。公司希望也是先做一个 wap 页面游戏切入市场,当时这个东西还有很大热度,腾讯也代理了很多这种类型的游戏。我是照着原来公司产品的构架搞的,也就是其实没有前端,前端只是一个 jsp,里面嵌入了一个访问端口的连接,从后端拼接出来 html wap 页面吐给前端,然后自定义了一些操作 cmd 指令,在后端处理逻辑,变换界面再返给前端 jsp 展现。我自己用 netty 实现了一个 tcp server,那时候其实没怎么用过 java,很多东西都不懂,只会写很多单例模块来实现各种服务,完全纯 java,什么流行框架都没用。数据存储这里,原来公司竟然用的不是数据库,而是文件,一个玩家一个类似 json 的结构化数据文件。因为游戏的特点,玩家的属性,道具什么的特别多,只存储一个对象比较好,我沿用了这种模式,使用了一个持久化对象的框架。基本实现了一个 wap 页面游戏的框架,策划设计了一个赛车经营养成类的游戏,基本实现了,跑了起来,老板挺高兴,也放心了。但是游戏想做到能上线还依赖很多推广,策划内容,这个项目一直推后就当初期练手了。当时这个过程非常痛苦,我记得每天回家都唉声叹气,舍友同学 Y 对我这段时间也印象深刻,说是每天抓耳挠腮。这段经历很好,让我明白闭门造车是不行的,必须学习一些流行的技术!