干掉 “重复代码” 的技巧有哪些

干掉 “重复代码” 的技巧有哪些

软件工程师和码农最大的区别就是平时写代码时习惯问题,码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。

业务同学抱怨业务开发没有技术含量,用不到设计模式Java 高级特性OOP,平时写代码都在堆 CRUD,个人成长无从谈起。

其实,我认为不是这样的。设计模式、OOP 是前辈们在大型项目中积累下来的经验,通过这些方法论来改善大型项目的可维护性。反射、注解、泛型等高级特性在框架中大量使用的原因是,框架往往需要以同一套算法来应对不同的数据结构,而这些特性可以帮助减少重复代码,提升项目可维护性。


arcstack大约 19 分钟优质文章开发技巧
一次简单的 JVM 调优,拿去写到简历里

一次简单的 JVM 调优,拿去写到简历里

大家好,我是大彬。

JVM调优一直是面试官很喜欢问的问题。周末在网上看到一篇JVM调优的文章,给大家分享一下。

来源地址:https://zhenbianshu.github.io

背景

最近对负责的项目进行了一次性能优化,其中包括对 JVM 参数的调整,算是进行了一次简单的 JVM 调优,JVM 参数调整之后,服务的整体性能有 5% 左右的提升,还算不错。

先介绍一下项目的基本情况:


arcstack大约 6 分钟优质文章JVM
Spring 为何需要三级缓存解决循环依赖,而不是二级缓存?

Spring 为何需要三级缓存解决循环依赖,而不是二级缓存?

前言

在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我们开发者来说是无感知的,下面具体分析一下spring是如何解决bean之间循环依赖,为什么要使用到三级缓存,而不是二级缓存?

bean生命周期

首先大家需要了解一下bean在spring中的生命周期,bean在spring的加载流程,才能够更加清晰知道spring是如何解决循环依赖的。


arcstack大约 8 分钟优质文章Spring
这几个SQL语法的坑,你踩过吗

这几个SQL语法的坑,你踩过吗

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、常见框架、分布式、微服务、设计模式、架构等核心知识点,欢迎star~

地址:https://github.com/Tyson0314/Java-learning

大家好,我是大彬~

今天给大家分享几个SQL常见的“坏毛病”及优化技巧。

SQL语句的执行顺序:


arcstack大约 8 分钟优质文章数据库
如何保证接口幂等性?

面试官:如何保证接口幂等性?一口气说了9种方法!

大家好,我是大彬~

今天来聊聊接口幂等性。

什么是接口幂等性?如何保证接口幂等性?

什么是接口幂等性?

首先看看幂等性的概念:

幂等性原本是数学上的概念,用在接口上就可以理解为:同一个接口,多次发出同一个请求,必须保证操作只执行一次。调用接口发生异常并且重复尝试时,总是会造成系统所无法承受的损失,所以必须阻止这种现象的发生。

比如下面这些情况,如果没有实现接口幂等性会有很严重的后果:支付接口,重复支付会导致多次扣钱 ;订单接口,同一个订单可能会多次创建。


arcstack大约 6 分钟优质文章实践经验
美团面试:熟悉哪些JVM调优参数?

美团面试:熟悉哪些JVM调优参数?

今天来熟悉一下,关于JVM调优常用的一些参数。

X或者XX开头的都是非标准化参数

意思就是说标准化参数不会变,非标准化参数可能在每个JDK版本中有所变化,但是就目前来看X开头的非标准化的参数改变的也是非常少。

格式:-XX:[+-]<name> 表示启用或者禁用name属性。
例子:-XX:+UseG1GC(表示启用G1垃圾收集器)

arcstack大约 8 分钟优质文章JVM
Redis 如何实现库存扣减操作和防止被超卖?

Redis 如何实现库存扣减操作和防止被超卖?

电商当项目经验已经非常普遍了,不管你是包装的还是真实的,起码要能讲清楚电商中常见的问题,比如库存的操作怎么防止商品被超卖

解决方案:

  • 基于数据库单库存
  • 基于数据库多库存
  • 基于redis

基于redis实现扣减库存的具体实现

  • 初始化库存回调函数(IStockCallback)
  • 扣减库存服务(StockService)
  • 调用

arcstack大约 7 分钟优质文章Redis
大文件上传时如何做到秒传?

大文件上传时如何做到秒传?

大家好,我是大彬~

文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。

那有没有比较好的上传体验呢,答案有的,就是下边要介绍的几种上传方式

秒传

1、什么是秒传

通俗的说,你把要上传的东西上传,服务器会先做MD5校验,如果服务器上有一样的东西,它就直接给你个新地址,其实你下载的都是服务器上的同一个文件,想要不秒传,其实只要让MD5改变,就是对文件本身做一下修改(改名字不行),例如一个文本文件,你多加几个字,MD5就变了,就不会秒传了.


arcstack大约 8 分钟优质文章实践经验
MySQL最大建议行数 2000w,靠谱吗?

MySQL最大建议行数 2000w,靠谱吗?

1 背景

作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”,“你这个表数据都马上要到 2000w 了,难怪查询速度慢”

这些名言民语就和 “群里只讨论技术,不开车,开车速度不要超过 120 码,否则自动踢群”,只听过,没试过,哈哈。

下面我们就把车速踩到底,干到 180 码试试…….

2 实验


arcstack大约 12 分钟优质文章数据库
2
3