应用开发

【JAVA】两轮充电桩设计模式实践分享

如果说数据结构和算法是程序员构建高效代码的基石,那么设计模式则是打造高质量代码的“内功心法”。掌握并应用合适的设计模式,有助于管理项目复杂性,简化维护,并加速开发进程。

智在碧得
Java
2024-09-10 09:23

业务复杂度治理方法论--十年系统设计经验总结

一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。--《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授John Ousterhout从认知负担和工作量方面给出了一个复杂度量公式子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C这里的子模块复杂度cp是一个经验值需要注意:如果一个子系统特别复杂,但是很少使用及修改,也不会对整体复杂度造成太大

京东技术
IT综合
2024-09-05 14:18

Cookie的secure属性引起循环登录问题分析及解决方案

一个公司内部可能存在多个系统,如果每一个人在使用不同系统的时候都需要重新登录,那么会做大量系统登录切换、耗费比较多的精力去管理账号和密码,那么有没有办法在一个公司内部的所有系统只需要一次登录验证,后续使用其他系统的时候不用重复登录就可以直接使用呢,这就是单点登录要解决的问题。

vivo互联网技术
Java
2024-09-05 11:14

万字长文浅谈三高系统建设方法论和实践

1 概述整个软件的发展历程是一部软件复杂性对抗史,软件的复杂性分为技术复杂性和业务复杂性,业务复杂性主要是建模和抽象设计,技术复杂性主要是三高(高性能,高并发,高可用)的应对,C端的业务一般以技术复杂性为主,业务复杂性为辅,而B端或者M端的业务通常以业务复杂性为主,技术复杂性为辅。本篇文章主要是从后端研发的视角结合自己多年的B C端系统建设实践谈下三高系统的建设方法论和实践,希望和大家相互交流,共

京东技术
IT综合
2024-09-04 11:30

工作五年小结 | 面对不确定性快速上升的外部环境,我们该如何寻求突破?

1. 前言   工作五年了,来京东马上满一年,前四年在开水团,不禁感叹时间过的真快啊!回想19年从西安交大硕士毕业孤身前往北京开始职业生涯,经历了孤独迷茫到自立坚定,再到23年下定决心携妻还蜀安家,并来到京东开始新的征程,这5年过的很快也很充实。   今年也是我的而立之年,感觉一迈过这个坎,眼前的世界就不一样了,事业上还未成气候,更多的生活琐事就开始扑面而来

京东技术
IT综合
2024-09-02 10:21

突破传统监测模式:业务状态监控HM的新思路

一、传统监控系统的盲区,如何打造业务状态监控。   在系统架构设计中非常重要的一环是要做数据监控和数据最终一致性,关于一致性的补偿,已经由算法部的大佬总结过就不在赘述。这里主要讲如何去补偿?补偿的方案哪些?这就引出来数据监控系统了。有小伙伴会问了,为什么业务状态监控系统可以做补偿?别急,往下看。   传统监控系统分为两种,系统监控和业务监控。系统监控有并发量

京东技术
IT综合
2024-08-29 14:38

AI大模型快速生成题库-助力业务人效提升10+倍

一 现状·问题1、培训考核涉及的文件数量较多当前,京东航空公司维修部门面临着人员规模的快速增长和持续的培训需求。根据民航局的规定,维修培训必须确保所有维修人员都能够完成对飞机维修相关文件的学习,这包括维修方案、维修工程管理手册、工作程序手册等共计12本手册以及民航局发布的各类明传电报、维修工程部门发布的维修提示文件MT和技术通告文件TA等内容。这不仅适用于新招聘人员的初始培训,复训,而且每当手册更

京东技术
IT综合
2024-08-19 15:12

高性能无锁队列 Disruptor 核心原理分析及其在i主题业务中的应用

本文首先介绍了 Disruptor 高性能内存队列的基本概念、使用 Demo、高性能原理及源码分析,最后通过两个例子介绍了 Disruptor 在i主题业务中的应用。

vivo互联网技术
Java
2024-08-16 10:46

Java表达式引擎选型调研分析

1 简介我们项目组主要负责面向企业客户的业务系统,企业的需求往往是多样化且复杂的,对接不同企业时会有不同的定制化的业务模型和流程。我们在业务系统中使用表达式引擎,集中配置管理业务规则,并实现实时决策和计算,可以提高系统的灵活性和响应能力,从而更好地满足业务的需求。举个简单的例子,假设我们有一个业务场景,在返利系统中,当推广员满足一定的奖励条件时,就会给其对应的奖励金额。例如某个产品的具体奖励规则如

京东技术
IT综合
2024-08-15 14:35

java数组索引越界异常解决

Java中的数组索引越界异常(ArrayIndexOutOfBoundsException)是一个运行时异常,它会在你尝试访问数组的索引值超出其允许的范围时抛出。在Java中,数组的索引是从0开始的,直到数组长度-1。如果你尝试访问小于0或大于或等于数组长度的索引,就会抛出这个异常。以下是一些解决数组索引越界异常的方法:1. 检查索引值在访问数组元素之前,确保索引值在有效范围内。你可以通过比较索引

mingtian66
Java
2024-08-15 11:26

「重构:改善既有代码的设计」实战篇

背景在软件开发的世界里,代码重构是提升项目质量、适应业务变化的关键步骤。最近,我重新翻阅了《重构:改善既有代码的设计 第二版》,这本书不仅重新点燃了我对重构的热情,还深化了我的理解:重构不仅仅是代码层面的整理,它更是一种软件开发的哲学,强调持续改进和适应变化的重要性。书中通过详细的案例分析和代码示例,将理论与实践巧妙地融合在一起。我尤其赞赏作者如何将复杂的重构任务拆解成一系列的小步骤,每一步都被

京东技术
IT综合
2024-08-14 10:43

Node.jsV8引擎泄露内存问题解决方法

Node.js的V8引擎泄露内存问题是一个需要认真对待的问题,因为它可能会导致应用性能下降甚至崩溃。以下是一些解决Node.js V8引擎泄露内存问题的方法:使用内存分析工具:利用如Heapdump、v8-profiler等模块生成堆内存状态的快照,并通过Chrome Dev Tool等工具进行分析。这可以帮助你找到内存泄漏的源头12。也可以使用MAT(Memory Analyzer Tool)等

mingtian66
Node.js
2024-08-13 11:21

go语言和java结合使用方法

1. JNI(Java Native Interface)JNI是Java平台的一部分,允许Java代码和其他语言编写的应用程序或库(如C或C++)进行交互。虽然JNI本身不直接支持Go,但你可以通过C或C++作为中间层来实现Go和Java的互操作。步骤:编写C/C++代码:定义你希望在Java中调用的函数,并编写相应的C/C++代码。创建JNI接口:为Java类编写本地方法声明,并加载包含C/C

mingtian66
Go语言
2024-08-07 15:17

高并发场景下的库存管理,理论与实战能否兼得?

前言本篇文章,是一篇实战后续篇,是基于之前我发了一篇关于如何构建高并发系统文章的延伸:  高并发系统的艺术:如何在流量洪峰中游刃有余 而这篇文章,从实践出发,解决一个真实场景下的高并发问题:秒杀场景下的系统库存扣减问题。随着互联网业务的不断发展,选择在网上购物的人群不断增加,这种情况下,会衍生出一些促销活动,类似抢购场景或者热销热卖场景,在高峰时段的下单数量会非常大,也意味着对数据库中畅

京东技术
IT综合
2024-08-07 14:50

监控系统原理揭秘-数据运算篇

一、监控系统概览监控系统在现代技术环境中扮演着至关重要的角色。运营同学每天检查自己的活动数据,研发人员每天检查系统各项指标是否正常,这些工作都少不了监控系统的身影。通常来讲,监控系统包括数据采集、数据计算、数据存储、数据可视化及监控预警等功能。本文主要介绍数据计算部分。二、实时计算流数据实时计算是一种处理和分析实时数据流的技术,它允许企业从连续生成的数据(如日志文件、传感器数据、在线交易等)

京东技术
IT综合
2024-08-06 11:15