写点什么

荔枝 FM 丁宁:CTO 要扮演好技术领袖与精神领袖

  • 2015-12-09
  • 本文字数:3015 字

    阅读完需:约 10 分钟

【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))。

2015-12-09 16:565532

评论

发布
暂无评论
发现更多内容

Linux之常见的存储架构

在即

9月日更

高扩展的系统通常会有什么特性

卢卡多多

系统、 9月日更

数据安全与隐私系列08:大数据与电影《少数派报告》

数据与智能

人工智能

JavaScript “上层”语言

Augus

JavaScript 9月日更

JavaScript 的 undefined和null 的区别与判断

wudaxue

Alibaba内部最新Java架构核心宝典 (全彩版小册开源)

Java 架构 面试 程序人生 编程语言

推荐一款 Python 微服务框架 - Nameko

星安果

Python 微服务 Nameko

linux之秘钥登录

入门小站

Linux

吃串串,数签签,这个AI神器一秒搞定

百度大脑

人工智能 EasyDL

2022前端react高频面试题汇总

buchila11

React

java 虚拟机 GC :G1学习笔记

风翱

GC 9月日更

多媒体技术之图像频率的概念

轻口味

android 音视频 9月日更

突发猛进!数字人民币落地推广会召开

CECBC

腾讯高工终于把操作系统、TCP/IP、线程与进程、CPU全部讲明白了

Java 架构 面试 操作系统 计算机

[微服务] You built it.You fix it.

baiyutang

微服务 9月日更

面对低碳转型 央行的两条思路和五大措施

CECBC

我仅用了3个月就成功破茧成蝶!从简历被拒到收割8个大厂offer的辛酸历程!

编程 Java、 计算机

内卷把同事逼成了“扫地僧”,把 Github 上所有面试题都整理了一遍~足足 24W 字!

Java 程序员 面试

考试试卷存储设计

guangbao

回帖抽大奖——5分钟极速体验AI技术能力

百度大脑

人工智能

使用 Chrome 调试 Vue3 的 TypeScript 源码

编程三昧

源码 Vue Vue 3 9月日更

阿里大佬熬了三月,总结出了这套分布式架构手册,在Github上疯传!

Java 架构 面试 程序人生 编程语言

字节内部不传之秘:1298页算法刷题笔记(附源码可直接运行)

Java 程序员 面试

自研ISP芯片背后:手机厂商的目光在影像之外

脑极体

GitHub上120K Stars国内第一的Java多线程PDF到底有什么魅力?

Java 编程 架构 面试 程序人生

网络攻防学习笔记 Day149

穿过生命散发芬芳

9月日更 网络管理

靠着狂刷这份面试题跟答案!我从 15K 变成了 30K!

Java 编程 程序员

内部群炸了!字节同事写了一篇Leetc刷题心得,高管看见之后,直接给他涨了20K

算法 算法题

如何做到监控告警的管理?

睿象云

运维 告警 监控告警 运维平台 告警管理

Redis核心原理与实践--散列类型与字典结构实现原理

binecy

数据结构 源码阅读 Redis 6.0

在线985,211高校查询

入门小站

工具

荔枝FM 丁宁:CTO要扮演好技术领袖与精神领袖_服务革新_陈园园_InfoQ精选文章