昨天是 8 月 8 号,百度的周年庆典 summer party,而在同一天 「百度师傅」 一期项目终于也推出去跟小伙伴们见面,这两天的订单量也破了新高,收到一条条用户下订单的短信,作为研发同学的我也表示非常的开心和激动,这两个月没白忙有木有!
「百度师傅」 是从百度知道衍生出来的新方向,一个从 0 到 1 的项目,目标是连接人与服务,哈哈,提供最优质专业的维修服务。 (目前仅限北京地区,有三个服务:电脑清灰、重装系统、碎屏修理)
不再打广告了,有需要的小伙伴点上面的链接下单吧 :)
这是一个让我百感交集的项目,有这么几个时刻,我想记录一下:
项目终于启动了,经过 MRD 评审和拿到 UE 图,松了一口气,页面的布局和功能也就那样,跟日常项目类似吧,而这个项目对我的挑战,我认为更多的是来自对整体架构/模块的设计(怎么针对一个全新的产品线去设计和搭建前端框架),以及排期真的很紧,要跟时间赛跑,项目从 6 月 1 号启动,预期上线点是 7 月 6 号,也就是一个月的时间,但是研发介入开发/联调时间只有 2 周,基础框架/公用组件的搭建 + PC 的 5 个业务页面 + WAP 的 6 个业务页面,我知道不眠不休身体和脑子肯定扛不住,哪怕每天愿意干 12 个小时也搞不掂,必须特别注意时间管理和风险管理,严格控制好排期,有风险立马提出来。
尽管条件比较恶劣哈,不过在调研、设计、开发这段时间,我还是非常享受的,因为终于可以把心静下来,好好想想、划划、敲敲。调研/设计阶段,去看文档看代码,把自以为最优的设计方案拿出来(有时不止一个)去找大神 @guizi @yuting 商量,他们总能给出更好更优雅的方案,甚至针对整个框架的设计给出很赞的意见,非常感谢;开发阶段,自己跑去楼下 coffee shop,听着音乐,静静的敲代码,看着自己的设计慢慢变成真实的页面,也是一种很棒的享受。更棒的是,所有代码都是我写的,没有历史包袱,不用维护老得掉渣的代码,想怎么写怎么写,爽到没朋友,根本停不下来!(有时候我很庆幸,我是很喜欢自己的工作以及可以从中获取成就感的那一撮人之一)
但时间确实紧,为了平衡好关键的 milestone,那段时间我们都是白天做开发,晚上约 @maxiao 联调,说好的决战到天亮。 (笑,其实没到天亮,一般到晚上 10、11 点,直接洗洗睡,接着第二天继续打鸡血)
当然还有在我背后默默支持我的那些女人和男人,精神上和物质上的鼓励也非常给力,支撑着我努力的完成,不一一点名不用生气哟,谢谢你们~
我去,本来的项目总结更偏技术,结果在 blog 这边一写竟变成回忆录也是醉了。
在 evernote 写的那版,详解了我在项目中遇到的技术问题,可以简单拿出来列出来:
wap 开发,响应式布局,全局用的像素单位 em,没考虑图片合并问题,导致最后重新改写图片的引用。 当时有疑惑过 FIS 能不能支持相对单位图片的合并,但抱着“到时再看”的想法,直接拖到 wap 快提测,最后才去问的 FIS 的同学,不支持 T_T 只能重改,所幸引用图片不多,花了小半天修改。但这个问题告诉我,以后做技术选型,必须先考虑所有可能遇上的问题,可以接受再采用,不然做完了才来想,这次修改成本不高,万一需要全部重写呢?代价太大。
设计规范,启动开发时,没问 UI 要设计规范,导致目前 css 代码中有部分冗余、重复的代码。 由于排期关系,UI 没有一次性给完所有页面的图,都是按照出一个图开发一个页面的模式,最后才知道有“设计规范”这一说。其实在开发中,也发现有一些 UI 组件或者样式是可以复用,属于 base 类的样式,原本应该在项目启动开发时,先把 base.css 搭建起来,可惜最后才拿到,导致目前 css 代码中有部分冗余、重复的代码。
关于功能组件化(解耦) 大部分情况下,我都会按照规范,把每个独立功能的相关逻辑写成 widget,但是也有由于时间紧,写出来的一坨长文件,写完了测完了上线,现在回头再看,想解耦,天哪,都是些什么鬼!虽然都是自己写的,但是改了会担心影响到线上功能,真是一步错步步错,磨刀不误砍柴工,必须花时间做好设计才能下手敲,不然剁手!
打包/部署流程 这个 topic 不打算展开,主要是之前虽然用了 FIS 很久,但对它的打包或者上线,线上的文件引用原理没有很了解,上线后才踩的很多自己埋的坑。另外,上线前没有跟 RD 沟通打包的 tar 包有没有特殊要求,有次排查半天发现是 tar 包名字不对,妈蛋,坑死自己了! 除了反省,其实自己做得不错的还是有那么一点,就是同步写 PC 和 WAP 页面时,因为交互不大一样有时候会很凌乱,但数据逻辑是类似的,有时候先写 PC,后来写 WAP 时发现,哎哟,还有更好的实现方案,为了实现思路的统一,于是花时间重写 PC 的逻辑。应该算是一种自我要求吧,在二次思考时,没有直接 copy 上一次的思路,而是用一个新的角度去思考,说不定真有新发现,在时间那么紧迫的情况下,自己还愿意花时间去重写那些不够好但能 run 的逻辑,强迫症不够严重是做不到的,哈哈,看来药不能停 :)
事实证明,师傅项目算是一次中期考验,而我从 iknow 和 exp 学到的东西,总算没白学,把能拿出来的货一次全拿出来,勉强 hold 住了,更多真的没有了,哈哈,真是论 FE 的自我修养呀,必须给自己点个赞!
非常感谢这个项目,经历了这么一段时间,我得到了一定的技术/业务能力的成长,也给自己科普了很多以前并不 care 或者不理解的东西,更多的还有自信和成就感。也许在程序猿的成长的路上,需要经历这么一个“从无到有”的项目,才能加深对架构/模块设计/资源打包/代码部署这一系列动作的理解。
继续加油吧,骚年!!!