Skip to content

Chapter 05-01 追求极致:做更好的自己

Updated: at 12:00 AM

追求极致:做更好的自己

什么是追求极致

我为什么用追求极致,而不是追求完美。因为完美是不可能的,人生本来就有太多的不完美,你还能要求工作做到完美?完美主义是很危险的,因为完美主义可能会产生完全相反的效果。

即使不知道完美为何物,我们也可以知道事情在变好。所以,我说的极致,是在你的能力范围内,做到你认为的最好,用艺术家的匠心来培养自己的能力。

在实际操作中,很难解释清楚什么是追求极致。其实它更像是一种思维模式,什么意思呢?它并不是要你不惜一切代价地去追求完美,而是要创造出一个让人们拒绝接受平庸的环境来。我们需要去战胜那些觉得「足够好」「已经足够」的惰性(摘自《一生的旅程:迪士尼CEO自述批量打造超级IP的经营哲学》)。

那么,既然我们是技术人员,我们还是聚焦在技术相关的内容,其他方面我说了也没用,你也不需要我的建议。

界面体验问题

做前端或者设计的同学,都知道有个神技叫做「像素眼」,就是能快速分辨出屏幕上一像素的偏差(感兴趣的同学可以搜索我的《像素眼是怎样炼成的 》这篇文章)。有的人觉得这是对用户体验的要求高。而有的人却觉得,这就是龟毛,事儿多。那么,你觉得到底要不要纠结这一个像素呢?

你可以试想一下,如果是个亿级用户的大网站,被人发现页面上有各种对不齐,是不是会觉得很不专业呢?当然,可能绝大部分的普通用户,是根本看不出差别来的。

但是设计师也是用户啊,这种偏差在设计师的眼里,简直就像砂子一样难受。对于拥有像素眼的用户来说,只能看到两个信息:要么,这个网站不太看重用户体验;要么,就是开发人员的水平不行。所以,你选哪个呢?

同样,对于网站或者软件的交互问题也是一样的。界面上的所有交互效果,最后都是要靠开发哥/姐来实现的。所以作为开发,也应该关注交互问题,以及各种交互效果的实现。

尤其是对于前端开发同学,技术发展这么快,作为一个积极向上的前端开发,你是完全可以通过新技术,来推动新的交互形式的。那么前提就是,你一直有关注交互问题。如果你从来都没往这个方向思考过,那肯定也不会发现什么新东西。

性能问题

性能问题及其优化工作,算是研发人员的本职工作了。 无论是服务端还是客户端,都或多或少存在性能问题。

好的性能,首先是能为公司省钱,然后顺带的,可能也会提升用户体验;好的性能,意味着更低配的服务器,更小的带宽,更快的速度。 往小了说,对于单机来说,硬件资源就那么多,如果不是提升配置的话,只能通过性能优化方法来解决问题。

往大了说,对于集群也是一样的,差的架构设计和好的架构设计,可能会差出几倍的服务器数量。虽然对于土豪公司来说,可以遇到问题就「加机器」,跟网管遇到问题就「重启电脑」很像,但是有些问题靠扩大规模是解决不了,因为架构还受 CAP(Consistency, Availability, Partition tolerance) 原理的限制,具体不展开了。

还有,你写代码的时候,会不会考虑这段代码需要什么配置,用户的手机会不会发热?如果客户端代码写得太烂,用户用的应用时手机就会发热,就会多耗电浪费能源和金钱,地球上的二氧化碳也会多一些,很不环保。

再有,你发布图片的时候,有没有想过这张图,要用掉多少 CDN 的流量费用?其实,如果你是个运维的话,就能切身感受到,每天账户里的钱要烧掉多少了。对于像阿里腾讯这样,拥有大批亿级流量网站的公司,每天不知道要在这上面烧掉多少钱(自建 CDN 也是一样的道理)。而这其中,可能就有一部分是你不小心浪费掉的。

对用户也是一样的,现在 5G 时代,很多用户已经不太在意流量的问题了。但是当年在 3G/4G 的时代,假设用户打开你的商品详情页面,几兆的流量就被你吃掉了,这不是坑人吗?页面的打开速度也会很慢,体验很差,那他下次可能就不来你的网站了。

所以你看,写好代码,就能为公司省钱,就能体现你的价值。当然,如果你想刻意浪费公司更多的钱的话,那就另当别论了… 那么请你思考一下,如果你写的代码每年能给公司省下个几百万,那你的工资应该是多少?

流程体验问题

最后,再说说流程体验的问题。前面也提到了一点,比如电商网站的购物流程。虽然这些看上去是业务流程,或者是线下的流程,但是如果你仔细思考一下,有些环节是通过技术可以解决的。

比如客服响应慢,除了本身的接待压力之外,会不会是客服系统给出的用户信息不足?然后客服需要额外的工作去查找确认呢? 会不会是客服系统后端并发承受能力不行导致操作慢呢?客服使用的操作界面,能否通过优化布局,改进快捷键等提升效率呢?

再比如,为什么我们感觉顺丰收件派件都这么快?就是从公众号下单,到快递员取件,扫码支付,整个流程都特别顺畅。因为你会发现,顺丰快递员的手持设备,比其他快递公司的都厉害。这个设备几乎将快递员除了跑腿之外的工作,全都集中在这个设备上了。包括接单、收款、甚至打电话等等。这背后都是技术的赋能。

所以你看,用户对这些细节服务品质的要求,很多时候也是对技本身的要求。最直接的例子就是,如果你跟客服吐槽自家的某些服务体验差,那么几天之后,甚至几分钟后,你可能就会收到一个,热气腾腾的迭代需求!怎么样,开心吧?这不是你自己提的吗?

写拿得出手的代码

不知道你有没有这种意识,那就是无论我们写的代码,文章,还是其他产出,都可以认为是我们的「作品」。既然这些是「作品」,那就代表了我们的水平,其他人也会依据我们的「作品」在心里给我们打分,从而形成了对我们的印象。

经常看到有人抱怨别人留下的「垃圾」代码不好维护,写得很烂云云。然而事实上是,每一届的人都会抱怨之前的人。这说明什么?说明大家没有针对任何人,而是你们在座的所有人,都写过烂代码。其实这是很正常的,大家都在成长,都有不堪回首的历史,尤其是刚毕业的毕业生,过几个月再看自己的代码都会觉得不堪入目。

而即使你知道这些代码很烂,你也未必有机会重构。因为重构就涉及到资源的调配,以及下游测试及 QA 的配合等等。不然你改了也没底,也不能随便自己发布上线,这不符合规范。

因此,我这里想说的并不是要求大家不能写烂代码。我想说的是,你要有这种「作品」的意识在头脑里。只要想到这些东西都可能会被其他人看到,都是你的作品,都有可能影响他人对你的看法,甚至某天影响你的其他方面。那想必你也就不会过于随意了。

所以你看,你对自己要求高一些,把每行代码都当做作品看待,写拿得出手的代码,既是对自己负责,也是对他人负责,长此以往还会有意想不到的收获。 下一篇: Chapter 05-02 如何培养设计感