首页 文章 精选 留言 我的

精选列表

搜索[意图智算],共10000篇文章
优秀的个人博客,低调大师

东软荣膺长安汽车“北斗天枢贡献奖” 携手共赴智驾未来

近日,2026年长安汽车全球伙伴大会成功召开,会议期间,长安汽车为其在智能化战略落地过程中做出卓越贡献的合作伙伴颁发奖项。东软与长安汽车在共创智能出行未来的过程中,始终保持紧密协作与深厚互信,此次凭借产品技术实力,积极响应、高度协同的服务能力,荣获“北斗天枢贡献奖”。 东软自全面启动解决方案智能化战略以来,持续以AI、大数据等新技术应用为核心,推动解决方案的智能化、数据价值化,目前已经构建了完整的AI技术体系与方法论,这与长安汽车“北斗天枢”智能化战略方向高度匹配。作为长安汽车长期、深度的战略合作伙伴,东软依托在智能汽车互联领域的深厚积累,为长安汽车的全球化与智能化转型提供从车内智能交互到全球出行服务的全方位支撑,双方合作持续深化。 在长安全球化拓展中,东软OneCoreGo®全球车载智能出行解决方案,以导航、惯导、EHP/ISA等多形态产品,搭载于长安旗下四大品牌19款主力车型,并供应至全球130余国,为长安SDA平台的全球布局构建了坚实的技术底座。目前东软智能座舱产品已在第四代CS75Plus、深蓝G318等战略车型实现全球市场量产,为用户带来更流畅、沉浸的交互体验;同时,东软贯穿产品全生命周期的软件服务,以前沿技术与高效响应,保障长安各品牌车型在快速迭代中持续优化用户体验。 此次获奖,既是长安汽车对东软多年来协同创新、深度赋能的高度认可,也标志着双方战略合作已迈入技术共生、生态共荣的新阶段。在汽车产业加速向智能化、全球化转型的关键时期,东软将持续深化核心能力,与长安汽车及更多合作伙伴并肩携手,以更前瞻的技术布局和更敏捷的响应体系,共绘智能出行生态的新蓝图。

优秀的个人博客,低调大师

50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量

东京 2020 奥运会即将闭幕,本届奥运会由于疫情限制,东京地区赛事以无观众的空场形式举行,在无法亲临现场的情况下,全球观众首次以 “云上” 方式观看奥运。 “云上奥运” 该如何保证赛事的生动性和现场感,缩短观众与赛场之间的距离,随时随地捕捉精彩赛事瞬间?阿里云作为本届奥运会最高等级的全球合作伙伴,支撑奥运会实现首次全球云上转播,供各大转播商使用。同时,阿里云支持国内顶级媒体实现云上 “采编发” 整体流程的验证,为媒体跨地域协同报道提供了宝贵的实战经验。 新华社作为中国国家通讯社和世界性通讯社,是此次全球仅有的具有资格在主新闻中心展示奥运精彩瞬间 6 家世界级媒体之一。东京奥运会也是新华社第一次作为国际通讯社报道奥运,新华社派出 133 人的奥运会报道团队对奥运现场进行全方位的报道,通过云技术,前方记者和后方团队可以进行密切配合,使得报道内容能够更高效完成。 针对阿里云对新华社 “云上制播” 的技术助力,具体到跨地域 “采编发” 协同制播流程的实现、探索、验证,分为以下几步: 异地协同,网络先行 媒体素材内容能否高效地传输回来,网络保障是关键所在。早在今年年初,新华社考虑到信号和视频内容传输的各类需求,申请了 100Mbps 的宽带链路。而当 7 月份记者抵达东京进行现场带宽测速时,结果十分不理想。百兆网络访问国内的服务,带宽只到了 KB/s 级别,如同回归了拨号上网时代。 现场带宽测速 如何解决跨区域网络传输的问题? 前方记者拿出了事先准备好的 “神器”:阿里云一站式快速上云 SDWAN 接入产品(Smart Access Gateway,简称 SAG)。 由于已在国内进行过配置和测试,因此,在报道现场,记者直接将预留的以太网插到 SAG 产品 WAN 端口,再把需要连接的设备接入到 SAG 的 LAN 端口,便可自动获取 IP 地址,东京报道现场的设备就和国内云端提前配置好的计算、存储等资源构成了一个加密安全的内网环境。当然,还可以通过 PC 和手机等终端安装的 APP 形态,满足各类移动终端的 point-to-site 快速接入。 今年年初,新华社联合阿里云、优酷进行多场测试验证,通过 SAG 网关可以最大化的优化网络传输质量,降低系统访问时延,满足远程制作、云上生产等各类应用场景。 5 路 NDI 流接收情况下相关测试截图 Full NDI 情况推流上云延时效果 智能接入网关 SAG 是阿里云混合云 SD-WAN 解决方案的 CPE 终端设备,可同时基于互联网宽带 / 4G/5G / 专线等多种类型链路,帮助企业安全高速接入阿里云。充分发挥阿里云网络资源优势,就近加密接入 POP 点,优化网络质量,一站式完成跨地域、弹性、高效的分支机构及线下 IDC 互联及业务上云。 伴随 5G 技术发展,诸多企业已探索基于 5G 访问互联网或云上资源,在上半年国内测试中,SAG 的 5G 带宽值最高可以达到 80Mbps (上行)、200Mbps (下行)。 在流媒体视频传输协议中,常用的流媒体协议主要有 RTSP 协议、RTMP 协议、UDP 协议、HLS 协议、SRT 协议、NDI 协议等。对于 UDP、NDI 等仅支持私网的传输协议,SAG 也把跨洋传输的不可能变成了可能,可以实现低延时的跨境传输,应用于远程制作、远程介绍等各类场景。 除了网络手段,还可以通过其他方式来进行速度的优化。实际测试中,虽然东京现场内容回传很慢,但东京现场访问东京资源的速度良好。 因此,在云上东京区域开放存储空间,便可满足内容快速上传的需求,再将东京区域存储内容通过跨区域复制方式复制到国内存储区,实现在东京和国内不同 OSS 地域之间自动、异步复制文件,将源存储空间中文件的改动(新建、覆盖、删除操作)同步到目标存储空间中。既满足了数据复制的需求,也可以作为异地容灾的应对方法。 当然,由于存在一些临时存储内容,并不是所有文件都需要进行同步,对此,可以根据指定文件名前缀进行有选择的同步,以满足各类报道需求。 云上制播,如影随形 传统节目生产,需要按需配置支持 4K 或是高清的、带显卡的工作站进行编辑制作,并通过网络化存储访问达到协同效。但跨境报道,大规模网络化系统部署携带不便,且仅能满足当地访问的需求,因此,在这次移动报道中,通过云桌面方式实现了多地域更灵活的访问体验。 业务系统部署在云端,对位于各类互联网环境的客户而言,安全、高质量的访问,实现和线下业务系统类似的效果是关键。 云桌面是一种易用、安全、高效的云上桌面服务,可以快速构建、高效管理桌面办公环境,提供安全、灵活的访问体系,使用云桌面的用户,可通过客户端方式连接云桌面,运维管理人员也可以远程进行统一的云桌面管理,包括管理工作区、桌面、策略、镜像、网络、存储等的管理。 因为云端可提供丰富的计算资源选择,在无影云桌面中,可以选择 CPU、GPU 多种规格,即用即买,按需计费,灵活弹性,管理员可以实现定义好应用和资源镜像,如高清非编、4K 非编等,快速复制启动新的机器。云桌面可以根据需求设定多种安全策略,既能开放上传下载功能提升便捷程度,又可以根据安全需求关闭上传下载,U 盘,剪切板,网络等通路,防止数据和 IP 外泄。 对于终端的话,可以按需灵活选择软件或是软硬一体形式,硬件终端提供统一轻空间,搭载个人云盘做到数据随身携带,根据权限使用云端资源。 无影云桌面软件终端形态 云桌面可以以低带宽、高分辨率、高显示质量显示云端站点编辑效果,支持国内国外多种非编软件,最高支持 9 层 500Mbps XAVC 视频编辑。 根据实测结果,通过家庭宽带、办公网络、酒店 wifi 等各类 Wifi 连接方式均能实现较低的访问时延(RTT(Round-Trip Time,总体延时)小于 50ms),占用带宽在 10Mbps 以下(高清 / 4K 分辨率进行编辑操作访问情况下),可以流畅的进行编辑、审核、调色等各类操作,同时,还可以通过外部设备重定向功能,接入调色台等外设设备,满足更好的用户操作体验。 整体云端制播网络架构如下: 此次为了保证北京、东京两地的同时访问,阿里云在北京和东京之间的上海区域开通了云桌面服务,两地网络测试情况下,对应 RTT 数值均在百毫秒以下,可以很好的满足业务需求。 为了满足不同人员对不同非编软件的使用需求,云上部署统一的 CS 资源管理系统,以具备与 Adobe Premiere、Final cut Pro、Edius、大洋、索贝、剪映等非编软件的协同制作能力,用户可以通过拖拽的方式,直接将素材或打点片段拖入非编中进行编辑。用户的整个剪辑操作流程就是在素材管理系统和剪辑软件中进行流转的,避免了用户在多软件中频繁切换的操作。 在素材管理系统中,素材的存放管理被定义划分为个人库和部门库两种方式,其中个人库所属于登录的个人账户,仅用户本人有权看到并管理其内容;部门库所属整个部门,所有部门内的工作人员均可共享其中素材,用户可以在个人库中将素材共享至部门库来实现部门库资源扩充。 同时,还可以通过左侧收录素材目录下看到收录得到的素材,收录素材展示视频元数据信息并且可以进行预览。视频预览框中可以实现视频打点并拖拽至非编软件进行编辑功能,正在收录的内容可以和非编配合实现边采边编操作。 资源管理器对应不同非编软件拖拽上板 资源库还可以提供结合 AI 智能能力的 BS 管理端,实现智能封面提取、语音识别、人物识别、智能拆条、智能编目,做后台内容的快速管理,减轻素材管理人员的压力,也使得内容的搜索更加的灵活便捷。 不仅内容生产可以通过云端进行,信号的云端导播切换更可以在维持传统操作方式(切换面板、监看习惯等)情况下通过云端实现调度、AI 处理及导播切换,如下图所示: 智能加持,一站式服务 在云上,通过编辑软件提供商和公共云基础能力的结合,可以实现更多的业务场景,将异构业务生产环节流程化、智能化串接起来。 而通过和 BS 编辑应用的结合,可以一站式满足业务的增值应用,实现更好的业务提效。 此次,针对奥运报道的需求,结合阿里云视频云的 AI 能力,进行了进一步的贴身定做:赛前创建奥运体育健儿库,在前方报道入库后第一时间进行视频分析、内容展现,可以更好更快的为业务系统提供服务。 同时,在 “策采编发追评” 的整套传媒业务流程中,可以通过 AI 能力的加持,实现移动端 + PC 端编辑的协同生产,完成大小屏内容的统一准备和分发,既能实现业务闭环,也能快速切入发布环节,以统一的 BS 界面,实现各业务流程以及智能化工具的一站式服务。 为了本次奥运比赛,赛前提前制作了各类体育报道的模板,可以快速和拍摄视频结合,实现内容的快速生产分发。 体育类新媒体海报 阿里云视频云针对媒体行业打造的 AI 编辑部,致力于将阿里云的各项 AI 能力在媒体行业的不同场景中进行落地,提升内容生产与制作的生产效率,降低人工成本。 在云上制播的时代,AI 编辑部已经面向市场基于分布式媒体处理引擎的超高清内容倍速处理能力,此外还有多模搜索、人物翻库、视频指纹、数字水印各类全新能力,为云上内容生产的时代中的各类生产场景提供能力支撑,为行业的不断发展提供更多的产品与解决方案。 云上制播的未来 全球的云上奥运,带来了全新 “云上制播” 概念,其本质就是媒体 “策、采、编、发、追、评” 完整业务流程的全面云化,核心在于云化环境对业务的支持和通过无影云桌面实现和推云入端。 通过云上制播,阿里云实现了媒体核心业务的全面上云,完成了传统专业设备的云化替代,解决了从业人员内容采集、生产、审核、发布的空间限制和设备依赖。 针对媒体行业,在实际生产过程中,因为大多数历史资料内容存储在线下系统,需要频繁涉及到原有素材的导入上传,利用互联网络耗时较大,影响实际体验。目前采、编、发、存等业务,分布在云上云下,将会是一个比较长的过渡阶段,因此对原有内容的导入和融合、专线链路的建设,是非常迫切且重要的问题。 随着云技术和网络基础设施的发展,云上生产将会得到更广泛的应用发展,在阿里云和优酷的联合测试中,还实现了以下场景的验证: 低延时远程监看 云端内容增强制播 通过将阿里云视频增强系统在优酷制作网部署,对高标清素材进行 4K 增强与色彩优化,可用作直播信号处理,更可应用于视频文件处理,实现低成本 4K 内容生产,缓解行业内原生 4K 内容制作成本高,原创内容少的问题,填补了高清制作与原生 4K 制作之间的空白市场空间。还可以用来对来源质量不高的内容实时优化处理。 智能化云化转播方案 5G + 4K + AI + 云的云化转播车方案,该方案旨在通过云制作技术赋予现有电视转播车云上生产的能力,提升内容制作效率,降低制作成本,孵化新内容形态。 通过智能接入网关打通本地设备和云上资源,实现本地多路摄像机信号上云、云上导播、字幕包装、编码推流、多路分发、云端收录、AI 分析、智能剪辑的全链路云上解决方案,并在现有优酷自制节目中落地完善细节。 适合网络媒体、OGC、广电融媒等新媒体高清 HD 直播场景,相较于传统的 EFP 制作流程,具有便捷、稳定、低成本的特点,更可以通过智能化的手段完成智能抠像、动漫化、多主体分割等亮点应用。 通过这次云上奥运报道的实践与验证,可以感受到云上生产可以极大满足现有生产业务诉求。同时,在运维、弹性、跨地域协同、智能化协助等方面具备更大的优势、深度重构了 “采编发” 业务流程,并创生出新的应用模式。视频内容云上生产,能够在全媒体传播,传统媒体机构进军互联网主战场的征程中发挥更大的价值。 阿里云借助此次东京奥运会的云上制播实战,也为即将到来的全运会、冬奥会积累更多的前瞻性实战经验,在云上制播时代,让我们共同期待更优质的体验和全新的云上图景。 「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

优秀的个人博客,低调大师

【聚合支付平台】如何智用【模板+工厂】设计模式来实现异步回调

写在前面:设计模式源于生活,而又高于生活! 异步回调流程 解析报文(验证签名) 日志收集(相同) 如果解析报文成功的话,修改支付状态为已经成功.返回不同的支付结果 模版方法设计模式 提前定义好整体的骨架,不同的行为让子类实现,相同的行为直接定义在抽象类中复用。 相同的行为就定在抽象方案中,不同的行为的实现子类实现 核心设计要点 AbstractClass : 抽象类,定义并实现一个模板方法。这个模板方法定义了算法的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类去实现。 ConcreteClass : 实现父类所定义的一个或多个抽象方法。 模版方法抽象类 /** * * @description: 使用模版方法重构异步回调代码 */ @Slf4j @Component public abstract class AbstractPayCallbackTemplate { /** * 异步回调业务 */ public String asyncCallBack() { // 1. 支付回调验证参数 Map<String, String> verifySignatureMap = verifySignature(); // 2. 参数验证成功,写入日志中 payLog(verifySignatureMap); String analysisCode = verifySignatureMap.get("analysisCode"); if (!analysisCode.equals(PayConstant.RESULT_PAYCODE_200)) { return resultFail(); } // 3. 执行回调异步相关逻辑 return asyncService(verifySignatureMap); } /** * 使用多线程异步写入日志 */ @Async protected void payLog(Map<String,String> verifySignatureMap){ log.info(">>>>>>>>>>第二步 写入payLog........{}",verifySignatureMap); } /** * 实现业务解析操作 */ protected abstract String asyncService(Map<String,String> verifySignatureMap); /** * 异步返回成功结果 */ protected abstract String resultSuccess(); /** * 异步返回失败结果 */ protected abstract String resultFail(); /** * 支付回调验证参数 */ protected abstract Map<String,String> verifySignature(); } 具体实现模版 ①AliPayCallbackTemplate /** * @title: AliPayCallbackTemplate */ @Component @Slf4j public class AliPayCallbackTemplate extends AbstractPayCallbackTemplate { @Override protected Map<String, String> verifySignature() { //>>>>支付宝回调报文伪代码>>>> log.info(">>>>>第一步 解析支付宝数据报文.....verifySignature()"); Map<String, String> verifySignature = new HashMap<>(); verifySignature.put("price", "10000"); verifySignature.put("orderDes", "充值会员"); // 支付状态为1表示为成功.... verifySignature.put("aliPayMentStatus", "1"); verifySignature.put("aliPayOrderNumber", "20190511"); // 解析报文是否成功 200 为成功.. verifySignature.put("analysisCode", PayConstant.RESULT_PAYCODE_200); return verifySignature; } @Override protected String asyncService(Map<String, String> verifySignatureMap) { log.info(">>>>>第三步asyncService()verifySignatureMap:{}", verifySignatureMap); String paymentStatus = verifySignatureMap.get("aliPayMentStatus"); if (paymentStatus.equals("1")) { String aliPayOrderNumber = verifySignatureMap.get("aliPayOrderNumber"); log.info(">>>>orderNumber:{aliPayOrderNumber},已经支付成功 修改订单状态为已经支付..."); } return resultSuccess(); } @Override protected String resultSuccess() { return PayConstant.ALIPAY_RESULT_SUCCESS; } @Override protected String resultFail() { return PayConstant.ALIPAY_RESULT_FAIL; } } ②UnionPayCallbackTemplate /** * @title: UnionPayCallbackTemplate */ @Component @Slf4j public class UnionPayCallbackTemplate extends AbstractPayCallbackTemplate { @Override protected Map<String, String> verifySignature() { //>>>>银联回调报文伪代码>>>>>>>> log.info(">>>>>第一步 解析银联数据报文.....verifySignature()"); Map<String, String> verifySignature = new HashMap<>(); verifySignature.put("price", "10000"); verifySignature.put("orderDes", "充值会员"); // 支付状态为1表示为成功.... verifySignature.put("paymentStatus", "1"); verifySignature.put("orderNumber", "20190511"); // 解析报文是否成功 200 为成功.. verifySignature.put("analysisCode", PayConstant.RESULT_PAYCODE_200); return verifySignature; } @Override protected String asyncService(Map<String, String> verifySignatureMap) { log.info(">>>>>第三步asyncService()verifySignatureMap:{}", verifySignatureMap); String paymentStatus = verifySignatureMap.get("paymentStatus"); if (paymentStatus.equals(PayConstant.PAY_STATUS_SUCCESS)) { String orderNumber = verifySignatureMap.get("orderNumber"); log.info(">>>>orderNumber:{orderNumber},已经支付成功 修改订单状态为已经支付..."); } return resultSuccess(); } @Override protected String resultSuccess() { return PayConstant.UNION_RESULT_SUCCESS; } @Override protected String resultFail() { return PayConstant.UNION_RESULT_FAIL; } } 工厂模式获取模版 /** * @title: TemplateFactory */ public class TemplateFactory { public static AbstractPayCallbackTemplate getPayCallbackTemplate(String templateId) { AbstractPayCallbackTemplate payCallbackTemplate = (AbstractPayCallbackTemplate) SpringUtils.getBean(templateId); return payCallbackTemplate; } } SpringUtils @Component public class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } //获取applicationContext public static ApplicationContext getApplicationContext() { return applicationContext; } //通过name获取 Bean. public static Object getBean(String name) { return getApplicationContext().getBean(name); } //通过class获取Bean. public static <T> T getBean(Class<T> clazz) { return getApplicationContext().getBean(clazz); } //通过name,以及Clazz返回指定的Bean public static <T> T getBean(String name, Class<T> clazz) { return getApplicationContext().getBean(name, clazz); } } 相关依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <!-- sprinboot web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> </dependencies> Controller层 /** * @title: TemplateController */ @RestController public class TemplateController { @RequestMapping("/asyncCallBack") public String asyncCallBack(String templateId) { AbstractPayCallbackTemplate payCallbackTemplate = TemplateFactory.getPayCallbackTemplate(templateId); return payCallbackTemplate.asyncCallBack(); } } 程序入口 @SpringBootApplication @EnableAsync public class AppTemplate { public static void main(String[] args) { SpringApplication.run(AppTemplate.class); } } 控制台输出结果 >>>>>第一步 解析支付宝据报文.....verifySignature() >>>>>第二步 写入payLog........{aliPayOrderNumber=20190511, orderDes=充值会员, price=10000, analysisCode=200, aliPayMentStatus=1} >>>>>第三步asyncService()verifySignatureMap:{aliPayOrderNumber=20190511, orderDes=充值会员, price=10000, analysisCode=200, aliPayMentStatus=1} >>>>orderNumber:{aliPayOrderNumber},已经支付成功 修改订单状态为已经支付... >>>>>第一步 解析银联数据报文.....verifySignature() >>>>>第二步 写入payLog........{orderNumber=20190511, orderDes=充值会员, price=10000, analysisCode=200, paymentStatus=1} >>>>>第三步asyncService()verifySignatureMap:{orderNumber=20190511, orderDes=充值会员, price=10000, analysisCode=200, paymentStatus=1} 总结 版权@须臾之余https://my.oschina.net/u/3995125 模版设计模式优缺点 1.优点 模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。子类实现算法的某些细节,有助于算法的扩展。通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。 2.缺点 每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。 3.适用场景 在某些类的算法中,用了相同的方法,造成代码的重复。控制子类扩展,子类必须遵守算法规则。 工厂设计模式优缺点 优点: 1.代码结构简单。 2.获取产品的过程更加简单。 3.满足了开闭原则,即对拓展开放,对修改关闭。 缺点: 拓展较繁琐,要拓展时,需同时改动抽象工厂和工厂实现类。 对比策略模式和责任链设计模式,请关注博客——须臾之余 ——经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】 https://my.oschina.net/u/3995125/blog/3046848 ——【奇思妙想】如何给网关设计一款专属的权限控制【责任链设计模式】 https://my.oschina.net/u/3995125/blog/3047755 版权@须臾之余https://my.oschina.net/u/3995125 本文参考:蚂蚁课堂:http://www.mayikt.com

优秀的个人博客,低调大师

智库 | 刘松:产业互联网时代,创业者的机遇在哪?

近日,阿里巴巴集团副总裁刘松出席由创业黑马&黑马学院主办的2018黑马社群大会,并发表主题演讲。刘松认为,过去10年是移动互联网时代,互联网连接的是人和商品。再往下10年,互联网会与物理世界进一步融合,大数据、人工智能、物联网等新的技术会渗透到产业升级的进程中去,带来比消费互联网还大100倍的机会。 迅速变化的时代,意味着创业者们会拥有更多的机遇和挑战。刘松认为,硬科技会变得越来越重要。原来创业不一定要是技术专家,但是今天,所有的创业者需要开始接触云、大数据、人工智能了。选择行业投入前,最好先站在互联网数字空间、数据智能深度、网络效应等方面来理解时代环境的根本性变化。如果这个行业的信息化水平不高,数据、平台、网络效应这些杠杆都用不到,即使这是一个体量巨大的传统行业,也建议不要着急进入, 顺势而为和生态链接是创业者在这个变革时

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册