【EGO 是高端技术人聚集和交流的组织,每周我们都会对一位会员进行人物专访,在展示会员风采的同时,也分享会员们对技术、对工作、对人生的感悟,本周,我们邀请到了荔枝 FM 的 CTO 丁宁。】
EGO:能先简单介绍一下荔枝 FM 吗?
丁宁:荔枝 FM 是一款手机轻电台应用,用户可以在手机上开设自己的电台并录制节目。荔枝 FM 集录制、编辑、上传、存储、收听、下载于一体,又融入了大量的社交元素,因此它可以满足各类需求的人群,毕竟电台收听人群的年龄段,跨度会比较大。
EGO:荔枝 FM 这样的模式对技术与架构会有怎样的要求与挑战?
丁宁:荔枝 FM 的业务特点比较明显,会有大量并发的页面刷新、以及音频数据的请求,这是最重要的两个方面。
这两个业务特点,一般会首先想到 HTTP 传输和 CDN 加速,但荔枝并没有完全采用这样的方案,因为 HTTP 虽然好处明显,但耗电量大、流量大、可控精度粗、产品体验受到制约等劣势也很明显。最后,我们在这两个方案的基础上研发了更适合这类业务的解决方案,决定采用 TCP,并在 TCP 的模式上做一些补充。
当然之前也有过 HTTP 和 TCP 共用的做法,但这样的多通道会带来状态一致性的问题。针对这个问题,我们又研发了一套单通道多路复用的技术。这个技术使用之后,对上层开发人员来说就和 HTTP 一样简单,但它在底层只保持了一个 TCP 的连接,就能防止多通道导致客户端网卡的拥塞。
最后在荔枝 FM,不仅信令通道会使用这条链路,后期甚至在上传音频节目这一业务上,走的也是这条链路,真正做到单通道多路复用。这样既保持了 HTTP 的易用性,又最大限度的利用了 TCP 的灵活性。
EGO:那这样会不会导致上传、响应等特别慢?
丁宁:其实并不会,数据在最底层是混到一起去上传了,但我们会在应用层处理它们,会把上传的数据分片去传输。我们做了大量的测试,会根据网络的状况和用户的操作实时调整分片的大小。
另外在服务端,为了应对大量的并发请求,我们采用了微架构的调整,不同的业务请求会转到相应的业务处理架构上去执行,而且每一个抽象的架构层之间,都会通过 SDK 的调用来解耦,这样就算某一个业务单元崩溃,也不会导致整个架构的崩溃。
但这么做有利也有弊,弊端就是最初的开发速度会比较慢,因为你需要整个团队都了解整个架构的组成,以及你设计的思想。而且从顶端设计开始,都是高级架构师们一起讨论并定案,什么业务能拆、什么业务不能拆、怎么个拆法、拆了之后、分布了之后可能会发生什么样的问题、如果发生问题该采取什么样的应对措施等,这些在前期的时候都要进行充分的讨论,会花费很多时间。
EGO:那荔枝 FM 具有核心竞争力的技术有哪些呢?
丁宁:荔枝 FM 真正核心的技术依旧是在音频方面。现在荔枝有两个音频团队,分别负责语音处理和语音识别。
在语音处理方面,荔枝 FM 现在有一整套的降噪、回声抑制、润音还有面向小音腔设备录音播放的解决方案。同时,现在我们已经研发出可带有音乐的、全时段剪辑的解决方案,目前还是荔枝独有,这个技术我们也申请了专利。
在语音识别方面,我们的精力主要放在提高语义识别的精度上,我们认为这是未来非常重要的方向,也是现在很多团队在做的事情。对于荔枝 FM 这类应用,难点就是找到用户的兴趣点,并精准推荐相关内容,所以我们需要对所有的音频资源进行定位和标签,再进行精准匹配,也就需要我们在语音识别上下更多的功夫。而且语音识别未来的想象空间会很大,真正识别之后就可以去做更多的事情。
EGO:对于技术团队管理,您有何个人心得?
丁宁:团队管理中,最大的难题并不是技术本身,也不是你带什么样团队,大部分团队的带法都差不多,碰到的挑战也都是一致的。在我看来,技术团队最大的挑战还是找人,找合适的人,所以很多技术管理者都会花费很多时间在招聘上。
过了招聘这个层面,主要的困难就是项目管理。因为,创业这个阶段,你要干得事情非常杂,从上到下每个细节你都需要去关注、去执行。
我从 08 年开始做项目管理,到现在依旧觉得对创业公司来说,项目管理是件挺困难的事。首先,人员是快速招聘的,从四面八方而来,他们在之前形成的一些做事习惯可能并不一致;另外,人员的水平参差不齐,你不可能在创业初期就找到很多的牛人和高手,这并不现实。那怎样才能让这些人高效的朝着一个目标去运作,对于技术管理而言是非常大的难度和挑战。
我们目前采用的是 Scrum 。Scrum 本身的方式很好,像每天的例会、冲刺前的沟通、冲刺结束后的总结等。但在实际的运作过程中,往往会产生很多问题,最后可能就慢慢流于形式了,你会发现团队越做越慢,质量也无法保证,这是很严重的一个问题,也是很多技术管理人都需要关注的。
EGO:在您看来,作为创业公司的 CTO,哪些能力和素质是必需的?
丁宁:对创业公司来说,CTO 这个角色要兼任两个方向的领袖,第一是技术领袖,第二是精神领袖。
首先成为技术领袖,才能将大家团结在你身边,并且给别人信心,让他们相信跟着你技术不会走歪,也不会做无用功,最终一定能把事做成。另外,身为技术领袖还需要具备一定的前瞻性,能预见后期可能会遇到的坑或问题,并帮助大家避开,给大家可靠感。因此,要成为技术领袖,对技术的敏感度以及实际解决问题等能力,都是不可或缺的,而其中,见多识广则是最不可缺的。
精神领袖,更多时候需要和大家冲在一线,以此鼓舞士气。而好处则在于能够让团队士气高涨,对所做的事情充满信心和激情。技术人本身其实是很单纯的,所以你需要把这两个角色演好,让整个团队既信任你,又愿意跟着你向着目标努力。
EGO:那如何才能把这两个角色扮演好呢?
丁宁:这对沟通等很多能力都有很高的要求,你需要有把复杂问题简单化的能力,才能有效的鼓舞大家,另外还需要优秀的管理能力,这些都是需要技术人锻炼的。
所以技术人到了一定阶段后,一定要去锻炼沟通能力,这非常重要。把一个复杂问题清晰的理解之后,简单化,再用简单的语言去跟技术之外,产品、市场、运营等人员沟通。技术人经常会站在技术角度说一些问题,产品和运营可能听不明白,彼此之间就可能产生误解,所以要尽量用大家都能理解的方式沟通,这对整个团队的运转也非常有好处。
EGO:对您最近的工作和生活,您是否有感触想要分享呢?
丁宁:这两年,从技术转到技术管理,也有挺多感触的。我觉得技术只是一种能力,但要做成一件事情,需要多种能力的综合,比如技术管理、沟通能力、社交能力、对目标的认识等,方方面面都是挑战。
之前一直觉得成为一个技术大牛是件非常牛的事情,没有我解决不了的技术难题,大家都来像我请教。但最后会发现,技术只是一种手段,最主要的还是目标的完成,而仅靠技术并不能解决所有的问题、达成既定目标,其他影响因素会非常多,尤其是创业的时候,这种情况会尤其明显。
所以,当技术达到一定层面之后,技术人一定要提升自己技术之外的能力,如社交、沟通等,当然,到那个时候,现实也会逼着你一定要那么做,然后慢慢在实践中领悟。
EGO:您对 EGO 有何想法和期待?
丁宁: EGO 这个平台真的很好,通过加入 EGO 能认识很多人,也能够学到很多东西,有点儿相见恨晚的感觉。期望的话,还是想认识更多的人,也希望有一些人才推荐的环节、技术管理的培训等,可以让我们的团队去学习、提高。
感谢魏星对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。
评论