本周工作思考
- 如何做好前端的技术深耕问题
- 在我看来我们的很多前端的技术点、交互点已经到了技术的深入区。这个问题我一直在持续思考,
- 在功能实现上,包括文本编辑器(课程编辑的富文本编辑器,微课编辑器,学习圈主题编辑器,AI语音微课文本编辑器,数学公式编辑器),视频编辑器(AI作业录制, Web录制,语音微课),HTML5 API(小节(学习项目,课程里的一系列)拖拽排序,AI语音微课Slides拖拽排序,切屏防作弊),语音编辑(语音微课),组件编辑器(微页面构建器),资源上传技术(单文件上传,大文件上传,断点续传),视频播放器(直播播放器,语音微课播放器,普通视频播放器,字幕,加密,资源转换),没法一一枚举,特别是Html5和Css3的应用上,我们已经完全拥抱了新技术,在我看来,这一块上我们实际上是超出业界平均水平的,开始构建自己的技术壁垒,还有一些在技术上需要深一步的迭代,比如基于DASH的学习播放器,直播技术栈,多媒体编辑器等;
- 在工程化上,坦白来说我们还是落后于业界平均水平,包括从构建工具链的完整度,发布自动化程度,开发工具链的建设入,代码依赖和复用管理我们还都要更加投入才能有效改善现有的代码生产能力和功能实现效率;
- 在功能开发和工程技术上,一般是采用自研和开源相结合的方式,在功能开发上,核心组件自研的占绝大多数,部分是基于开源的二次开发,很多伙伴,包括很多了解前端但不是前端的伙伴会问一个问题,这个组件你们为什么不用xxx开源的呢,为什么不用xxx架构呢?这类问题其实很难回答,纯从专业度的来说,听者不见得真的理解,纯从应用角度来说,似乎也是婆说婆有理。但在技术决策上,我们坚持4个原则:
1是长期主义,2是一开始就做正确的事情,哪怕有困难,3是专业的人做专业的事,4是技术改变未来。 - 技术长期主义,就是技术选型,架构和设计要考虑充分的变化,要在产品持续迭代,团队长期存在,公司永续发展的前提下,考虑技术的可行性,可能性及其技术的发展趋势,坚持长期主义的公司需要正确面对经济周期,政治周期甚至是历史周期,同时也要面对技术浪潮和技术周期的冲击,技术浪潮来的时候,大家特别容易随波逐流,站在长期主义的视角下能够比较容易的认清我们该走什么样的技术路线
- 一开始就做正确的事情是特别难遵循的,什么是正确的,在技术讨论上非常难,所以要站在更高的维度和视角,对所讨论有更深的理解和应用的时候,才能知道什么是正确的,我们很多的技术类项目研发是在确定什么是“正确”的技术上花费了很多精力和时间,第二层意思是大家要充分学习,提升技术能力,第三层意思是我们要积极吸收我们所不足的技术领域的顶尖人才,快速拉升团队技术视野和技术判断力
- 专业的人做专业的事,是内涵极其丰富的原则,就目前阶段对我来说,第一层意思就是让能搞定技术的人去搞定该搞定的技术,此过程,给予充分的技术信任和外围的支持及管理,第二层意思是每个人都要有自己的技术上的亮点,并且做到专精亮
- 技术改变未来,我觉得这应该是每一位工程师的精神信仰之一,否则很难坚持做冷板凳,很难坚持任劳任怨,很难坚持在平凡的岗位上做些许不平凡的事。其次,专业技术人员所做的任何事都应该从纯技术角度考虑解决方案,而不是一个技术人遇到问题,首先考虑的是我们去找外包啊,我们去找外外部资源啊,如果这样,我建议去做管理。再次,技术可以改变自己的未来,可以改变公司的未来,可以改变他人的未来,甚至会改变社会和历史的未来。
- 随着产品迭代的持续深化,很多技术点和功能点正在经历由量变到质变的过程,也是建立我们自有技术壁垒的最佳阶段,说个大家都能懂的例子,一个接口访问,当有十万级别访问到千万级别的访问时,在开发设计上完全是不同的两个约束,也就是完全不同的设计方案和实现方法,流量逐步上来,设计也在逐步升级,千万级别的接口的实现,绝不是一家刚起步的公司所能理解的,这是个简单直接的例子,很多问题远不是一个接口那么简单的。这个阶段我们也面临很多重要的约束,比如业务关联错综复杂,代码实现因迭代导致了设计意图不清晰,暗线功能不明确等等问题,这就会让我们觉得,不改的话很难持续迭代,改的话往往牵一发动全身,但这就是我们的技术现状,只有在此基础之上实现了技术迭代和升级,才能甩开新的创业公司的疯狂追赶,才能甩开财大气粗的业界大佬们的半路劫杀。所以我们正在逐步面临技术上新的阶段的新的问题,特别是很多功能不是完全新的功能,而是完全的迭代开发,设计方案既要兼顾老功能,也要考虑如何突破,构建新的面向未来的技术架构,面对更复杂的后续迭代,而不是单单是在现有功能上累加代码,因为凡事预则立不预则废。