Java 枚举与策略模式、函数式接口的结合:实现高内聚低耦合的设计
作者:京东物流 杨唯一一、Java 枚举类Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。我们在业务需求开发中,通常会使用枚举来定义业务上的一组常量,那除了简单地定义常量之外,我们如何利用枚举来实现高内聚、低耦合的设计呢?下面介绍下枚举和策略模式、函数式接口的组合应用。二、枚举+策略模式首先介绍下策略模式,已经掌握
Android耗电量测试分享
作者:京东物流 刘华宇前言:随着手机在生活中的占比越来越高,屏幕尺寸越来越大,刷新率越来越高,手机电池电量和功耗也成为了影响用户体验的一个重要因。高功耗不仅仅会引发用户的电量焦虑,而且也会导致手机严重发热变成“暖手宝”,从而降低了用户的使用意愿。而影响功耗的因素有很多,下面就为大家介绍一下Android应用功耗的基础知识、功耗的组成以及功耗分析做一个分享功耗的基础知识我们先看一下为什么手机上使用m
安卓动态链接库文件体积优化探索实践
作者:CCO体系 尚红泽背景介绍应用安装包的体积影响着用户下载量、安装时长、用户磁盘占用量等多个方面,据Google Play统计,应用体积每增加6MB,安装的转化率将下降1%。安装包的体积受诸多方面影响,针对dex、资源文件、so文件都有不同的优化策略,在此不做一一展开,本文主要记录了在研发时针对动态链接库的文件体积裁剪优化方案。我开发的链接库使用rust语言开发,通过安卓jni接口实现j
大模型在软件测试中的应用论讨
作者:京东物流 张媛1、大模型的概念大模型是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过
如何安全有效的删代码?
作者:京东科技 王丹迪删除代码是软件开发过程中常见的一部分,但必须谨慎操作以确保不会引入错误或破坏现有功能。有效的做系统瘦身会降低维护成本,减少冗余代码,减少开发同事踩坑的机会。以下是几个步骤和建议,帮助你更安全有效地删除代码:确定范围优化总是被鼓励的,但方式和时间是同时需要被考虑进去的因素方式:这个方案是否好,有无漏洞?投入产出效益比如何?时间:是否要在这个版本,哪个版本能使所有开发投入时间最
EXCEL导入—设计与思考
作者:京东物流 叶方伟EXCEL导入—设计与思考一、案例信息与设计1.1、案例需求与背景B2BTC同城二期有一个Excel导入的功能,单次数据量小于一千,使用频次不高。但涉及到多个字段组成唯一约束,即每条数据操作时要根据唯一性组合字段来操作,要确保数据表中的数据不违反唯一性。每条数据涉及到多次查询其他业务RPC来校验、补充信息的诉求,即使有缓存,但也可能涉及到缓存不命中问题,即单条数据的校验和导入
质量视角下的系统稳定性保障--稳定性保障常态化自动化实践
作者:京东物流 翁美婷一、前言随着系统数量增多,复杂度提高,线上应急问题时有发生;加之需投入大量人力进行服务治理和验证,为了减少日常应急问题及提前排除风险,发起对生产系统的持续综合性治理,实现常态化稳定性治理。在常态化治理过程中我们将识别问题等重复性有规律的工作实现自动化,技术人员更专注于解决问题。二、稳定性治理常态化保障稳定性治理常态化,部门组建了一支由研发团队、测试团队、架构师组成
大促系统优化之应用启动速度优化实践
作者:京东零售 宋维飞一、前言本文记录了在大促前针对SpringBoot应用启动速度过慢而采取的优化方案,主要介绍了如何定位启动速度慢的阻塞点,以及如何解决这些问题。希望可以帮助大家了解如何定位该类问题以及提供一些解决此类问题的思路。下文介绍的JSF为京东内部RPC框架,类似于阿里的Dubbo(本文使用的SpringBoot版本为2.6.2)二、问题背景1.广告投放平台核心应用生产环境单台机器部署
并发编程体系概述
作者:京东自有品牌 周振类别定义特点应用场景Java中的使用进程 (Process)计算机程序在操作系统中执行的实例- 独立性强、 拥有独立的内存空间、 创建和销毁开销大- 进程间通信复杂- 独立的应用程序 - 高隔离性任务,如数据库服务器- Java应用程序运行在JVM进程中 - 通过ProcessBuilder调用外部进程线程 (Thread)进程中的执行单元,共享进程的内存空间和
循序渐进搭建复杂B端系统整洁架构
作者:京东零售 赵嘉铎前言:信息时代技术更迭和传播速度不断加快,技术变得泛娱乐化,大数据、云计算、区块链、元宇宙、大模型,一代代技术热点在社会舆论的裹挟之下不断地吸引着资本的眼球,技术人员为了不被时代所淘汰也不得不时刻追赶潮流。在这样一个时代背景下,软件工程作为一门不起眼到有些枯燥的古老学科,似乎早已被开发者们遗忘在角落。作为一名技术人员我们自然应该时刻保持对前沿技术的追踪,然而,当发生线上问题我
从校招生到项目经理,菜鸟如何开展项目管理
作者:京东零售 顾潇逸“管理是一种实践,其本质不在于知,而在于行”——彼得·德鲁克作为一名初入职场的校招生,你是否有过这样的疑问:项目经理究竟扮演着怎样的角色?是老板的传声筒,单纯地传达上级的指令?还是团队的监工,专注于监督和追踪每个人的工作进度?抑或是项目的一块砖,哪里需要哪里搬?当然,上传下达、监督进度以及解决问题确实是项目经理职责的一部分,但是项目经理仅仅是做这些的吗?在基础流程之上我们还需
写一个Chrome浏览器插件
作者:京东工业 焦丁一、什么是浏览器插件浏览器插件是依附于浏览器,用来拓展网页能力的程序。插件具有监听浏览器事件、获取和修改网页元素、拦截网络请求、添加快捷菜单等功能。使用浏览器插件可以实现很多有趣的功能。二、浏览器插件有哪些种类•以chromium为内核的浏览器插件如Chrome•firefox浏览器插件•safari浏览器插件本文只介绍Chrome插件的原生开发流程。三、插件目录介
京东零售广告创意:基于人类反馈的可信赖图像生成
ECCV2024: Towards Reliable Advertising Image Generation Using Human Feedback链接:https://arxiv.org/abs/2408.00418摘要:在电商领域,吸引顾客注意力的广告图片至关重要。尽管生成模型可以自动生成图像,但它们往往会产生不符合广告标准的图片,可能误导顾客,并需要大量人工成本进行检查。本文探讨了
前端调试实践
作者:京东零售 黄泽平前言在日常调试问题中,相信我们很多人都是用console去排查相关的问题,虽然问题也可以排查出来,但是有时它的效率并不高。这篇文章主要讲解关于断点和一些日常调试技巧的内容,方便你在日后调试问题中,能在不同的前端场景应用不同的调试方式,翻倍提高你解决问题的效率1 sources面板概览source面板是我们断点调试经常用的到的地方,我们可以先大概认识一下它长什么样子,大概有什
自动化实践之:从UI到接口,Playwright给你全包了!
作者:京东保险 宋阳1背景 在车险系统中,对接保司的数量众多。每当系统有新功能迭代后,基本上各个保司的报价流程都需要进行回归测试。由于保司数量多,回归测试的场景也会变得重复而繁琐,给测试团队带来了巨大的工作压力。 车险投保流程主要通过H5页面进行,核心功能集中在投保、报价、核保等阶段。这些功能的UI自动化测试具有很高的可行性和必要性。通过自动化测试,
记一次老商家端应用内存突然飚高原因分析
一、排查过程问题发现是因为当时接到了内存UMP报警信息,如下:通过查看PFinder发现内存一直在增长,没有停止迹象,触发fullGC也并没有下降趋势:当机立断,先立即去NP上摘除了此台机器流量,然后继续观察,发现内存依然在不断增长。随即查看故障分析,并没有得到有效信息:因为流量已经摘除,那么继续观察到底哪里的问题,约半小时后然后接到了机器的宕机告警如下:由于在应用启
【实践篇】一次Paas化热部署实践分享
作者:京东零售 姜波前言本文是早些年,Paas化刚刚提出不久时,基于部门内第一次Paas化热部署落地经验所写,主要内容是如何构建一些热部署代码以及一些避雷经验。一、设计-领域模型设计1.首先,确定领域服务所属的领域2.其次,确定垂直业务身份3.再次,提炼领域能力及扩展点【实际工作中,我们已经把下面这个图作为领域服务设计文档进行了留存,用Paas化的方式实现需求,代码分布在中台、各
【企业数字化转型】一文讲透DevOps理论体系的演进
作者:京东零售 刘晓成一、前言当前,我国处于以信息化、数字化、网络化、智能化为特征的科技变革浪潮中,企业数字化转型大势所趋,那么作为支撑企业IT运转的运营体系也在向多元方向发展,比如DevOps(研发运营一体化)、AIOps(智能运维)、DataOps(数据研发运营一体化)、MLOps(机器学习研发运营一体化)、BizDevOps(业务研发运营一体化)、FinOps(云财务运营)等内容,逐步形成围
Java定时任务大盘点:发工资也能“指日可待”
作者:京东保险 孙昊宇引子:“指日可待” 让我们先从一个成语开始,“指日可待”。没错,我说的就是定时任务😏。 “指日可待”: 为任务指定好日程,就可以安心等待任务执行。 在实际场景中,我
B端体验深耕-洞察用户需求,打造心有灵犀的使用体验
作者:京东科技 程跃宇前言我们常以“心有灵犀”来形容与合作伙伴的默契配合,若我们的产品能与用户达到同样的默契,将极大地提升用户在任务旅程中的流畅体验。在B端体验设计领域,我们深知用户对我们产品的期待───快速完成任务、即用即走;然而,随着业务需求和产品功能的不断扩展,流程复杂化、功能冗余、信息过载和引导不足等问题逐渐浮现,这不仅增加了新用户的学习成本,也使得老用户丧失了使用产品时的专注和效率。