白屏,指打开新页面时屏幕中没有任何有意义的内容,只有无休无止令人窒息的空白。造成页面白屏的原因有不少,比如页面崩溃、网络资源加载较慢、页面启动卡顿等等,这里不讨论页面崩溃等程序出现 bug 的场景,有 bug 就去解决嘛。
大多数用户可以忍受 1000ms 以内的白屏时间,超过 1000ms 时随时间的变长越来越无法忍受。所以我们的首屏优化目标是 1000ms 以内,即“秒开”。
宕机,指操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象。它属于电脑运作的一种正常现象,任何电脑都会出现这种情况。
定好了目标,下面貌似就应该行动起来寻找解决方案了,但等等,我们一直在说“首屏”,那什么是首屏,我们得先唠唠。首屏的英文名是 “Above the Fold”,Fold?跟折叠有什么关系?“Above the Fold” 这个概念最早用于出版行业,买过报纸的同学都知道,因为方便搬运,报纸的一般都是折叠起来的,即使是“头版”,也分朝上和朝下的一面,如图所示,朝上的那一半被称为 “Above the Fold”,也是被报社认为最重要的位置。延伸到互联网产品,“Above the Fold” 用来指代页面不用操作(比如点击、滚动)就能看到的信息。
短内容页面的入口是推荐流中的短内容卡片,当推荐流中有短内容卡片曝光时,QQ 浏览器将会去网络拉取一刷数据缓存到本地。如果用户真的点击了短内容卡片进入了短内容页面,那么会直接从缓存中获取数据。这个方案被称为“数据预加载”。
用空间换时间
URL 的完整信息可以包含在二维码中;长度越长,二维码就会越密集。当出现类似图片压缩,造成展示精度不够时,就影响了二维码的扫描使用。在一些小的海报和线下展示位就非常不便。
一般可以采用 URL 压缩的方式,先通过短链服务,将长 URL 置换为短 URL,扫码打开之后,前端支持 302 的情况下,就可以直接跳到最终 URL 上。短 URL 服务一般都具有很高的并发能力,所以不会成为性能的瓶颈。所以该问题很容易解决。
但是这里引入了一个新的问题,由于短链服务域名往往承接了非常多不同业务,一些业务常常在微信侧并不合规。曾经笔者就遇到过因为微信封杀 url.cn,导致我方业务牵连受损的情况。
To C业务是把东西卖出去了,消费者收到货。或者把APP上传到应用市场,用户下载安装后使用,就完成了价值交付。
但对To B来讲则不然,卖出去产品仅仅是一系列工作的开始。要实现产品价值,还有漫长的过程。首先你得把实施交付做好。有时候因为客户的认知有限或者IT水平有限,你还得手把手的教会对方怎么用。对于SaaS类产品,如果产品没有使用,明年就一定不会有续费和留存。大家知道B端获客周期长,获客成本高。能否维护好客户关系,让客户在下一年继续订阅产品,是企业发展成败的关键。
客户成功部门必须要第一时间杀过去,要make sure客户把产品用起来。不管是提供咨询、服务,还是需要提供培训,必须要确保客户持续使用产品。
所以与To C完全不同,客户成功绝不是售后服务这么简单的事儿。对于To C端,售后服务就是退换货,如果用户卸载了你的APP,老实说你也没有太好的补救办法。只要消费者不到淘宝投诉、不到应用市场给产品差评,这个就OK了。
To C往往购买者和使用者是同一人,做To B一定要区分客户的决策者和使用者。
碰到大的项目,很麻烦的一点是,对方会有很多定制化的需求。你只想提供标准化产品,人家大客户不买单。如果屈从做定制呢,面临的风险是,团队可能就全搭进去了。往往会从一个产品公司,变为项目制公司。对企业来说,虽然定制化服务也能挣钱,但很难实现规模化。
人类在处理信息的能力,视觉远超其它五感处理能力,在《Information is Beautiful》一书中,作者将视觉类比成计算机网络的带宽,达到 1250MB/s,触觉排在第二类比成 USB 接口,有 125MB/s,听觉和嗅觉类比成硬盘只有 12.5MB/s,而味觉就忽略不计了。数据可视化,就是在我们清洗关键数据之后,将数据呈现给用户,就像一道菜品精美的摆放,给你带来更多想象。
可以看到数据分析有一个发展阶段,描述分析,解释分析,探索分析,预测分析,规范分析。规范分析是数据分析的最终阶段,它已经可以解决我们怎么做的问题,类同于人工智能的终极阶段。
你99%的储存实力,只差这1%的简历投递——数据技术及产品部【数据平台技术与设计-体验技术团队】
串行 (Serial)
并行 (Parallel)
DRY,Don't Repeat Yourself. 不要重复你自己。我们都知道重复的危害性,但重复时常还会出现在我们的工作中、代码中、文档中。有时重复感觉上是不得不这么做,有时你并没有意识到是在重复,有时却是因为懒惰而重复。
DRY (Don't Repeat Yourself)
DRY 原则最先在《The pragmatic Programmer》被提出,如今已经被业界广泛的认知,我相信每个软件工程师都认识它。我想有很多人对它的认识含混不清仅仅是不要有重复的代码;也有些人对此原则不屑一顾抽象什么的都是浪费时间快速上线是大义;也有人誓死捍卫这个原则不能忍受任何重复。今天我们来谈谈这个熟悉又陌生的话题。
DRY 是什么
DRY 的原则是“系统中的每一部分,都必须有一个单一的、明确的、权威的代表”,指的是(由人编写而非机器生成的)代码和测试所构成的系统,必须能够表达所应表达的内容,但是不能含有任何重复代码。当 DRY 原则被成功应用时,一个系统中任何单个元素的修改都不需要与其逻辑无关的其他元素发生改变。此外,与之逻辑上相关的其他元素的变化均为可预见的、均匀的,并如此保持同步。
PS:感受一下程序员的冷幽默。违背 DRY 原则的代码,程序员称之为 WET 的,可以理解为 Write Everything Twice(任何东西写两遍),We Enjoying Typing(我们享受敲键盘)或 Waste Everyone’s Time(浪费所有人的时间)
原则不是银弹,原则是沙漠中的绿洲亦或是沙漠中海市蜃楼中的绿洲。面对所谓的原则要求我们每一个人都有辨识能力,不盲目遵从先哲大牛,要具有独立思考的能力。具备辨识和思考能力首先就需要有足够多的输入和足够多的实践。
银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹。在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人等超自然怪物的特效武器。后来也被比喻为具有极端有效性的解决方法,作为杀手锏、最强杀招、王牌等的代称。
其中的“银弹”是指一项可使软件工程的生产力在十年内提高十倍的技术或方法。该论文强调由于软件的复杂性本质,而使这样“真正的银弹”并不存在。
走进一个偌大的林子里,谁是老鸟,谁是雏儿,仅凭声音你是听不出来的,当你刚踏进一家公司的时候,人生地不熟,社交圈子就身边的几个人,如何去找到一位能够帮助你,并且愿意帮助你的人,似乎并不是那么容易。
导师,并不需要他每天在你身边晃来晃去,保持一个中短期的低密度联系即可,3~6 个月时间,或者 1 年左右,因为你的阶段性成长和沉淀一般也需要这么长的周期拿到结果;当然,你也可以跟导师建立深厚的友谊,让这个关系保持得更久一些。
首先,你的 Leader 一定是你最好的导师,你们是一个利益共同体,他有义务对你的职业发展负责,而你也可以毫无顾忌地向他发起求助,另外,你们之间最有可能发展出深刻的友谊关系。但是 Leader 的两个局限性是:
- 他是局中人,你跟 Leader 之间发现的问题具有同质性,视野是有限的
- 他可能很忙,作为一个 Leader,需要对每个下属负责,他的精力很可能不够用,你不好一直打扰他
导师持续向你输出帮助的动力在于,他期望通过对你的帮助让你飞快地提升,一方面提升他的影响力,一方面从中获得成就感。
无效社交是指那种无法给你的精神、感情、工作、生活带来任何愉悦感和进步的社交活动。
社交的过程是一个信息交换的过程,如果在彼此的信息交换过程中,可以给对方带来一些新思路,或者解决了一些实际问题,我认为这就是有效的社交。简单来说,有效的社交就是会产生价值增量,只不过这里的增量有大也有小。
我们日常的社交行为十分丰富,举几个社交中经常遇到的的场景:
- 在一个水军群里,看别人扯淡,你也凑合进去发表几句,聊着聊着还聊起劲了
- 看到一个人很厉害的样子,跑过去寒暄几句,凑个脸熟
- 在朋友圈宣泄几句,收到了不少人的反馈和点赞,接着在评论区跟人唠起来
- 在知乎看到了一个杠精,觉得他的观点太幼稚,跑过去义正言辞地跟人家聊/怼了起来
- 过年了,写一条祝福语,给所有的认识的不认识的朋友都发一次
- ……
每个人心中都有一把尺子,这个尺子可以衡量一件事物的价值,你觉得有意义的事情他觉得无意义,反之亦然,所以无效社交就是先确定好心中这把尺子的度量衡,在价值上低于度量衡的便是无效社交。
你可以把自己心中的尺子拿出来,对着上面几个场景量一量,就可以量出你心中的无效社交。当然,这么做会显得有些功利主义,但是你得搞清楚,如果无效社交占据了你大量的时间,那么可以真正被用来做事情的时间便会越来越少。
社交可以分为主动社交和被动社交,大部分的社交行为,都是双方各占据一个角色,
- 如果你是主动社交,你需要想清楚,你期望他帮助你解决什么问题,他能够帮助么?他愿意帮助么?
- 如果你是被动社交,你需要想清楚,你能帮助他么?你需要帮助他么?是不是还会衍生会延续的社交内容?
当然,以上都是趋于功利主义的分析,但这样的分析方式,可以让你的社交更具备目的性,心怀“互利共赢”四个字,这样才能产生更大的有效性社交。
然后,你需要思考,怎样的社交是最有效率的?我们经常可以看到这样的场景:
- 寒暄了半天,结果跑题了,扯了半天陈年往事,正准备聊正事儿,人家说要去吃个午饭了
- 遇到了问题,找到 A,结果让去找 B,找了 B 让去找 C,找了一圈,最后还是自己去解决的
直击痛点和重点是一门艺术,它能够反映一个人的抽象能力和分析能力。有效的社交需要过滤信息杂音,彼此之间最快达到共识;有效社交也需要你擦亮眼睛,看清楚人和事之间的枢纽关系,找到最合适的对象沟通。
为你的下次社交活动埋个好的伏笔。人情是个很好的东西,今天你帮了我,明天我就会帮助你,大家在相互帮助中让自己期望达成的事情更有效率地达成,本身就是有利于社会发展的好事。
想获得好的社交,可以尝试不断地置换身边交流的人,让负面的声音、消极的身影和低质量的信息从自己的视线里减少,慢慢的,你的社交质量就上来了。
遵从自己的内心,真诚、友善、和谐地社交,也会赢得更多的高质量的社交。
很多事情看起来是特别清晰的,一步、两步、三步,把这几个步骤走完了,事情也就结束了;与其说清晰,还不如说简单吧,特别是业务性的工作,真的是一眼可以望到尽头。我们必须承认,工作很多时候是需要用点蛮力的,你拥有再多的技能,在受限的环境下,也难以施展开来。所谓的脏活、苦活、累活,你不想去做,但是也得去做,因为那是成就你的一部分内容,可能你的运气好一点,这种活有人替你扛下来了。
如何在看似恶劣的环境中存活下来,然后逐步拔高呢?
2、视野不够
只能看到自己的问题,只能看到当下的问题,缺乏横向和纵向的比较。遇到问题,多看看别人是怎么处理的,想一想自己做的东西别人可以如何利用,既要走出去又要领进来。
3、底蕴不强
解决的大多数问题都是简单问题,挥一挥手打个补丁就结束了,很少去思考共性问题,缺乏服务意识和产品化能力。这一点并不难突破,在多思考和总结的基础上,多一些耐心,咬定青山不放松,在难啃的骨头上多啃几下,很多事情就可以拨开云雾见青天了。
上限和下限
最近看到一个不错的观点,说努力决定你的下限,而选择决定了你的上限,我觉得说的有一定的道理。
作为一个技术人,扎实的基础和丰富的经验是行业立命之本,在这一块是绝对虚不得的,必须花费大把的努力,让自己的根基更加夯实。
而选择,伴随了太多的不确定性,运气显得有点重要,但是我想说的是,尽可能地提升自己,让自己成为别人的首选项,才能给自己争取更多的议价能力,坑有的时候就那么几个,争取让自己成为萝卜。
- 伤害我们的往往不是外物,而是我们对事情的看法;
- 名誉与财富不能给人真正的快乐,重要的是你正在成为什么样的人,你正在过着什么样的生活;
- 分清你力所能及和鞭长莫及的事情;
这个哲学逻辑指导下人生会有两种价值,一是“外部价值”,是指我们需要得到其他人或环境的认可,名誉、财富甚至别人对自己的爱都属于外部价值,而另外一种则是“内部价值”,是指自己内心认可,一些更纯粹,超脱物质上的追求,一些“something bigger than yourself”的意义。