代码编织梦想

resttemplateutil工具类-爱代码爱编程

1. 配置RestTemplate import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.SimpleCl

sdk和api的区别_sdk和api有什么区别-爱代码爱编程

SDK和API都是类似于公共服务的东西,都代表的是一种封装,只是封装的形式不一样:  API是一个函数,有其特定的功能;而SDK是一个很多功能函数的集合体,一个工具包。API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用API。API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API。简单功能调用,API调

从3s到25ms!看人家的接口优化技巧,确实很优雅!-爱代码爱编程

一、背景 针对老项目,去年做了许多降本增效的事情,其中发现最多的就是接口耗时过长的问题,就集中搞了一次接口性能优化。本文将给小伙伴们分享一下接口优化的通用方案。   二、接口优化方案总结 1. 批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次 IO。 //for循

easyexcel 遭遇 java.io.ioexception: zip bomb detected-爱代码爱编程

1、报错 Caused by: com.alibaba.excel.exception.ExcelAnalysisException: java.io.IOException: Zip bomb detected! The file would exceed the max. ratio of compressed file size to the si

mybatis的关联的嵌套 select 查询中的n+1问题_albenxie的博客-爱代码爱编程

什么是N+1问题? 你执行了一个单独的 SQL 语句来获取结果的一个列表(就是“+1”)。 对列表返回的每条记录,你执行一个 select 查询语句来为每条记录加载详细信息(就是“N”)。 这个问题会导致成百上千的 SQL 语句被执行。有时候,我们不希望产生这样的后果。 什么情况会存在N+1问题? 首先单表查询时不会存在N+1问题的,存在N+1问

Apache 架构师总结的 30 条架构原则-爱代码爱编程

本文作者叫 Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员。他是 Apache Axis2 项目的联合创始人,也是 Apache Software 基金会的成员。他是 WSO2 流处理器(wso2.com/analytics)的联席架构师。Srinath 撰写了两本关于 MapReduce 和许多技术文章的书。他获得了博

聊聊接口性能优化的11个小技巧-爱代码爱编程

前言 接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。 该问题说简单也简单,说复杂也复杂。 有时候,只需加个索引就能解决问题。 有时候,需要做代码重构。 有时候,需要增加缓存。 有时候,需要引入一些中间件,比如mq。 有时候,需要需要分库分表。 有时候,需要拆分服务。 等等。。。 导致接口

Java性能调优的11个实用技巧-爱代码爱编程

大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很容易遵循的建议和最佳实践能够帮你创建一个性能良好的应用程序。 这些建议中的大多数都是基于Java的,但是也不一定,也有一些是可以应用于所有的

阿里研究员谷朴:API 设计最佳实践的思考-爱代码爱编程

简介: API是软件系统的核心,而软件系统的复杂度Complexity是大规模软件系统能否成功最重要的因素。但复杂度Complexity并非某一个单独的问题能完全败坏的,而是在系统设计尤其是API设计层面很多很多小的设计考量一点点叠加起来的(也即John Ousterhout老爷子说的Complexity is incremental【8】)。

9种分布式ID生成方式,总有一款适合你-爱代码爱编程

分布式ID必要性。 业务量小于500W或数据容量小于2G的时候单独一个mysql即可提供服务,再大点的时候就进行读写分离也可以应付过来。但当主从同步也扛不住的是就需要分表分库了,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。

如何做到每天比别人少写200行代码?-爱代码爱编程

熟练的掌握正则表达式,能够帮助程序员以最快的速度写出最优雅的代码。冰河在多年的编程工作中,对使用过的正则表达式进行了梳理和总结,这些正则表达式能够帮助你节省很多的编码时间,往往一个简单的正则表达式就能够省略大量的if...else...代码。这次,冰河向小伙伴们公开了自己平时经常使用的正则表达式,希望能够为小伙伴们带来实质性的帮助。 冰河常用正则 整数

SpringBoot之CommandLineRunner接口和ApplicationRunner接口-爱代码爱编程

一、前言 我们在开发中可能会有这样的情景。需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner。他们的执行时机为容器启动完成的时候。 这两个接口中有一个run方法,我们只需要实现这个方法

SpringBoot之CommandLineRunner-爱代码爱编程

应用场景:溪源基于目前业务需求需要提前将部分数据加载到Spring容器中。大家可以想一下解决方案,下面评论去留言或者私信溪源。溪源能够想到的解决方案: 1、定义静态常量,随着类的生命周期加载而提前加载(这种方式可能对于工作经验较少的伙伴,选择是最多的); 2、实现CommandLineRunner接口;容器启动之后,加载实现类的逻辑资源,已达到完成资源

Java 6种延时队列的实现方法-爱代码爱编程

五一期间原计划是写两篇文章,看一本技术类书籍,结果这五天由于自律性过于差,禁不住各种诱惑,我连电脑都没打开过,计划完美宣告失败。所以在这能看出和大佬之间的差距,人家没白没夜的更文,比你优秀的人比你更努力,难以望其项背,真是让我自愧不如。 知耻而后勇,这不逼着自己又学起来了,个人比较喜欢一些实践类的东西,既学习到知识又能让技术落地,能搞出个demo最好,本

try-catch-finally中的4个大坑,老程序员也搞不定-爱代码爱编程

在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的“掌控”它,却并不是一件容易的事。别的不说,咱就拿 fianlly 来说吧,别看它的功能单一,但使用起来却“暗藏杀机”,若您不信,咱来看下面的这几个例子... 坑1:finally中使用return 若在 finally 中使用 return,那么即使

警惕软件复杂度困局-爱代码爱编程

简介: 对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。   写在前面 软件设计和实现的本质是工程师相互通过“写作

如何写好代码?-爱代码爱编程

简介: 为了赶进度功能实现怎么快怎么来,只好欠下一堆技术债?业务逻辑复杂,如何处理比较好?相似的功能逻辑要不要copy修改一下复用?代码真的不需要写注释吗?好的代码不管对于个人还是团队来说,都是非常关键重要的,然而要写好代码却是一件非常不容易的事情,需要长期的经验积累和学习。本文作者分享了6个关于写好代码的入门的比较重要的点,希望对同学们有所帮助。

如何写出健壮的代码?-爱代码爱编程

简介: 关于代码的健壮性,其重要性不言而喻。那么如何才能写出健壮的代码?阿里文娱技术专家长统将从防御式编程、如何正确使用异常和 DRY 原则等三个方面,并结合代码实例,分享自己的看法心得,希望对同学们有所启发。 你不可能写出完美的软件。因为它不曾出现,也不会出现。 每一个司机都认为自己是最好的司机,我们在鄙视那些闯红灯、乱停车、胡乱变道不遵守

错误码如何设计才合理?-爱代码爱编程

简介: 对于错误码的设计,不同的开发团队有不同的风格习惯。本文分享阿里文娱技术专家长统对于错误码的看法,希望从错误码使用的不同场景讨论得到一个合理的错误码规约,得到一个面向日志错误码标准和一个面向外部传递的错误码标准。 一 前言 在工作中,接触过不少外部接口,其中包括:支付宝,微信支付,微博开发平台,阿里云等等。每家公司错误码风格都不尽相同,

接口优化从13秒到3秒,我做了什么-爱代码爱编程

口水记 由于以前的一些债务,某些接口是越来越慢,越来越慢。 最近做了一个新需求,其中有个接口的时间需要13秒。其实最开始是需要20多秒,后面优化了一下,就到13秒了。 但是13秒,这能忍嘛。尽管这个接口只有在用户第一次使用才会请求到(涉及到三个系统),但也忍不了啊,直接劝退一波不忠实用户。 只能是想办法,而且必须想办法。 首先想到的是把一些循环查