一个开源维护者视角:为什么我建议大家关注 OpenAI Codex for OSS
本文从开源维护者视角介绍 OpenAI Codex for OSS 的价值,并结合 Spring Batch IDEA 插件项目,聊聊独立开发者如何借助 AI 改善代码审查、文档、测试和发布流程。
这里汇总历史技术笔记、专题阅读路线、系统教程和常用导航。可以按最新文章浏览,也可以直接进入教程中心或专题路线学习。
轻量展示,每小时更新:加载中
本文从开源维护者视角介绍 OpenAI Codex for OSS 的价值,并结合 Spring Batch IDEA 插件项目,聊聊独立开发者如何借助 AI 改善代码审查、文档、测试和发布流程。
本文介绍 Odysseus 这个本地优先、隐私优先、可自托管的 AI 工作台,记录 Windows 本地部署体验、适用人群、亮点和使用建议。
1.LocalDateTime时间转换 import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateTimeConversionExample { public static void mai...
按照非索引列更新 在可重复读的事务隔离级别下,在非索引列上进行更新和删除会对所有数据行进行加锁,阻止其他会话对边进行任何数据的增删改操作。 如果更新或删除条件为c3=4且c3列上没有索引则: 不允许其他会话插入任意记录,因为所有记录的主键索引上存在X排他锁,无法申请插入意向X锁(lock mode X insert i...
1.背景 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。 我非常喜欢这种自动装配的机制,所以在自己开...
@ConditionalOnExpression 根据表达式选择性加载 @ConditionalOnProperty 根据配置选择性加载 消费者总开关,0关1开 mq.cumsumer.enabled=1 rocketmq消费者开关,true开启,false关闭 rocketmq.comsumer.enabled=fa...
Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。 Actuator同时还可以与外部应用监控系统整合,比如 Prometheus, Graphite, DataDog, I...
概念上的区别 反射是在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的获取所有的属性以及动态调用任意一个方法,强调的是运行状态。 内省(IntroSpector) 是Java 语言对 JavaBean(简称VO)类属性、事件的一种缺省处理方法。内省机制是通过反射来实现。例如类User中有属性name,...
业务场景二 某 SaaS 客服系统,系统里有一个工单查询功能,工单表中存放了几千万条数据,且查询工单表数据时需要关联十几个子表,每个子表的数据也是超亿条。 面对如此庞大的数据量,跟前面的冷热分离一样,每次客户查询数据时几十秒才能返回结果,即便我们使用了索引、SQL 等数据库优化技巧,效果依然不明显。 加上工单表中有些数...
一、业务场景三 为了便于理解,我们通过一个业务场景来入手。 有一个电商系统架构优化工作,该系统中包含用户和订单2个主要实体,每个实体涵盖数据量如下表所示: 实体数据量增长趋势 用户千万级每日10万 订单亿级每日百万级,后续可能千万级 从上表中发现,目前订单数据量已达上亿,并且每日以百万级速度增长,之后还可能是千万级。 ...
业务场景一 曾经经历过供应链相关的架构优化,当时平台上有一个订单功能,里面的主表有几千万数据量,加上关联表,数据量达到上亿。 这么庞大的数据量,让平台的查询订单变得格外迟缓,查询一次都要二三十秒,而且多点击几次就会出现宕机。比如业务员多次查询时,数据库的 CPU 会立马狂飙,服务器线程也降不下来。 当时,我们尝试了优化...
1. Spring Integration 中文手册 Spring Integration 对 Spring 编程模型进行了扩展,使得后者能够支持著名的“企业集成模式”。通过SI(Spring Integration)可以在基于Spring的应用中引入轻量级的“消息驱动模式”,并且支持“通过声明式的适配器”与外部系统进...
ApplicationContext是什么? 简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。 Application Context获取的几种方式 1 直接使用Autowired注入 @Component public class Book1 { @Autow...
参考: 一、墨菲定律:如果事情可能出错,它就会出错。 二、布鲁克定律:大部分情况下,为已经延期的软件项目增加人手只会让项目延期得更厉害。 三、霍夫施塔特定律:项目的实际完成时间总是比预期的要长。 四、康威定律:组织所设计的系统的结构受限于组织的通信结构。(如果某人想要改变的东西属于其他人,那么他就很难改变这些东西。根据...
一、前言 由于项目中读写分离,或者分库分表导致数据库连接有很多。这个时候我们常常会切换多数据源进行业务的合并。mybatis plus 团队新增了dynamic datasource spring boot starter 用来动态切换数据源。 <dependency> <groupId>com...
1.pom文件中引用如下 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox boot starter</artifactId> <version>3.0.0<...
在MySQL 5.7 password字段已从mysql.user表中删除,新的字段名是“authenticalion string”. 选择数据库:use mysql; 更新root的密码: update user set authentication string=password('新密码') where use...
先放结果 1000000 行文本读取结果比对: BufferedReader 耗时: 49ms Scanner 耗时: 653ms Apache Commons IO 耗时: 44ms InputStreamReader 耗时: 191ms FileInputStream 耗时: 3171ms BufferedInpu...
想要了解反射生成class和创建java对象,首先我们要了解什么是反射? 一、什么是反射? Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。 二、反射生成Class的...
问题: 你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? 分析: 先做一个说明,从理论上来说,有两种处理思维,一种需保证数据强一致性,这样性能肯定大打折扣;另外我们可以采用最终一致性,保证性能的基础上,允许一定时间内的数据不一致,但最终数据是一致的...