全站静态化(甚至淘宝也从KISSY转向了React)
资讯
2024-03-25
396
1. 全站静态化,甚至淘宝也从KISSY转向了React?
React已经在蚂蚁金服使用了一年多的时间,基于React/React-Native我们开发了移动端和pc端的基础组件react-componentantdantm,整合业界最佳实践推出了简单易用的开发工具ant-tool和应用架构roof,服务于蚂蚁金服以及阿里集团的多个业务,取得了良好效果;本次分享将介绍我国过去一年基于React的最佳实践以及展望
基于 React 的前端架构在蚂蚁金服的实践
今天我的主题是是基于React的终端架构,其实还是主要侧重于前端,终端是我们未来前端的一个方向我在阿里的工作分为两个阶段第一个阶段是2010年进淘宝之后,一直做的就是 kissy 类库开发还有周边的工具2014年的时候去了蚂蚁金服,蚂蚁金服的开发策略是全栈开发,所以需要一个技术转型,所以我们这边就选择了React
首先介绍一下蚂蚁金服前端的业务特点蚂蚁金服是由支付宝进化而来的,现在是四大业务,支付宝个人消费,然后是蚂蚁聚宝,主要侧重于理财的,网上银行侧重于企业银行业务的开发,还有一个是侧重于个人消费的O2O的口碑,这个是我们的四大业务
前端面临的业务非常多,而且目前移动端都是结合 web 混合式的,大家可能也听说过阿里已经开发了一个 weex的框架,或者结合react-native来做动态化等等其实它的语言甚至都是javascript,就是对于前端来说这些都是一样的
除了移动端的东西之外,每一个APP的业务下面都会有对应的很多的后台业务支撑,比如做运营的话,就需要运营平台,阿里的特色就是特别注重运营,其实我们内部有很多这种运营平台,都是给小二用的
然后对于蚂蚁的话,蚂蚁有很多的商家,商家也需要商户平台来管理自己的运营只靠专业前端是那么对于前端来说,这么多业务在国内前端都普遍欠缺的情况根本做不过来的所以蚂蚁的一个战略就是说前端不要只做前端的事情了,就是把这些业务的前端工作教会全栈来做
前端就要像DBA一样要提供一些业务支持,提供一些资源服务的一些支持转型就是说我们要走全站研发这样一个模式业务需求最好都是有对应的全栈来做,然后结合产品经理做快速响应需求而前端要做的事情就是要打造一个适合全栈开发的基础设施
前端团队也是在进行转型,不再直接的投入业务,不再像一个资源一样,哪里有业务需求就去哪里而是要进行一个转型,我们只提供服务,而我们服务的输出就是我们的技术产品,就是我们基于 React做的一些类库,或者是做了一些设计的封装,那么培训全栈直接用就可以了
我后面所讲的前端架构面向的观众其实都是全栈的开发,不是前端开发,所以我们的架构会有一些改变
首先我们选择的底层类库是React,我们为什么要选择React技术站,而没有像以前那样我们基于jquery或者 kissy继续做,其实有一些原因
首先React技术栈是比较先进的,它是目前流行的函数式,基于不可变数据并且它是非常务实,在 facebook全网都有应用,经过大量实战考验
第二个是生态圈非常繁荣,React是从2013年发布到现在 star 一直在涨,现在已经四万多了,并且 redux, react-router等等这些类库层出不穷,并且质量非常高
第三个是适用性广,适用性广的话也是根据我们的特点,我们要打造全栈工程师,就希望他们能够用尽量少的技术来应对各种应用场景,无论是 native 端还有web端都希望用一种技术来开发,而React的话,就是提供了我们这样的技术,比如说React和React-Native
第四个是我没写出来,是针对我们公司的,因为蚂蚁金服的后端开发人员是以JAVA开发为主,而React技术栈的整个架构和后端的JAVA架构其实是比较类似的,比较容易被后端开发所接受经过这一年的验证,也确实证明这一点,非常容易上手
我们选型的核心技术是React,ES2015然后还有 typescript是目前正在推进的一个改进,也是特别贴近我们公司的业务,因为我们后台的应用非常复杂,业务逻辑非常多,后端开发是用JAVA,有很多的类型保护这个系统不会轻易的崩溃等等当他们转到前端以后,发现前端太灵活了,根本搞不清楚这个对象里面有哪个方法,属性是什么类型,经常会传错或者运行时抛错,而导致一些对我们前端来说是不可思议的错误我们现在在引进 typescript来对我们的技术产品做一个静态类型的增强,避免一些无谓的错误
我们要打造适合全栈的前端基础设施,这个是我们目前的一个架构图
底层是基于 npm 的,在公司内部对应于 tnpm,大家如果熟悉JAVA的话,就是相当于 maven的这种包管理工具,然后我们会 ant-tool 这样一个编译工具,对应JAVA的话,相当于JAVAC等等的一些工具然后在这之上的话会有一些基础组件,然后基于这些组件我们会封装出适合全栈开发用的一些技术产品通常是融合我们的设计的,比如 antd,然后再结合我们提供的应用架构,全栈就可以基于整个体系来进行业务开发了
首先是包管理器,生态圈很重要,npm 是整个世界上所有的语言中生态最繁华的,里面基本上是应有尽有,所以说我们选择了 npm,并且也是React生态圈推荐的一个管理工具
在我们内部的话,其实阿里在很早以前就已经开始了 nodejs 应用,在我们内部的话,npm 也是有对应的镜像 tnpm,这样的话,前端可以把我们内部的一些应用模块也发到 tnpm 去,各个业务之间想共享模块的话,就直接从 tnpm 拉取就可以了,另外为后期的优化打造了一个坚实的基础
工具方面我们也是基于业界的一些优秀方案进行封装,webpack的功能是非常强大的,配置也是非常复杂的,配置文件可能经常就有几百行的样子所以说对于全栈开发来说,除了业务开发,还要熟悉 webpack 的配置等等我们希望全栈能够专注于业务我们根据自己的经验总结把它封装起来,这样的话就是一个简单的命令行工具,可以实现代理,构建,离线打包等,还有代码规范的约束
最终输出是一个脚手架,因为直接用工具的话,还是比较复杂的因为还知道它的很多命令啊,怎么用啊,直接输出脚手架,我们会把这些开发工具通过npm script来暴露出来,这样就可以直接进行开发还有构建等等,不需要了解更多工具细节了
我们目前组件分成三大部分,首先是底层的react-component,这个在 github上开源了,这些底层组件的话通常是不涉及设计的,就是它没有设计要素在里面,只是实现结构和功能,那么在基于这个组件,会有基于我们的设计的封装,还有移动端的封装
因为React是跨终端的,所以这些组件,在编写的时候也是考虑了多终端下面的运行,如果是通用组件的话,就是没有前缀,然后这些组件的话经常是用PC还有PAD 等大屏设备上的如果有m 前缀的话,这些都是我们单独为移动端 UI的交互所实现的同时会适配web和native,组件的API是一样的,如果运行环境支持 react-native 的话,那么业务就可以跨终端运行了
组件规范包括assets,样式的话我们目前选择是BEM,然后通过 prefixCls 来适配不同的设计,这样的话底层组件不仅能够适配蚂蚁金服的 ant design 设计上,还可以适配到阿里巴巴的其它一些设计
源码 src 部分是ES6,目前是向 typescript迁移,并且部分组件的话会适配 react-native如果基于这套脚手架来实现的话,会支持很多开源的一些基础设施,比如 travis 持续集成平台,coverall 测试覆盖率平台
组件开发时通过 npm run dev启动开发服务器,可以访问示例地址进行开发测试通过 npm test在终端测试,还可以进行 npm run chrome-test,在 chrome 中进行可视化测试,还可以进行debug
通过 pre-commit 进行提交检测,代码检测通过后才会真正的提交到代码库
目前采用的是ES2015,所以是不能是直接发到 npm上面用的,我们用 npm run pub 命令,执行编译和发布,把 es6/typescript编译为 ES5代码,进行提交发布,构建项目展示页这样就完成了组件的一个完整的开发流程
组件开发完成还不是真正的完成,还需要样式来适配,我们对外暴露的是一个设计语言,包括封装好的组件,组件包含功能设计和交互,这些是全公司统一的,有一定的设计原则,然后还有一些设计模式的沉淀,有对应的工具,参考案例,然后会培训全栈来开发,培训产品经理设计
Ant design是跨终端的,它可以后台,也可以针对移动端遵循的原则其实首先是非常实用的,这个设计语言我们是希望能够统一蚂蚁金服的设计第二它是小而美的,它的组件是非常多的,可以根据业务特点按需使用
后面两个就是它是有统一的交互和动画,形成一个统一的品牌输出
实现包含两个部分,第一个就是PC端的实现,PC端的实现就是antd,这个库的话目前已经开源,在ATM里面包含了很多组件,它是对底层组件的一个封装,然后融合设计,形成了一个统一UI,用户只需要组件,进行一些布局和拼装
我们也在进行国际化,蚂蚁金服现在也在进行一些国际化的业务,那么对于多语言的支持也是有非常强烈的需求同时我们在国外的话也有一些影响,一些国外的开发者希望我们能够更国际化一些,现在会增加一些国际化的文件,对文档进行翻译,我们是和国外的开发者一起进行的,我们翻译之后会请那些国外开发者来 review
使用的时候不需要关心样式,和那个JAVA里面的import是一样的直接通过标签化的使用,进行一些业务处理会有一个 babel 插件进行按需加载,如果直接用 import antd的话,打包后会很大所以有了这个插件之后,可以进行按需加载
Ant.design是一个SPA的单页面应用,依赖一个工具叫 bisheng.目前 antd在国内外取得了比较好的影响目前 star有4200多了
ant design mobile一方面要考虑web端,要考虑小屏场景,另外一个就是我们要考虑react-native,能够同时用在web和react-native,并且通过React组件的封装达到一致的API比较 react-native,如果 react-native 有的组件,web端也要实现,如果 react-native 没有的话,web 端和 native 都要实现
antm web 端基础设施和 antd 是一样的,ios 和 android 是单独的基础设施,可以通过 npm 命令来直接运行展示
三套组件定位不一样配置也不一样底层组件配置多, antd主要满足蚂蚁金服的统一品牌,配置少,交互设计固定,面向用户是全栈用户和初级的前端用户扩展性也不一样只有组件不行,还需要应用框架,组件拼装,处理了展示层的问题,业务要和服务器进行交互,处理数据和联动,这样的话就需要应用框架,应用框架的话我们目前是有两套方案,我们之前开发了非常简单的一个数据绑定库,因为我们在做业务的时候发现经常碰到数据联动的需求我们采用经典的订阅和发布模式 另外对于一些特别复杂的业务,比如说像金融云,使用起来挺麻烦的
后面我们侧重于社区,会从社区里面找一些优秀的类库形成企业端的应用框架
单页应用需要一个库来响应URL变化获取数据获取数据之后传给React渲染,渲染之后响应交互,响应交互之后我们再处理数据,把这个数据再传给服务器,或者对这个数据进行一个二次加工,然后再传给对应的组件来进行服务,比较固定的流程
我们就选择了一些优秀类库来实现这种场景比如说URL到数据这样的一个控制,我们可以通过 react-router 来实现,那么当这个UR发生变化之后,那么React就会重新渲染我们的组件,这个组件就可以获取数据,然后获取数据的话我们可以通过新的标准,以及 fetch 来方便我们和服务器来进行内部交互
有了数据之后,通过redux把数据映射到react,通过CSS module,避免了CSS冲突通过脚手架的形式来输出来,组件放在哪里,还有那个路由放在哪里,都是通过目录的形式来约定,这样的话就是避免了代码的腐化前面是说服务器交互的话,服务器交互我们用的是 fetch/falcor两种方案基于 async/await 把异步回调转化为同步调用
另外一个就是 falcor, 通过 falcor可以**减少了页面请求,特别是首屏的展现,提高响应速度
最后总结下开发流程,通过 npm 下载 antd 和其他需要的类库,然后拼装组件后结合应用架构完成业务需求业务落地主要是antd,从发布一年多以来,覆盖全部系统40%,新的业务占有率是100%
未来是希望能够把静态类型引入到类库中去,这样的话减少传统的后端开发人员开发前端代码时的错误
移动端的目标是 web 和 native 齐头并进,达到组件API的兼容,能够在各个终端快速迁移服务器端探索 falcor 或 graphql,通过这种统一数据模型来规范前后端交互 完善国际化的资源和文档,支撑蚂蚁金服的国际化发展
最后是业务模式库,和业务方面结合,规范我们的业务,通过提供通用的业务组件来更好的支持多业务线之间的共享
2. 元宇宙是什么意思?
关于开创“元宇宙”,VeryCloud全场景CDN加速服务有话说
“元宇宙(Metaverse)是利用科技手段进行链接与创造的,与现实世界映射与交互的虚拟世界,具备新型社会体系的数字生活空间。元宇宙一词诞生于1992年的科幻小说《雪崩》,小说描绘了一个庞大的虚拟现实世界,在这里,人们用数字化身来控制,并相互竞争以提高自己的地位,到如今看来,描述的还是超前的未来世界。”
“元宇宙”诞生于社会正经历的超级大转型,面对超级大转型,我们需要突破传统思想、理论和模式,启动大设计和大实验。
作为应时而生的超大历史实验的场所、载体和平台,“元宇宙”给人们思考、观察和新型体验的机会,推动现实世界和虚拟现实世界的互动,加快数字解放、数字自由和数字正义时代的来临,使每个人获得展现潜力的机会。图片来源网络而其发展需要大规模的计算和存储,庞大用户群带来的用户体验压力也让互联网面临前所未有的挑战,特别是在“元宇宙”高速发展的当下,保证互联网访问体验的重要性更进一步凸显。因此,CDN技术作为网络底层基础,持续的迭代优化是保障“元宇宙”新交互形式流畅体验的关键要素之一。为了增强自身的核心竞争力,VeryCloud一直进行了资源拓展与建设,CDN节点数现突破600+,致力为客户提供专业的技术咨询、架构演示、降本增效、服务在线迁移等一站式服务。整合资源优势,自建融合CDNVeryCloud全场景CDN加速服务通过CDN自有链路将源站内容安全,快速的分发到离用户最近的节点,使用户能就近获取资源,并与市场上主流CDN厂商如:AWS、Google、Cloudflare、阿里等一线品牌合作推出融合CDN,结合VeryCloud自主研发的智能调度系统,对服务节点进行多维度实时监控,合理剔除异常点,整体稳定性可达99.99%,为金融证券、游戏下载、在线教育、互动直播、电商等客户提供更高效、稳定、安全的CDN服务。VeryCloud自建融合CDN保障网络传输,全站加速CDN随着互联网渗透率增大,用户对于网络稳定性和传输速度等有更高的要求。VeryCloud全场景CDN加速服务动态内容采用智能路由、传输协议优化和链路复用技术,静态内容采用边缘缓存,提升整站资源加载速度,能为新闻门户、游戏、金融、电商、社交、政企等行业客户一站式解决页面动静态资源混杂、跨运营商、网络不稳定、单线源站、突发流量、网络拥塞等诸多因素导致的响应慢、丢包、服务不稳定的问题,提升全站性能和用户体验。VeryCloud全站加速CDN基于以上部分产品所阐述的特性和优势,面对流量与用户体验的双重压力,VeryCloud CDN技术不仅是提升网络访问质量的有效手段,更是企业实现降本增效的一剂良药。期待未来在更加强大算力的支撑下,元宇宙通过推动技术的跨业融合,为整个世界带来颠覆性、创新性的巨大影响,让我们迎接另一个有趣又与众不同的世界。⭐⭐⭐想了解VeryCloud云端网络更多内容⬇⬇⬇(点击标题下的公众号名称关注我们~)关于开创“元宇宙”,VeryCloud全场景CDN加速服务有话说或VX搜索公众号“VeryCloud云端网络”关注我们,查看更多~⭐⭐⭐想了解更多云端相关⬇⬇⬇云端网络门户网站⭐⭐⭐点击关注VeryCloud云端网络,了解更多干货⬇⬇⬇VeryCloud云端网络头条主页欢迎点赞,欢迎关注,欢迎探讨~3. 测绘工程怎么样?
我是测绘工程专业毕业的,已经干了十来年野外测量。关于测绘工程如何,我是学工程测量,我个人结合自身经验回答。
工程测量行业,总结起来:地位低、待遇相对较低(同施工管理比较)、工作辛苦、责任重大,但工作容易找,干测量基本不用愁找不到工作。
我要庆幸的是,我不是搞常规地形图测量,而是变形监测,我干过地铁、基坑、房屋、隧道、边坡、长江大桥、水电站、矿山等安全监测。
(1)工作辛苦干测量不像搞施工管理,做施工管理的只要管理,不要自己动手,而测量是技术活,你不干谁干。测量工作场地都是野外满山跑,衣服、鞋子从来没有干过,不是汗水就是雨水,测量人可悲可泣,如果能不干测量,早点转行。
(2)责任重大所有项目的建设都是根据你的放线确定位置,如果你放样坐标放错了,可想而知后果是如何,像隧道如果贯通偏差较大,贯通的两侧无法顺利贯通,会产生多大的后果,经常自己晚上都睡不着。
(3)工作容易找测量干活性质都一样,因为在哪个设计院干的活都差不多,都是测量和测设,唯一的区别就是待遇问题。有的单位待遇好,有的待遇比较低,但是,测量行业毕竟是艰苦行业,干一两年都成组长,一年待遇基本都上10W以上,相对其他行业还是有优势,“吃不饱,又饿不死”。
(4)发展前途如果你是在测绘领域工作,大家都是测量人,因此地位没有歧视的感觉,在同领域就是正常竞争了,事业单位就按照年纪来评职称和晋级。如果民企的话那就是按照能力拿薪酬和职位。如果是在施工单位,测量一般就是一个辅助性岗位,既然是辅助性的,在前途上,一般混到测量队长、工程部部长职位或者总工,我很多同学都是这个岗位,毕竟专业受限,大型工程更难有晋升。
虽然测绘领域在测量技术方面有了很多突破,但是还有很多项目还需测量人用脚步一步一步走出来,如果年轻能转行就尽快转行。不仅仅为了工作,我们还要为了家庭着想,不能亏欠父母孩子,测量人在外面一定要记着,家里还有人在等着你,多注意安全。大家有什么的讨论的可以在下面留言,欢迎点评,也可关注我一起交流。
4. 哪里可以下载免费的ppt素材模板?
一次解决终生的模板问题,建议先收藏再阅读。比起下载10000000个无法使用的模板,真正有点用的:是分门别类、随用随取、优质高效的的模板网站。
先说人人喜欢的“免费PPT模板网站”-希望你知道这两个超好用的免费网站。
免费好用的网站很少,拉轰推荐这两个,其他的51ppt等,只能说呵呵二字。
1.PPT之家
界面简洁、标志清晰、100万高品质PPT模板和素材
任意点击一个测试:
1.下载链接是否容易找到,下载是否复杂繁琐?
2.质量如何?
3.有没有广告?
点击幻灯片, 出现需要输入密码界面。扫码后提示输入秘密-52ppt。
实际上只需要记住这个秘密,以后就直接输入即可。很方便。
记住密码即可。输入密码后出现下载地址,点击下载地址后立即开始下载。
实测,下载的压缩包可以直接打开。
网站:PPT之家
推荐指数:★★★★
推荐理由:质量优质、下载便捷、海量模板
2.叮当设计
该网站还有免费的相关课程:
测试实际下载体验:
假设准备下载下图的党建工作ppt模板,点击后-进入预览界面
下载地址,位于右上方。
点击下载按钮后,进入百度网盘下载界面,输入验证码后得到下面界面:
点击下载按钮后,进入下载过程,没有其他操作,未见任何广告。
压缩包可直接打开,效果如下图:
质量优质,
网站:叮当设计
推荐星级:★★★★
推荐理由:免费优质、海量下载、下载简单、无需扫码、无广告
以上两个完全免费的网站已经够用了,不需要更加优质或不想付费的伙伴不必往下看了。
请思考一个问题:
如果花39元钱,换终生免费下载的会员资格,你觉得值得吗?
我的答案是:不是值,而是超值。
如果你觉得免费的已经足够,那你很可能没有用过付费网站。
付费39元后,任意点击一个模板:
一键完成下载,没有其他操作-无需跳转、无需扫码、没有广告-36M(刚才免费网站下载的均在10m以下。)
酷炫的动画、质感的配色、灵动的衔接==优质模板的必备
模板分场景、分行业、分风格,只有你想不到的,没有你找不到的。
以常见的工作总结为例
酷炫的科技感模板:
除了PPT模板,该网站还提供word模板:
比如很多网站需要单个付费的简历模板,这里任意下载:
需要背景图,任意下载:
各种合同范本,任意下载:
各种excel表格任意下载:
ppt酷炫的图表,任意下载:
你根本不需要会制作复杂的图片,只需要知道这个网站即可让领导同事刮目相看。
而且,该网站提供各类视频教程,39元超值到超乎想象:
还有?还真有。
自带实用工具-抠图。
网站:办公资源网
推荐星级:★★★★★
推荐理由:超级优质、价格实惠(39元终生会员,全站免费)、一键下载、分类齐全、各种教程、实用工具
推荐完了5星好站,还有没有更加优质的网站-有。
下面这个网站=更贵+更好
因为这个网站更贵,推荐星级为4星。
本文不介绍具体名称,因为以上内容已经够用。
总结一下:
记住两个超级免费网站,记住一个39元的付费模板网站,PPT模板问题就可以完全解决。
下面为本文赠送内容:
注意:公文写作可用小恐龙办公助手,但这不是首选。首选为办公神器,模板功能+编辑功能+排版功能。
手机端语音转文字,其实可以一分钱都不花。(网友评论,秒杀讯飞)
好用免费的软件,真的没几个人知道。
综合资源网站,要什么有什么。
你需要提高办公效率吗?
就是2个小时的工作压缩到20分钟那种。比如批量修改文件名/汇报总结/模板下载/自动化处理都是实现的方法。
拉轰读书,一个让人倍感暖心的头条号。
7800高端人士的选择-你也值得拥有。
可能会分享的内容-尽请关注。
1.比“小恐龙办公助手”更好的文档写作辅助工具,说好5倍你可能不信,好2倍绝对没有吹牛。
2.ppt模板有多好好用的免费网站,有米有一个导航网站,一目了然那种。
3.公文格式老是模模糊糊,能不能一次说清楚。
4.电子表格函数、公式太复杂,小白不想学,有没有办法解决。
5.文件管理是老大难问题,到底什么软件让办公效率翻倍。
拉轰推荐,必属精品。
关键词:ppt模板0628
请用于:评论+私信
5. PHP开发和SEO推广有关系么?
本质上没有具体联系,但是细微之处还是有联系的。这就和万物之间的关系一样,初看貌似没有什么关联,但是其实一定有关联的。只不过这种关联有时候被我们忽略掉了罢了。
php一种编程语言,主要用于开发web。seo一种优化技术,主要用来提升网站的搜索引擎排名。
网站可以使用pho开发,但是也可以使用java,go,python来进行开发。因此,可以说它们有联系,也可以说没有具体联系。
seo是一种优化技术,但是具体如何优化,就需要一些手段。比如,我们需要优化我们的标题,关键词,描述,文章内容,网站内链等等,可以说是一门复杂的技术,而且这门技术会随着搜索引擎的改变而改变,我们需要不断去调整我们的技术。
php如何优化seo,需要设置伪静态,需要控制内容的分布需要提升页面的渲染速度,需要分类关键词,需要聚焦网站关键词等等,可以说,我们可以通过php来进一步优化我们的网站排名,但是php绝不是唯一的技术手段。
6. 冷机器空压机咋推广嘞?
我去年为一家空压机企业做了一年SEO,网站整体也做了大调整,取得了比较理想的业绩。主要考虑了以下几方面因素:
1、全站页面URL静态化处理;
2、首页、列表页、详情页等各页面关键词布局;
3、文章标题、描述、关键词、正文关键词密度、同义词的部署及完善;
4、自动生成网站地图;
5、交换高质量友情链接;
6、PC端与M端页面自适应调整;
7、网页加载速度优化;
8、JS脚本及异步加载优化;
9、其他更多SEO自动化功能优化。
7. 动态cdn和静态cdn有什么区别?
CDN是内容发给网络Content Delivery Network,通过在网络各处摆放节点服务器所包含的在现有的互联网基础之上的一层智能虚拟世界网络,普通CDN是只加快网站静态资源,而全站CDN是动态资源也加快。
静态是指图片,flash等内容,每个人采访看见的都是一样的。动态是指登岸、登记等信息,每个人看见的自己的信息。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!
1. 全站静态化,甚至淘宝也从KISSY转向了React?
React已经在蚂蚁金服使用了一年多的时间,基于React/React-Native我们开发了移动端和pc端的基础组件react-componentantdantm,整合业界最佳实践推出了简单易用的开发工具ant-tool和应用架构roof,服务于蚂蚁金服以及阿里集团的多个业务,取得了良好效果;本次分享将介绍我国过去一年基于React的最佳实践以及展望
基于 React 的前端架构在蚂蚁金服的实践
今天我的主题是是基于React的终端架构,其实还是主要侧重于前端,终端是我们未来前端的一个方向我在阿里的工作分为两个阶段第一个阶段是2010年进淘宝之后,一直做的就是 kissy 类库开发还有周边的工具2014年的时候去了蚂蚁金服,蚂蚁金服的开发策略是全栈开发,所以需要一个技术转型,所以我们这边就选择了React
首先介绍一下蚂蚁金服前端的业务特点蚂蚁金服是由支付宝进化而来的,现在是四大业务,支付宝个人消费,然后是蚂蚁聚宝,主要侧重于理财的,网上银行侧重于企业银行业务的开发,还有一个是侧重于个人消费的O2O的口碑,这个是我们的四大业务
前端面临的业务非常多,而且目前移动端都是结合 web 混合式的,大家可能也听说过阿里已经开发了一个 weex的框架,或者结合react-native来做动态化等等其实它的语言甚至都是javascript,就是对于前端来说这些都是一样的
除了移动端的东西之外,每一个APP的业务下面都会有对应的很多的后台业务支撑,比如做运营的话,就需要运营平台,阿里的特色就是特别注重运营,其实我们内部有很多这种运营平台,都是给小二用的
然后对于蚂蚁的话,蚂蚁有很多的商家,商家也需要商户平台来管理自己的运营只靠专业前端是那么对于前端来说,这么多业务在国内前端都普遍欠缺的情况根本做不过来的所以蚂蚁的一个战略就是说前端不要只做前端的事情了,就是把这些业务的前端工作教会全栈来做
前端就要像DBA一样要提供一些业务支持,提供一些资源服务的一些支持转型就是说我们要走全站研发这样一个模式业务需求最好都是有对应的全栈来做,然后结合产品经理做快速响应需求而前端要做的事情就是要打造一个适合全栈开发的基础设施
前端团队也是在进行转型,不再直接的投入业务,不再像一个资源一样,哪里有业务需求就去哪里而是要进行一个转型,我们只提供服务,而我们服务的输出就是我们的技术产品,就是我们基于 React做的一些类库,或者是做了一些设计的封装,那么培训全栈直接用就可以了
我后面所讲的前端架构面向的观众其实都是全栈的开发,不是前端开发,所以我们的架构会有一些改变
首先我们选择的底层类库是React,我们为什么要选择React技术站,而没有像以前那样我们基于jquery或者 kissy继续做,其实有一些原因
首先React技术栈是比较先进的,它是目前流行的函数式,基于不可变数据并且它是非常务实,在 facebook全网都有应用,经过大量实战考验
第二个是生态圈非常繁荣,React是从2013年发布到现在 star 一直在涨,现在已经四万多了,并且 redux, react-router等等这些类库层出不穷,并且质量非常高
第三个是适用性广,适用性广的话也是根据我们的特点,我们要打造全栈工程师,就希望他们能够用尽量少的技术来应对各种应用场景,无论是 native 端还有web端都希望用一种技术来开发,而React的话,就是提供了我们这样的技术,比如说React和React-Native
第四个是我没写出来,是针对我们公司的,因为蚂蚁金服的后端开发人员是以JAVA开发为主,而React技术栈的整个架构和后端的JAVA架构其实是比较类似的,比较容易被后端开发所接受经过这一年的验证,也确实证明这一点,非常容易上手
我们选型的核心技术是React,ES2015然后还有 typescript是目前正在推进的一个改进,也是特别贴近我们公司的业务,因为我们后台的应用非常复杂,业务逻辑非常多,后端开发是用JAVA,有很多的类型保护这个系统不会轻易的崩溃等等当他们转到前端以后,发现前端太灵活了,根本搞不清楚这个对象里面有哪个方法,属性是什么类型,经常会传错或者运行时抛错,而导致一些对我们前端来说是不可思议的错误我们现在在引进 typescript来对我们的技术产品做一个静态类型的增强,避免一些无谓的错误
我们要打造适合全栈的前端基础设施,这个是我们目前的一个架构图
底层是基于 npm 的,在公司内部对应于 tnpm,大家如果熟悉JAVA的话,就是相当于 maven的这种包管理工具,然后我们会 ant-tool 这样一个编译工具,对应JAVA的话,相当于JAVAC等等的一些工具然后在这之上的话会有一些基础组件,然后基于这些组件我们会封装出适合全栈开发用的一些技术产品通常是融合我们的设计的,比如 antd,然后再结合我们提供的应用架构,全栈就可以基于整个体系来进行业务开发了
首先是包管理器,生态圈很重要,npm 是整个世界上所有的语言中生态最繁华的,里面基本上是应有尽有,所以说我们选择了 npm,并且也是React生态圈推荐的一个管理工具
在我们内部的话,其实阿里在很早以前就已经开始了 nodejs 应用,在我们内部的话,npm 也是有对应的镜像 tnpm,这样的话,前端可以把我们内部的一些应用模块也发到 tnpm 去,各个业务之间想共享模块的话,就直接从 tnpm 拉取就可以了,另外为后期的优化打造了一个坚实的基础
工具方面我们也是基于业界的一些优秀方案进行封装,webpack的功能是非常强大的,配置也是非常复杂的,配置文件可能经常就有几百行的样子所以说对于全栈开发来说,除了业务开发,还要熟悉 webpack 的配置等等我们希望全栈能够专注于业务我们根据自己的经验总结把它封装起来,这样的话就是一个简单的命令行工具,可以实现代理,构建,离线打包等,还有代码规范的约束
最终输出是一个脚手架,因为直接用工具的话,还是比较复杂的因为还知道它的很多命令啊,怎么用啊,直接输出脚手架,我们会把这些开发工具通过npm script来暴露出来,这样就可以直接进行开发还有构建等等,不需要了解更多工具细节了
我们目前组件分成三大部分,首先是底层的react-component,这个在 github上开源了,这些底层组件的话通常是不涉及设计的,就是它没有设计要素在里面,只是实现结构和功能,那么在基于这个组件,会有基于我们的设计的封装,还有移动端的封装
因为React是跨终端的,所以这些组件,在编写的时候也是考虑了多终端下面的运行,如果是通用组件的话,就是没有前缀,然后这些组件的话经常是用PC还有PAD 等大屏设备上的如果有m 前缀的话,这些都是我们单独为移动端 UI的交互所实现的同时会适配web和native,组件的API是一样的,如果运行环境支持 react-native 的话,那么业务就可以跨终端运行了
组件规范包括assets,样式的话我们目前选择是BEM,然后通过 prefixCls 来适配不同的设计,这样的话底层组件不仅能够适配蚂蚁金服的 ant design 设计上,还可以适配到阿里巴巴的其它一些设计
源码 src 部分是ES6,目前是向 typescript迁移,并且部分组件的话会适配 react-native如果基于这套脚手架来实现的话,会支持很多开源的一些基础设施,比如 travis 持续集成平台,coverall 测试覆盖率平台
组件开发时通过 npm run dev启动开发服务器,可以访问示例地址进行开发测试通过 npm test在终端测试,还可以进行 npm run chrome-test,在 chrome 中进行可视化测试,还可以进行debug
通过 pre-commit 进行提交检测,代码检测通过后才会真正的提交到代码库
目前采用的是ES2015,所以是不能是直接发到 npm上面用的,我们用 npm run pub 命令,执行编译和发布,把 es6/typescript编译为 ES5代码,进行提交发布,构建项目展示页这样就完成了组件的一个完整的开发流程
组件开发完成还不是真正的完成,还需要样式来适配,我们对外暴露的是一个设计语言,包括封装好的组件,组件包含功能设计和交互,这些是全公司统一的,有一定的设计原则,然后还有一些设计模式的沉淀,有对应的工具,参考案例,然后会培训全栈来开发,培训产品经理设计
Ant design是跨终端的,它可以后台,也可以针对移动端遵循的原则其实首先是非常实用的,这个设计语言我们是希望能够统一蚂蚁金服的设计第二它是小而美的,它的组件是非常多的,可以根据业务特点按需使用
后面两个就是它是有统一的交互和动画,形成一个统一的品牌输出
实现包含两个部分,第一个就是PC端的实现,PC端的实现就是antd,这个库的话目前已经开源,在ATM里面包含了很多组件,它是对底层组件的一个封装,然后融合设计,形成了一个统一UI,用户只需要组件,进行一些布局和拼装
我们也在进行国际化,蚂蚁金服现在也在进行一些国际化的业务,那么对于多语言的支持也是有非常强烈的需求同时我们在国外的话也有一些影响,一些国外的开发者希望我们能够更国际化一些,现在会增加一些国际化的文件,对文档进行翻译,我们是和国外的开发者一起进行的,我们翻译之后会请那些国外开发者来 review
使用的时候不需要关心样式,和那个JAVA里面的import是一样的直接通过标签化的使用,进行一些业务处理会有一个 babel 插件进行按需加载,如果直接用 import antd的话,打包后会很大所以有了这个插件之后,可以进行按需加载
Ant.design是一个SPA的单页面应用,依赖一个工具叫 bisheng.目前 antd在国内外取得了比较好的影响目前 star有4200多了
ant design mobile一方面要考虑web端,要考虑小屏场景,另外一个就是我们要考虑react-native,能够同时用在web和react-native,并且通过React组件的封装达到一致的API比较 react-native,如果 react-native 有的组件,web端也要实现,如果 react-native 没有的话,web 端和 native 都要实现
antm web 端基础设施和 antd 是一样的,ios 和 android 是单独的基础设施,可以通过 npm 命令来直接运行展示
三套组件定位不一样配置也不一样底层组件配置多, antd主要满足蚂蚁金服的统一品牌,配置少,交互设计固定,面向用户是全栈用户和初级的前端用户扩展性也不一样只有组件不行,还需要应用框架,组件拼装,处理了展示层的问题,业务要和服务器进行交互,处理数据和联动,这样的话就需要应用框架,应用框架的话我们目前是有两套方案,我们之前开发了非常简单的一个数据绑定库,因为我们在做业务的时候发现经常碰到数据联动的需求我们采用经典的订阅和发布模式 另外对于一些特别复杂的业务,比如说像金融云,使用起来挺麻烦的
后面我们侧重于社区,会从社区里面找一些优秀的类库形成企业端的应用框架
单页应用需要一个库来响应URL变化获取数据获取数据之后传给React渲染,渲染之后响应交互,响应交互之后我们再处理数据,把这个数据再传给服务器,或者对这个数据进行一个二次加工,然后再传给对应的组件来进行服务,比较固定的流程
我们就选择了一些优秀类库来实现这种场景比如说URL到数据这样的一个控制,我们可以通过 react-router 来实现,那么当这个UR发生变化之后,那么React就会重新渲染我们的组件,这个组件就可以获取数据,然后获取数据的话我们可以通过新的标准,以及 fetch 来方便我们和服务器来进行内部交互
有了数据之后,通过redux把数据映射到react,通过CSS module,避免了CSS冲突通过脚手架的形式来输出来,组件放在哪里,还有那个路由放在哪里,都是通过目录的形式来约定,这样的话就是避免了代码的腐化前面是说服务器交互的话,服务器交互我们用的是 fetch/falcor两种方案基于 async/await 把异步回调转化为同步调用
另外一个就是 falcor, 通过 falcor可以**减少了页面请求,特别是首屏的展现,提高响应速度
最后总结下开发流程,通过 npm 下载 antd 和其他需要的类库,然后拼装组件后结合应用架构完成业务需求业务落地主要是antd,从发布一年多以来,覆盖全部系统40%,新的业务占有率是100%
未来是希望能够把静态类型引入到类库中去,这样的话减少传统的后端开发人员开发前端代码时的错误
移动端的目标是 web 和 native 齐头并进,达到组件API的兼容,能够在各个终端快速迁移服务器端探索 falcor 或 graphql,通过这种统一数据模型来规范前后端交互 完善国际化的资源和文档,支撑蚂蚁金服的国际化发展
最后是业务模式库,和业务方面结合,规范我们的业务,通过提供通用的业务组件来更好的支持多业务线之间的共享
2. 元宇宙是什么意思?
关于开创“元宇宙”,VeryCloud全场景CDN加速服务有话说
“元宇宙(Metaverse)是利用科技手段进行链接与创造的,与现实世界映射与交互的虚拟世界,具备新型社会体系的数字生活空间。元宇宙一词诞生于1992年的科幻小说《雪崩》,小说描绘了一个庞大的虚拟现实世界,在这里,人们用数字化身来控制,并相互竞争以提高自己的地位,到如今看来,描述的还是超前的未来世界。”
“元宇宙”诞生于社会正经历的超级大转型,面对超级大转型,我们需要突破传统思想、理论和模式,启动大设计和大实验。
作为应时而生的超大历史实验的场所、载体和平台,“元宇宙”给人们思考、观察和新型体验的机会,推动现实世界和虚拟现实世界的互动,加快数字解放、数字自由和数字正义时代的来临,使每个人获得展现潜力的机会。图片来源网络而其发展需要大规模的计算和存储,庞大用户群带来的用户体验压力也让互联网面临前所未有的挑战,特别是在“元宇宙”高速发展的当下,保证互联网访问体验的重要性更进一步凸显。因此,CDN技术作为网络底层基础,持续的迭代优化是保障“元宇宙”新交互形式流畅体验的关键要素之一。为了增强自身的核心竞争力,VeryCloud一直进行了资源拓展与建设,CDN节点数现突破600+,致力为客户提供专业的技术咨询、架构演示、降本增效、服务在线迁移等一站式服务。整合资源优势,自建融合CDNVeryCloud全场景CDN加速服务通过CDN自有链路将源站内容安全,快速的分发到离用户最近的节点,使用户能就近获取资源,并与市场上主流CDN厂商如:AWS、Google、Cloudflare、阿里等一线品牌合作推出融合CDN,结合VeryCloud自主研发的智能调度系统,对服务节点进行多维度实时监控,合理剔除异常点,整体稳定性可达99.99%,为金融证券、游戏下载、在线教育、互动直播、电商等客户提供更高效、稳定、安全的CDN服务。VeryCloud自建融合CDN保障网络传输,全站加速CDN随着互联网渗透率增大,用户对于网络稳定性和传输速度等有更高的要求。VeryCloud全场景CDN加速服务动态内容采用智能路由、传输协议优化和链路复用技术,静态内容采用边缘缓存,提升整站资源加载速度,能为新闻门户、游戏、金融、电商、社交、政企等行业客户一站式解决页面动静态资源混杂、跨运营商、网络不稳定、单线源站、突发流量、网络拥塞等诸多因素导致的响应慢、丢包、服务不稳定的问题,提升全站性能和用户体验。VeryCloud全站加速CDN基于以上部分产品所阐述的特性和优势,面对流量与用户体验的双重压力,VeryCloud CDN技术不仅是提升网络访问质量的有效手段,更是企业实现降本增效的一剂良药。期待未来在更加强大算力的支撑下,元宇宙通过推动技术的跨业融合,为整个世界带来颠覆性、创新性的巨大影响,让我们迎接另一个有趣又与众不同的世界。⭐⭐⭐想了解VeryCloud云端网络更多内容⬇⬇⬇(点击标题下的公众号名称关注我们~)关于开创“元宇宙”,VeryCloud全场景CDN加速服务有话说或VX搜索公众号“VeryCloud云端网络”关注我们,查看更多~⭐⭐⭐想了解更多云端相关⬇⬇⬇云端网络门户网站⭐⭐⭐点击关注VeryCloud云端网络,了解更多干货⬇⬇⬇VeryCloud云端网络头条主页欢迎点赞,欢迎关注,欢迎探讨~3. 测绘工程怎么样?
我是测绘工程专业毕业的,已经干了十来年野外测量。关于测绘工程如何,我是学工程测量,我个人结合自身经验回答。
工程测量行业,总结起来:地位低、待遇相对较低(同施工管理比较)、工作辛苦、责任重大,但工作容易找,干测量基本不用愁找不到工作。
我要庆幸的是,我不是搞常规地形图测量,而是变形监测,我干过地铁、基坑、房屋、隧道、边坡、长江大桥、水电站、矿山等安全监测。
(1)工作辛苦干测量不像搞施工管理,做施工管理的只要管理,不要自己动手,而测量是技术活,你不干谁干。测量工作场地都是野外满山跑,衣服、鞋子从来没有干过,不是汗水就是雨水,测量人可悲可泣,如果能不干测量,早点转行。
(2)责任重大所有项目的建设都是根据你的放线确定位置,如果你放样坐标放错了,可想而知后果是如何,像隧道如果贯通偏差较大,贯通的两侧无法顺利贯通,会产生多大的后果,经常自己晚上都睡不着。
(3)工作容易找测量干活性质都一样,因为在哪个设计院干的活都差不多,都是测量和测设,唯一的区别就是待遇问题。有的单位待遇好,有的待遇比较低,但是,测量行业毕竟是艰苦行业,干一两年都成组长,一年待遇基本都上10W以上,相对其他行业还是有优势,“吃不饱,又饿不死”。
(4)发展前途如果你是在测绘领域工作,大家都是测量人,因此地位没有歧视的感觉,在同领域就是正常竞争了,事业单位就按照年纪来评职称和晋级。如果民企的话那就是按照能力拿薪酬和职位。如果是在施工单位,测量一般就是一个辅助性岗位,既然是辅助性的,在前途上,一般混到测量队长、工程部部长职位或者总工,我很多同学都是这个岗位,毕竟专业受限,大型工程更难有晋升。
虽然测绘领域在测量技术方面有了很多突破,但是还有很多项目还需测量人用脚步一步一步走出来,如果年轻能转行就尽快转行。不仅仅为了工作,我们还要为了家庭着想,不能亏欠父母孩子,测量人在外面一定要记着,家里还有人在等着你,多注意安全。大家有什么的讨论的可以在下面留言,欢迎点评,也可关注我一起交流。
4. 哪里可以下载免费的ppt素材模板?
一次解决终生的模板问题,建议先收藏再阅读。比起下载10000000个无法使用的模板,真正有点用的:是分门别类、随用随取、优质高效的的模板网站。
先说人人喜欢的“免费PPT模板网站”-希望你知道这两个超好用的免费网站。
免费好用的网站很少,拉轰推荐这两个,其他的51ppt等,只能说呵呵二字。
1.PPT之家
界面简洁、标志清晰、100万高品质PPT模板和素材
任意点击一个测试:
1.下载链接是否容易找到,下载是否复杂繁琐?
2.质量如何?
3.有没有广告?
点击幻灯片, 出现需要输入密码界面。扫码后提示输入秘密-52ppt。
实际上只需要记住这个秘密,以后就直接输入即可。很方便。
记住密码即可。输入密码后出现下载地址,点击下载地址后立即开始下载。
实测,下载的压缩包可以直接打开。
网站:PPT之家
推荐指数:★★★★
推荐理由:质量优质、下载便捷、海量模板
2.叮当设计
该网站还有免费的相关课程:
测试实际下载体验:
假设准备下载下图的党建工作ppt模板,点击后-进入预览界面
下载地址,位于右上方。
点击下载按钮后,进入百度网盘下载界面,输入验证码后得到下面界面:
点击下载按钮后,进入下载过程,没有其他操作,未见任何广告。
压缩包可直接打开,效果如下图:
质量优质,
网站:叮当设计
推荐星级:★★★★
推荐理由:免费优质、海量下载、下载简单、无需扫码、无广告
以上两个完全免费的网站已经够用了,不需要更加优质或不想付费的伙伴不必往下看了。
请思考一个问题:
如果花39元钱,换终生免费下载的会员资格,你觉得值得吗?
我的答案是:不是值,而是超值。
如果你觉得免费的已经足够,那你很可能没有用过付费网站。
付费39元后,任意点击一个模板:
一键完成下载,没有其他操作-无需跳转、无需扫码、没有广告-36M(刚才免费网站下载的均在10m以下。)
酷炫的动画、质感的配色、灵动的衔接==优质模板的必备
模板分场景、分行业、分风格,只有你想不到的,没有你找不到的。
以常见的工作总结为例
酷炫的科技感模板:
除了PPT模板,该网站还提供word模板:
比如很多网站需要单个付费的简历模板,这里任意下载:
需要背景图,任意下载:
各种合同范本,任意下载:
各种excel表格任意下载:
ppt酷炫的图表,任意下载:
你根本不需要会制作复杂的图片,只需要知道这个网站即可让领导同事刮目相看。
而且,该网站提供各类视频教程,39元超值到超乎想象:
还有?还真有。
自带实用工具-抠图。
网站:办公资源网
推荐星级:★★★★★
推荐理由:超级优质、价格实惠(39元终生会员,全站免费)、一键下载、分类齐全、各种教程、实用工具
推荐完了5星好站,还有没有更加优质的网站-有。
下面这个网站=更贵+更好
因为这个网站更贵,推荐星级为4星。
本文不介绍具体名称,因为以上内容已经够用。
总结一下:
记住两个超级免费网站,记住一个39元的付费模板网站,PPT模板问题就可以完全解决。
下面为本文赠送内容:
注意:公文写作可用小恐龙办公助手,但这不是首选。首选为办公神器,模板功能+编辑功能+排版功能。
手机端语音转文字,其实可以一分钱都不花。(网友评论,秒杀讯飞)
好用免费的软件,真的没几个人知道。
综合资源网站,要什么有什么。
你需要提高办公效率吗?
就是2个小时的工作压缩到20分钟那种。比如批量修改文件名/汇报总结/模板下载/自动化处理都是实现的方法。
拉轰读书,一个让人倍感暖心的头条号。
7800高端人士的选择-你也值得拥有。
可能会分享的内容-尽请关注。
1.比“小恐龙办公助手”更好的文档写作辅助工具,说好5倍你可能不信,好2倍绝对没有吹牛。
2.ppt模板有多好好用的免费网站,有米有一个导航网站,一目了然那种。
3.公文格式老是模模糊糊,能不能一次说清楚。
4.电子表格函数、公式太复杂,小白不想学,有没有办法解决。
5.文件管理是老大难问题,到底什么软件让办公效率翻倍。
拉轰推荐,必属精品。
关键词:ppt模板0628
请用于:评论+私信
5. PHP开发和SEO推广有关系么?
本质上没有具体联系,但是细微之处还是有联系的。这就和万物之间的关系一样,初看貌似没有什么关联,但是其实一定有关联的。只不过这种关联有时候被我们忽略掉了罢了。
php一种编程语言,主要用于开发web。seo一种优化技术,主要用来提升网站的搜索引擎排名。
网站可以使用pho开发,但是也可以使用java,go,python来进行开发。因此,可以说它们有联系,也可以说没有具体联系。
seo是一种优化技术,但是具体如何优化,就需要一些手段。比如,我们需要优化我们的标题,关键词,描述,文章内容,网站内链等等,可以说是一门复杂的技术,而且这门技术会随着搜索引擎的改变而改变,我们需要不断去调整我们的技术。
php如何优化seo,需要设置伪静态,需要控制内容的分布需要提升页面的渲染速度,需要分类关键词,需要聚焦网站关键词等等,可以说,我们可以通过php来进一步优化我们的网站排名,但是php绝不是唯一的技术手段。
6. 冷机器空压机咋推广嘞?
我去年为一家空压机企业做了一年SEO,网站整体也做了大调整,取得了比较理想的业绩。主要考虑了以下几方面因素:
1、全站页面URL静态化处理;
2、首页、列表页、详情页等各页面关键词布局;
3、文章标题、描述、关键词、正文关键词密度、同义词的部署及完善;
4、自动生成网站地图;
5、交换高质量友情链接;
6、PC端与M端页面自适应调整;
7、网页加载速度优化;
8、JS脚本及异步加载优化;
9、其他更多SEO自动化功能优化。
7. 动态cdn和静态cdn有什么区别?
CDN是内容发给网络Content Delivery Network,通过在网络各处摆放节点服务器所包含的在现有的互联网基础之上的一层智能虚拟世界网络,普通CDN是只加快网站静态资源,而全站CDN是动态资源也加快。
静态是指图片,flash等内容,每个人采访看见的都是一样的。动态是指登岸、登记等信息,每个人看见的自己的信息。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!