业务代码设计
文章平均质量分 85
本人在项目开发中的一些想法
无休居士
莫欺中年穷
展开
-
完美标签插件-助力需求有条不稳的高效开发
作为一名 Chrome 重度用户,标签页管理一直是我最大的痛点,特别是当我开了无数网页时,就会出现:卡、乱的情况,如果解决这种情况提高开发效率,我迫在眉睫!!原创 2024-12-14 17:49:59 · 164 阅读 · 0 评论 -
一些优秀的布隆过滤器介绍
尽管布谷鸟过滤器在删除操作中存在误删风险,但由于其支持删除操作、高效的查询性能、较高的空间利用率、灵活的误判率控制、实际应用中的误删风险可控、成熟的实现和社区支持以及多样化的应用场景,它仍然是最常用的数据结构之一。在选择数据结构时,需要根据具体的应用需求和场景来权衡各种因素,布谷鸟过滤器在大多数情况下仍然是最佳选择。原创 2024-11-27 03:30:00 · 824 阅读 · 0 评论 -
深入浅出解析布隆过滤器在Java中的高级应用
布隆过滤器是一种高效的空间节省型数据结构,由Burton Howard Bloom于1970年提出,主要用于判断一个元素是否可能存在于一个集合中。它的核心思想是使用一个很长的二进制向量和多个随机映射函数(哈希函数)。当一个元素被添加到布隆过滤器时,它会被多个哈希函数映射到二进制向量的不同位置,这些位置的值被设置为1。查询时,如果所有映射位置的值均为1,则认为该元素可能存在于集合中;反之,则一定不存在。原创 2024-11-26 02:03:26 · 838 阅读 · 0 评论 -
从理论到实践:布隆过滤器的全面解析
本文详细介绍了布隆过滤器的基本概念、工作原理以及实际应用步骤。通过具体的代码示例和应用场景,帮助读者更好地理解和掌握布隆过滤器的使用方法。在实际项目中,合理使用布隆过滤器可以显著提升系统的性能和效率。原创 2024-11-26 01:47:58 · 1059 阅读 · 0 评论 -
流式上传与分片上传的原理与实现
通过本文的详细讲解,相信你已经对流式上传和分片上传有了全面的理解。流式上传适用于小文件或网络环境稳定的场景,而分片上传则更适合大文件上传,特别是需要处理网络中断的情况。断点续传是分片上传的一个重要特性,可以大大提高上传的可靠性和效率。希望本文能帮助你在面试中顺利过关,祝你好运!🎉。原创 2024-11-24 23:50:20 · 890 阅读 · 0 评论 -
业务设计:扫码登录的原理
扫码登录本质上是请求登录方请求已登录方将登录凭证写入特定媒介的过程。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。原创 2024-11-23 23:44:58 · 475 阅读 · 0 评论 -
微服务之间的数据依赖问题,该如何解决?
这里我们探讨了服务间的数据依赖问题,并给出了目前较为合适的解决方案。其实这里提到的方案不是一个很大众的方案,肯定会存在一些遗漏的问题没考虑,如果你有更好的方案,欢迎留言讨论。乐于分享和输出干货的Java技术公众号:JavaPersons。原创 2024-10-16 05:00:00 · 1449 阅读 · 0 评论 -
阿里面试:订单超时怎么处理?我们用这种方案
如果对于超时精度比较高,超时时间在 24 小时内,且不会有峰值压力的场景,推荐使用 RocketMQ 的定时消息解决方案。在电商业务下,许多订单超时场景都在 24 小时以上,对于超时精度没有那么敏感,并且有海量订单需要批处理,推荐使用基于定时任务的跑批解决方案。原创 2024-10-16 09:00:00 · 770 阅读 · 0 评论 -
AI大模型快速生成题库-助力业务人效提升10+倍【实战落地,强烈推荐】
通过AI大模型帮助用户进行培训试题的生成,在一定程度上将用户从低效、低技术含量、大工作量中解放出来,是面向用户痛点的一次尝试。同时通过该场景将大模型的能力和业务场景及工程系统结合了起来,让用户得到感知,也便于后续更多的大模型实践场景的发掘和落地。该案例不仅用在航空领域,在其他诸多需要生成试题,生成问卷等相关场景方面都可进行参考和尝试。当前现在试题生成能力也仅是实现在从0到1的落地建设,能力需要不断的打磨和完善,后续会逐步进行1到100,100到∞的升级。原创 2024-10-04 06:00:00 · 1506 阅读 · 0 评论 -
业务复杂度治理方法论--十年系统设计经验总结
1、小步快跑。每个迭代要能独立交付,保障每次迭代充分验证,更快看到重构效果2、先写后读。通过双写,验证新模型的可行性;通过数据一致性校验后,再逐步迁移读接口3、先轻后重。先做简单逻辑再做复杂逻辑。先迁移轻业务,有了经验后,再去迁移更复杂的重业务原创 2024-10-03 09:52:24 · 933 阅读 · 0 评论 -
「重构:改善既有代码的设计」实战篇
正确定义问题,比解决问题重要一百倍。那我们首先来搞清楚什么叫重构?作为(名词),重构是指在不改变软件外在功能的前提下,调整其内部结构的过程。这样的调整旨在提高软件的可理解性和降低修改成本。作为(动词),重构意味着通过一系列细微的步骤,不断地调整软件结构,以保持其设计的整洁和可维护性。重构是一种精练的技艺,它通过小的、计划好的修改来减少引入错误的风险。本质上,重构是对已完成的代码进行设计上的改进。原创 2024-10-02 02:28:59 · 1182 阅读 · 0 评论 -
如何让你提供的接口满足SLA?接口性能优化技巧必看篇
接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考。原创 2024-09-23 05:00:00 · 1284 阅读 · 0 评论 -
【实践】分布式环境下工作中10种常用的幂等性手段?
在分布式系统中,确保接口的幂等性是至关重要的,可以防止因网络问题或重复请求导致的数据不一致。常见的实现手段包括使用唯一请求标识、分布式锁、版本控制、消息队列去重、状态机、全局唯一ID、补偿机制、幂等性设计模式和数据库约束。这些方法能够有效保证操作的一致性和可靠性,适用于支付、订单处理、日志记录等多种场景。通过合理选择和应用这些技术,可以显著提升系统的稳定性和用户体验。原创 2024-09-22 04:00:00 · 912 阅读 · 0 评论 -
如何保证高并发下接口的幂等性?
接口幂等性是指一个接口无论被调用一次还是多次,其结果都是一样的,不会因为重复调用而产生不同的副作用。这种特性对于保证系统的稳定性和数据一致性至关重要,尤其是在网络不稳定或请求可能重试的情况下。实现幂等性的常见方法包括使用唯一标识符、状态机、数据库约束等,确保同一操作不会被处理多次。通过设计幂等接口,可以大大减少因重复请求导致的数据错误和系统异常。原创 2024-09-21 05:00:00 · 647 阅读 · 0 评论 -
日常开发中,如何减少bug?如何写出健壮的代码呢?(数据库篇)
本文总结了数据库优化和常见问题的多个方面,包括避免慢查询、处理字段为空、支持表情字符、谨慎使用text字段、正确处理异常、配置事务回滚、确保事务在同一线程中执行、管理主从延迟、兼容新老数据、解决大分页问题以及批量处理大数据。通过这些措施,可以提高数据库性能和稳定性,减少潜在问题。原创 2024-09-20 07:00:00 · 789 阅读 · 0 评论 -
为什么一定要做代码Review?
代码评审(Code Review,简称CR)是软件开发过程中的一个关键环节,对于确保代码质量、提高团队协作效率和促进知识共享至关重要。通过多双眼睛审查代码,可以发现潜在的错误和缺陷,减少bug进入生产环境的机会。此外,代码评审确保代码符合团队的编码规范和最佳实践,保持代码风格的一致性。它还促进了团队成员之间的知识交流,帮助新成员更快地了解项目结构和业务逻辑。在代码合并到主分支之前,评审可以及早发现设计和实现上的问题,避免后期更复杂的修复工作。同时,代码评审增强了团队协作,团队成员可以在评审过程中相互学习!原创 2024-09-20 07:30:00 · 1655 阅读 · 0 评论 -
接口设计中的幂等性你还不知道吗?
幂等性(Idempotency)指的是一个操作可以被执行多次,而结果保持不变。换句话说,对于一个幂等操作,第一次执行和后续多次执行的结果是相同的。幂等性在系统设计中扮演着重要角色,它不仅提高了系统的可靠性和用户体验,还简化了错误处理流程。理解和正确实现幂等性可以使API更加健壮和易用。原创 2024-09-18 23:59:40 · 384 阅读 · 0 评论 -
接口幂等性和并发安全的区别?
幂等性:关注的是同一操作的多次调用结果是否一致。并发安全:关注的是在并发环境下操作的正确性和一致性。理解这两个概念有助于设计更健壮的系统和API。原创 2024-09-18 23:57:18 · 529 阅读 · 0 评论 -
【微信朋友圈设计专题】朋友圈的高性能复杂度分析【学习思路】
整个微信是微服务的架构,每一个请求后面可能会涉及到几百个服务,每一个服务都有一个 QoS,目的是对一些重要的服务进行保证。比如除夕晚上流量达到平时的 5 倍,这时整个系统的性能肯定不够,所以要优先保证什么呢?优先保证支付,优先保证红包的体验。红包体验保证了,再保证消息,比如点对点两人之间的消息。这两个保证的前提下,再保证群聊。如果群聊也能保证,再保证朋友圈。性能不够时将优先级低的服务暂时停掉,这个过程是不需要人工干预的。原创 2024-09-12 07:00:00 · 1851 阅读 · 0 评论 -
【设计模式】函数式编程范式工厂模式(Factory Method Pattern)
本文介绍了如何利用函数式编程思想来实现一个简单的 iPad 销售系统。首先,通过定义一个函数式接口 ISellIPad,抽象出销售 iPad 的行为;然后,创建了两个具体的实现类 HuaWeiSellIPad 和 XiaomiSellIPad,分别代表了华为和小米品牌的 iPad 销售信息;接着,通过工厂类 SellIPadFactory,根据传入的品牌名称动态获取相应的 iPad 实例;通过这个示例,读者可以了解到如何利用函数式编程的思想来简化代码结构,提高代码的可读性和可维护性。原创 2024-05-04 23:11:01 · 938 阅读 · 0 评论 -
【设计模式】抽象工厂设计模式和工厂方法模式有什么区别?
总体来说,工厂方法模式侧重于创建单一类型的产品,而抽象工厂模式侧重于创建一系列相关产品的产品族。选择使用哪种模式取决于系统的需求和设计目标。原创 2024-04-30 06:30:00 · 683 阅读 · 0 评论 -
【设计模式】抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或依赖对象的接口,而无需指定它们具体的类。抽象工厂模式与工厂方法模式相比,不仅仅是针对单一产品的创建,而是针对产品族的创建,即相关联的产品组合。抽象工厂模式是一种常见且实用的设计模式,通过提供一组相关产品的创建接口,保证了产品族的一致性,同时也降低了客户端与具体产品的耦合度。在设计系统时,根据具体需求选择合适的设计模式能够提高代码的可维护性和可扩展性。原创 2024-04-30 06:30:00 · 1495 阅读 · 1 评论 -
【设计模式】工厂方法模式(Factory Method Pattern)
工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让一个类的实例化延迟到其子类。在Java中,工厂方法模式经常用于创建对象,使得客户端代码不需要直接依赖具体的类,而是依赖于接口或抽象类。工厂方法模式是一种常见且实用的设计模式,通过定义工厂接口和具体工厂类,将对象的创建延迟到子类中实现,从而提高了代码的灵活性和扩展性。在设计系统时,根据具体需求选择合适的设计模式能够提高代码的可维护性和可扩展性。原创 2024-04-29 23:58:55 · 1568 阅读 · 0 评论 -
【设计模式】简单工厂模式(Simple Factory Pattern)
简单工厂模式是一种类创建型设计模式,它提供一个静态方法来创建对象。原创 2024-04-29 23:30:37 · 736 阅读 · 0 评论 -
线上又出问题了!又是特殊场景,哎呀,当时怎么没有想到!
测试完成及上线不是终点,除了配合业务进行线上验证及观察线上数据、进行线上巡检之外,还应花点时间回顾一下交付的过程,总结经验教训,主动分享。对于核心的用例,看能否沉淀为自动化的回归及巡检用例。万一出现了线上问题,先尽快恢复业务,再分析原因,进行复盘,总结教训和改进方案。原创 2024-03-11 22:13:34 · 975 阅读 · 0 评论