京东金融APP的鸿蒙之旅:技术、挑战与实践
一、背景在今年6月份的华为开发者大会上,华为宣布HarmonyOS NEXT面向开发者和先锋用户启动Beta升级,并将于今年四季度正式商用。在9月21日的华为2024全联接大会上华为终端总裁宣布,已有超过1万个应用和元服务上架HarmonyOS NEXT应用市场。此外,华为每年投入超过60亿元人民币激励开发者创新,华为开发者联盟注册开发者数量已快速增长至675万。HarmonyOS NEXT是建
架构师日记-从数据库发展历程到数据结构设计探析
一 数据库发展史 起初,数据的管理方式是文件系统,数据存储在文件中,数据管理和维护都由程序员完成。后来发展出树形结构和网状结构的数据库,但都存在着难以扩展和维护的问题。直到七十年代,关系数据库理论的提出,以表格形式组织数据,数据之间存在关联关系,具有了良好的结构化和规范化特性,成为主流数据库类型。 先来看一张数据库发展史图
如何用Rust编写一个ChatGPT桌面应用(保姆级教程)
为什么我们需要一个桌面应用原因实在太多,我们需要便捷地导出记录,需要在回答长度超长的时候自动加上“继续”,需要收藏一些很酷很实用的prompt......(首先我假设你是一名如我一样习惯用IDEA开发的java仔)安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rustc) 和包管理工具 (cargo)。可以通过访问 Rust 官方网站 并遵
基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索
一、Sentinel简介Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:•丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。•完备的实时监控:Sentinel 同时提供实时的监
大数据从业者必知必会的Hive SQL调优技巧
大数据从业者必知必会的Hive SQL调优技巧摘要:在大数据领域中,Hive SQL被广泛应用于数据仓库的数据查询和分析。然而,由于数据量庞大和复杂的查询需求,Hive SQL查询的性能往往不尽人意。本文针对Hive SQL的性能优化进行深入研究,提出了一系列可行的调优方案,并给出了相应的优化案例和优化前后的SQL代码。通过合理的优化策略和技巧,能够显著提升Hive SQL的执行效率和响应速度。关
DDD学习与感悟——向屎山冲锋
软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计中的其中一种思想,旨在提供一种大型复杂软件的设计思路和规范。通过DDD思想可以让我们的业务架构、系统架构、部署架构、数据架构、工程架构等都具备高扩展性、高维护性和高测试性。但是落地DDD是一件很困难的事情。首先
java浅拷贝BeanUtils.copyProperties引发的RPC异常
背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到 人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException: java.util.HashMap cannot be cast to cn.xxx.xxx.xxx.xxx.BatchInfo排查过程1、作为资
一位架构师的自述:在尚未踏入的世界成为你自己
这是我参与创作者计划的第1篇文章我叫艾佳,工作经验14年,编程经验30年。我来自智能平台部,负责标签平台、标签圈人、标签选品、EasyData、算法数据流的架构工作。致力于批量计算、流式计算、交互式计算的通用化数据应用构建,降低大数据计算的使用门槛。在此,我跟大家分享一下我的个人经历和一些思考。好玩儿成长经历,说来话长,有多长呢?上世纪80年代末,我参与了计算机输入指令的归一化:把穿孔纸带卷起
鸿蒙跨端实践-长列表解决方案和性能优化
这是我参加创作者计划的第一篇文章。前言长列表是前端和客户端应用中最常见的业务场景,比如商品瀑布流等,有成千上万条数据,因此长列表的渲染性能在iOS,Android,Harmony,Web等各大平台都非常重要。HarmonyOS和iOS类似也提供了自己的解决方案。Roma(罗码)作为跨端平台,在此基础上进行了具体的实践。在实践过程中,遇到了各种问题和挑战,经历了ArkTS+C++架构向纯C++架构
【理论篇】关于聚合根,领域事件的那点事---深入浅出理解DDD
前言最近有空会跟同事讨论DDD架构的实践落地的情况,但真实情况是,实际中对于领域驱动设计中的实体,值对象,聚合根,领域事件这些类的实践落地,每个人理解依然因人而异,大概率是因为这些概念还是有一些抽象,同时有有别于传统的MVC架构开发。在此,通过小demo的方式跟大家分享一下我对DDD中层级的理解,算是抛砖引玉,该理解仅代表我个人在现阶段的一个理解,也可能未来随着业务经验深入,还会有不同的理解。既然
解密Elasticsearch:深入探究这款搜索和分析引擎
•开篇最近使用Elasticsearch实现画像系统,实现的dmp的数据中台能力。同时调研了竞品的架构选型。以及重温了redis原理等。特此做一次es的总结和回顾。网上没看到有人用Elasticsearch来完成画像的。我来做第一次尝试。背景说完,我们先思考一件事,使用内存系统做数据库。他的优点是什么?他的痛点是什么?•一、原理这里不在阐述全貌。只聊聊通讯、内存、持久化三部分。通讯es集群最小单元
还在自己实现责任链?我建议你造轮子之前先看看这个开源项目
1. 前言设计模式在软件开发中被广泛使用。通过使用设计模式,开发人员可以更加高效地开发出高质量的软件系统,提高代码的可读性、可维护性和可扩展性。责任链模式是一种常用的行为型设计模式,它将请求沿着处理链进行发送,直到其中一个处理者对请求进行处理为止。在责任链模式中,通常会有多个处理者,每个处理者都有一个处理请求的方法。当一个请求到达处理链的起点时,会依次传递给每个处理者进行处理,直到某个处理者能够处
大模型时代下的新一代广告系统
京东零售广告部承担着京东全站流量变现及营销效果提升的重要职责,广告研发部是京东最核心的技术部门,也是京东最主要的盈利来源之一。作为京东广告部的核心方向,我们基于京东海量的用户和商家数据,探索最前沿的深度学习等算法技术,创新并应用到业务实践中,赋能千万商家和数亿消费者的消费连接,不断拓展中国乃至全世界的数字经济边界。在这里,你将与各业务、产品、工程团队紧密合作,深入京东亿量级的数据与丰富
js基础之setTimeout与setInterval原理分析
setTimeout与setInterval概述setTimeout与setInterval是JavaScript引擎提供的两个定时器方法,分别用于函数的延时执行和循环调用。前者的主要思想是通过一个定时器,让函数在计时结束后再执行;后者则是每隔一定的时间,就启动一次函数的执行。从原理来看,两者似乎并不复杂。但由于JavaScript引擎是单线程的,这就让上述两个定时器的实际执行变得稍微复杂了一些。
京东短网址高可用提升最佳实践
什么是短网址?短网址,是在长度上比较短的网址。简单来说就是帮您把冗长的URL地址缩短成8个字符以内的短网址。当我们在腾讯、新浪发微博时,有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。在微博和手机短信提醒等限制字数的地方来使用短网址,的确是一个不错的方案。短网址通常使用“短域名/短码”的形式,打开短网址网页会直接跳转到长网址页面。例:3.cn/CdE
京东云JoyCoder荣获AI4SE“银弹”优秀案例
近日,中国人工智能产业发展联盟智能化软件工程工作组(AI for Software Engineering,下文简称AI4SE)发布2024 AI4SE“银弹”案例征集结果。京东云智能编程助手JoyCoder荣获2024AI4SE“银弹”案例优秀案例。这项由中国人工智能产业发展联盟(AIIA)针对AI+软件工程(AI4SE)发起的专项征集,旨在能够将AI能力赋能至软件工程相关场景的企事业单位、科研
鸿蒙跨端实践-布局方案介绍
一、前言 动态化使用 jue 语言(开发风格与 Vue 一致)开发,对于视图的布局采用了标准的Flex 布局方式。对于列表类视图,动态化提供了<scroll>、<slider>、<recycle-list>、<waterfall>等标签,将子视图的布局管理封装到标签中实现,业务只需要针对标签简单地设置相关属性,即可实现列表类布
京东广告投放平台整洁架构演进之路
作者:京东零售 赵嘉铎前言从去年开始京东广告投放系统做了一次以领域驱动设计为思想内核的架构升级,在深入理解DDD思想的同时,我们基于广告投放业务的本质特征大胆地融入了自己的理解和改造。新架构是从设计思想到落地框架都进行了彻底的革新,涉及内容比较多,因此我们希望通过一系列文章循序渐进地阐述本次架构升级的始末。新架构并不是一日而成的,而是经过了多次架构升级的演进,因此我们将本文作为该系列的第一篇文章,
移植V8虚拟机到纯血鸿蒙系统
作者:京东科技 于飞跃一、背景 如图所示,Roma框架是我们自主研发的动态化跨平台解决方案,已支持iOS,android,web三端。目前在京东金融APP已经有200+页面,200+乐高楼层使用,为保证基于Roma框架开发的业务可以零成本、无缝运行到鸿蒙系统,需要将Roma框架适配到鸿蒙系统。 Roma框架是基于JS引擎运行的,在iOS系统使
【黄金圆环】在研发领域的实践分享
这是我参与创作者计划的第1篇文章一、引言在前端开发中,构建工具的选择和使用至关重要。Webpack 一直是前端构建工具的主流选择,但随着前端技术的发展,Vite 作为一种新兴的构建工具,以其快速的开发体验和现代化特性,逐渐受到开发者的青睐。本文将结合黄金圆环法则,详细探讨如何将一个 Webpack 项目迁移到 Vite。通过项目的迁移实践,我们实现了系统项目: 构建时长极大缩短,由原来的120s构