查看原文
其他

做了14年开发,如何保持代码优雅?

holdenjing 腾讯技术 2022-11-05
导语|今天我们走进CDG新晋专家团,对话客户端开发专家Tongyiguo。
本文作者:holdenjing,腾讯CDG客户端开发工程师


2007年从计算机专业毕业后,第一份工作是在顺丰做终端开发,后来又去到酷派手机做手机的业务开发。2012年入职腾讯,在ECC、SNG等部门都工作过,2017年来到了腾讯广告。工作的这14年,windows、wince、安卓、iOS、前端、后端都做过,目前主要是在做终端开发。
最大的体会有两点:
第一点是,做任何事都要注重细节。因为腾讯的产品所拥有的用户体量是非常大的,这也就意味着我们的产品会遇到的问题既多元又复杂,也容易被放大;而且也会遇到一些厉害的竞争对手。
很多时候,产品实现的大致方向其实都差不多,最终能在竞争中胜出的往往是对细节把控的最好的。
譬如说,在业务开发过程中,我们很容易忽略的弱网问题,虽然在日常生活中出现的概率很低,但是在极大的用户体量之下,它可能出现的次数也会变多。所以,对于腾讯的技术同学来讲,把这些细节都做好,是一项基本功。
第二点是,要时刻关注自身的成长。在腾讯这样的公司,很容易将“平台优势”和“个人优势”混淆。一定要谨记,对自我要有清晰的认知,关注自身成长。
难的项目有很多,举一个最近的例子就是闪屏奥运广告的多端联投项目。这个项目最大的难点在于我们需要在很短的时间内将各端所有的方案对齐并实现,同时必须保证项目不能出任何问题——毕竟奥运不会因为我们出现的任何问题而delay。
如何应对呢?首先是充分信任团队里的小伙伴,相信每个人都一定是尽全力在做这件事;其次是反复测试,保证质量;最后是要多体验自己负责的产品,在体验过程中有可能会发现平时大家开会讨论时可能会遗漏的细节。譬如说,有网/无网环境、安卓/iOS端、低端机/高端机的实际体验是否有差异。
还是那句话,做好细节是基本功。
一是多平台开发,工作这14年里,windows、VCE、安卓、iOS、前端、后端都有做过,不过还是建议开发同学最好能在精通一门语言的情况下,再去学习其他的语言。
二是要求严格,我是对自身要求比较严格,同时或多或少对团队的小伙伴也会严格要求。我认为这就和打篮球一样,如果把一个人丢到高水平的队伍里,那么他的提升就会很快。严格要求的本质还是希望自己和团队的小伙伴都能获得更好的成长——毕竟在开发这一行,"打铁还需自身硬"。
三是目标性强,我对要做的每件事情都会列出清晰的目标,这个目标不会太抽象化,要能够在合理的时间内达成。
在我看来,“专家”不只是一种认可,更是一种责任。
当团队遇到技术问题时,专家要主动站出来解决技术问题;在团队成长方面,专家要负责帮助组内的同学成长,以期培养出更多的"专家";在技术调研方面,专家要主动承担制定团队技术演进方向的责任,为团队在各个技术领域的预研方向负责。
第一点,一定要多体验自己负责的项目,只要不断的体验才会发现一些忽略的细节。尤其是对于开发同学来说,就像我刚才说的,如果产品的用户基数特别大,那么任何边界条件被用户触发的概率都会呈指数增长,如果出问题影响范围会非常大的。所以越是在平时开发自测过程中容易忽略的场景,我们越是要多测试、体验。
第二点,一定要经常review自己的代码,看看自己写的代码逻辑是否自洽,代码是否优雅。长时间坚持review自己的代码,一步一步优化代码的质量让其变得更优雅,对一个人的开发能力一定是有极大的提升的。
第三点,一定要确信你所做的工作是你所热爱的。只有真正的热爱,在工作中遇到挑战才不会逃避、害怕,才能够通过不断的学习让自己有持续的提升。举个开发同学都可能会遇到的例子,在做需求的过程中,开发同学基本都会遇到其他人拿某个技术难点来挑战我们的情况,为此我给自己提出的解决方案是每周周末都要弄懂一个技术难点,这个技术难点一定是我真正想了解的问题。
这样坚持下来我遇到的挑战越来越少,所以之后演变成我主动给自己寻找挑战,然后通过学习来解决。能做到这一切的前提,是你要真正热爱你所做的这件事。
第四点,一定要多读源码。对于开发同学来说,源码能够让你迅速的了解到一个复杂的工程是如何实现的,并且读源码对你的编码习惯养成也有很大的帮助。
优雅是一个比较感性的哲学问题,在我看来,在开发这一层面的“优雅”,大概就是当你看到这段代码,会有一种站在山谷间清风拂面的感觉,你的代码逻辑就和你脑海中的实现逻辑一模一样,那么,这段代码就足够优雅。
想给大家推荐一本非专业的书籍——《最好的告别》。
我认为做一件事要有信仰,要真正的热爱才能做好。要想知道自己热爱的是什么,就得先考虑"生死"的问题;当你把生死的问题弄明白了,知道了自己想要的到底是什么,这样心里就有一个很坚定的信念。这个信念会让你在之后的某一天工作不顺或者受到打击时,信仰和热爱不会被动摇。

欢迎加入腾讯广告,与一哥一起优雅编程:
https://careers.tencent.com/search.html?query=ot_40001001&keyword=47377%20

# 有料程序员 直播 # 
对谈鹅厂90后工程师:聊聊技术人的英雄主义

点击预约,get开播提醒

往期回顾:
程序员在哪些场景写过代码 
如果有机会,你会选择脱产学习深造吗?
“做程序员这事儿吧,可以吹一辈子!” 
成为技术大牛,只能靠天赋吗?

点个关注,我们下期再见👋
点击【阅读全文】,加入腾讯广告👇

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存