BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

赵泽彬:多终端应用下的架构设计
录制于:

| 受访者 赵泽彬 关注 0 他的粉丝 作者 InfoQ 关注 10 他的粉丝 发布于 2018年7月20日 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
12:24

个人简介 赵泽彬,来自于国双科技 。目前负责公司可视化及敏捷BI产品的前端研发工作。

   

1. 欢迎赵老师,首先请赵老师简单介绍一下您自己?

赵泽彬:大家好,我叫赵泽彬,来自于国双科技 。目前负责公司可视化及敏捷BI产品的前端研发工作。

   

2. 多终端同构业务下的架构设计会遇到哪些难题或者挑战呢?

赵泽彬:就目前来说,在我们实际应用的场景中,多终端主要会在两个方面遇到问题,第一个方面我们是通过可视化的配置,应用到不同终端,第一个就是在构建的时候,用比较清晰,准确的和可扩展性的方式,描述出来构建的内容。第二就是在不同终端时候如何提升开发效率和协作的高效的程度,主要这两方面的问题。

   

3. 如果要实现快速交付、部署,前端架构设计需要着重考虑哪些方面?

赵泽彬:当我们在去面对业务的时候,然后是想要更快速,更高效的去交付出来,中间这个过程都需要有哪几个关键点,在我看来主要是,第一就是基础设施的完善程度,第二就是流程的完整程度,第三个就是在应用的时候这个架构设计是不是合理,是不是好用,有没有带来其他的额外的问题,主要这三个方面。

第一就是基础设施。比如说我们从前端这个领域来说,我在去做的时候是不是可以把很多额外的工作都屏蔽掉,然后能够自动化构建,自动化实现,工程化上面去解决这个问题。

第二就是需要更规范,在日常协作上,先做什么,再做什么,包括代码分支应用有很多方式,但是我们就按照一个方式来,避免额外的思考成本和负担,这时候按照统一的方式来就可以做,包括代码的一致性方面。

第三方面就是架构设计,就是包括怎么去组织,包括像今天讲的主题,就是能让功能和代码的复用度达到最高,让大家在做一件事情能产生更多的效果,这三个方面来去做。

   

4. 如何做前端架构设计,能更好地去应用新出现的前端技术和理念,而不至于全盘重写前端代码?

赵泽彬:这个其实我们也有过全盘重写经验,但是在发生这样事情其实是会出现整体的不可控,包括你都不知道什么时候可以完成,在目前我们去做这件事情的时候,会是这样思路,就是首先当你引入一个新的技术的时候,那你一定要想明白它是做什么的,解决什么样的问题,能达到什么样的价值,从整体架构上面来考虑,每一部分能相互之间的职责能更好的分离,这一部分的它功能和逻辑,或者是解决的问题是相对独立的,当你有更好的思路去解决这个问题的时候,只是需要去做局部的替换就可以了。

   

5. 受遗留产品的限制,可能需要采用一些相对比较旧的技术,但是研发人员对接触新技术的都会有着一种渴望,如何能有效地处理这两种矛盾呢?

赵泽彬:在遗留技术上面其实有时候并不需要去按照新的那种(技术)来,因为技术上面并不是新就是最好的,合适就是最好的。但是学习和成长,这是我们肯定是必然的一个诉求。这个还是需要去结合具体的团队的实际情况,比方说包括业务,包括团队的资源的丰富程度,包括接下来的一个规划,这些情况统一来考虑,比如说我们在新技术上面有的可能是我们大家去学,愿意学,我可以组织成兴趣小组一起学一下,这个时候只是作为了解,但是并没有应用诉求。但是有些,我们就是有很多新技术,包括今天讲得GraphQL,以及等等其他的,我们就是要用,这个时候我们就是会比如结合现有的情况需要进行架构调整,这个时候一步一步来,比如我们先可以学习,然后先,把现有的进行梳理好,问题定义清楚,再逐步的应用进来,这样渐进来做,因为大家自己有兴趣和真正能做成还是两回事。就是让大家有兴趣,并且结合业务又能做成,这个我觉得会是一个更有成就感的事情。

   

6. 国双技术实际应用的场景有哪些,目前有了哪些成果?

赵泽彬:就目前来说,公司其实服务了很多行业和客户,就包括政府,司法,智能CRM,包括数字营销等等方面,在这些方面,其实成果上面比较多,已经服务好了很多大客户,目前达到很好效果,这其实就已经证明它本身能力,基于这些场景,比如说我是在做敏捷BI和可视化,相当于我们是一个大数据公司,大数据最终应用的部分,我们是做得是这一部分。这一部分,其实我们会把基于服务客户这些经验沉淀下来,然后应用成,做成一个产品,把这个产品化,然后再去更好的服务客户。

   

7. 您在架构设计中遇到过哪些坑,有哪些建议可以给大家,让大家提前避免?

赵泽彬:这个话题比较大,就是从一些具体目前做过点上来说,就是其实可能最大的一个问题就在于你面对的很多东西都是未知的情况下,或者是头绪比较乱的情况下,怎么去把它理清楚,刚才你问到的是最大的坑是什么?其实最大的坑,就是也是很多小坑积累下来,然后变成一个大坑,这个大坑就在于,当开始的时候,比如说我们就举具体例子来说,开始以配置化的方式来做得时候,思路很简单,就是我在构建端,用配置的方式可视化去配置,在移动端不同终端去解析去实现,那么就是这个配置里面怎么去定义?我们想很简单,只要不同内容往里去加,按照自己的扩展性,设计成比较好的数据结构,但是后面发现,低估了这种影响,但并没有做好补救措施,这个时候可能就会应急性的去兼容,这个时候就会带来了很多历史版本的问题,因为我们产品会有本地部署这种能力,本地部署可能和我们实际研发已经相距一些时间,这个时候,这个问题会让我们会很头疼,但是比如接下来再去做的时候,就会把这个问题去解决,就是很好那个,在去想到一个方案的时候,还是要去做好这些就是不好的一面的可能发生的一些备案,或者防治措施。

   

8. 业务和技术演变是否是在相互促进和影响的?您能举例解释一下吗?

赵泽彬:这个其实我觉得一定是会有影响的,就比如说从技术设计上面,我们在做的时候,做BI和可视化产品的时候,技术设计上面其实考虑了不同终端应用,这个时候到一个阶段,然后有这个需求,然后就去做,做的时候,因为这个需求来了,它的更丰满一些,那么做得时候,发现技术上面有不满足的地方,这个时候技术上面再去完善,完善之后,我们又可以去做其他终端和更高的技术这样一些点,这个时候你会发现,它是相互促进,相互提升的过程。

   

9. 架构设计是一门平衡和取舍的艺术,为满足多终端同构业务需要架构设计做哪些方面的取舍?

赵泽彬:就从这个方面来说取舍的话,就是,首先我们“取”的一方面就是能让代码的复用度更高,那“舍”的一方面就是削弱了个性化的能力,因为你已经规定好这个地方要怎么做,做成什么样,当需要有更个性的实现,而个性的实现可能更好,更满足体验,这个时候你怎么去平衡怎么去解决?可能现在我们更关注的就会是怎么让效率提升起来,协作能力更提升起来,当这个问题解决好之后,你再去解决那个个性化更好的问题。

   

10. 前端相应灵活,开发人员可能会有许多灵活地做法,如何能保证架构设计得到贯彻落实?

赵泽彬:这个方面确实是这样的,就是第一方面其实主要是两个思路,一个思路就是让大家更清楚的理解,然后并且辅助于一定的那种措施,这种措施包括你工具上面的规范,比如说我要去做的时候按照这个步骤,这个步骤来做,我们去做个功能,去做个技术设计,写一下,你要怎么做,大家review一下,这时候还有很多细节是你考虑不到,那就是我们会换成,就是还会有定期的review和评审,看这个代码设计和内容,是不是都能满足这个情况,如果不能满足,可能有需要去调整,也有可能是我们本身现在的一些不满足,那这个时候需要去扩展,需要去解决另外新的问题。

   

11. 现在技术交替非常的快,在面对项目压力时,您是更倾向于团队自身跟进去研究新技术,还是去招聘或者以其他的方式请相关的专家马上投入工作?

赵泽彬:这也没有绝对的A或B,在实际情况中更可能是这样,比如说业务上面有压力了我们会需要有更多的人加入进来一起来去做,因为这个时候可能更多要面对业务上面的压力,这个时候还有新技术要去做,这个时候需要,比如说是结合具体情况来说,可能是我们团队内部,对目前要解决这个问题理解更深刻他来做可能更合适。但比如说,还有一种情况就是,就是我们需要去做,但是我们团队也没有那么了解,这个时候,如果有外面更资深的人加入其实是最大的帮助,所以具体情况还是根据具体选择最合适的方式才是最好。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT