1. Spring and Java
1. Spring 和 Java
>> Transactional Rollback Strategies with Spring Cloud Stream and Apache Kafka [spring.io]
>> 使用 Spring Cloud Stream 和 Apache Kafka 的事务回滚策略 [spring.io] </p
Transactions in distributed systems are hard, but Spring has some tooling to help us with them.
分布式系统中的事务很难处理,但 Spring 提供了一些工具来帮助我们处理这些事务。
>> Apache Kafka’s Exactly-Once Semantics in Spring Cloud Stream Kafka Applications [spring.io]
>> Spring Cloud Stream Kafka 应用程序中的 Apache Kafka 精确一次性语义 [spring.io] </p
Kafka “broke” the rules of physics and enabled the exactly-once semantics – let’s see how to leverage it in Spring.
Kafka “打破 “了物理规则,启用了精确一次性语义,让我们看看如何在 Spring 中利用它。
>> Support Markdown in javadoc Comments [inside.java]
>> 在 javadoc 注释中支持 Markdown [inside.java] </p
The Java team is researching enabling Markdown inside Javadoc comments… the future is almost here 🙂
Java 团队正在研究在 Javadoc 注释中启用 Markdown 功能……未来即将到来 🙂
Also worth reading:
- >> Changes Included in the Stable release 23.08 of Azul Zulu Prime Builds of OpenJDK [foojay.io]
- >> The best way to use Spring Data JPA Stream methods [vladmihalcea.com]
- >> State of the Software Supply Chain Report: Key Takeaways for Java Developers [foojay.io]
- >> FEPCOS-J (2) – Declaratively compose networked systems in Java [foojay.io]
- >> Writing integration tests with GreenMail and Jsoup for Spring Boot applications that send Emails [tech.asimio.net]
- >> Python “magic” methods [blog.frankel.ch]
- >> Level-up your Java Debugging Skills with on-demand Debugging [foojay.io]
- >> The Files in JDK 21 [foojay.io]
Webinars and presentations:
网络研讨会和演讲:
- >> Teaching Old Streams New Tricks [inside.java]
- >> ArrayList vs. LinkedList – JEP Cafe #20 [inside.java]
- >> Where the JVM is Entering the Era of AI Performance Tuning! [inside.java]
- >> Java Language Architect Brian Goetz [spring.io]
- >> Project Leyden [inside.java]
- >> Java 21… and Beyond [inside.java]
- >> G1: Java’s Default Garabge Collector – Stack Walker #4 [inside.java]
- >> Runtime efficiency with Spring (today and tomorrow) [spring.io]
- >> Why JUnit’s Dynamic Tests ARE SO GOOD [marcobehler.com]
Time to upgrade:
是时候升级了:
- >> Spring Framework 6.0.13 available now as well as 6.1 RC1 [spring.io]
- >> Spring Data 2023.0.5, 2022.0.11, and 2021.2.17 released and 2023.1 goes RC1 [spring.io]
- >> Spring Cloud Dataflow 2.11.1 Released [spring.io]
- >> Quarkus 2.16.12.Final, 3.4.3 , and 3.5.0.CR1 Released [quarkus.io]
- >> JHipster v8.0.0-rc.1 Released [jhipster.tech]
- >> Eclipse Microprofile 6.1 Released [eclipse.org]
- >> Eclipse Vert.x 4.4.6 Released [eclipse.org]
- >> JJWT 0.12.3 Released [github.com/jwtk/jjwt]
- >> Elasticsearch 8.10.4 Released [elastic.co]
2. Technical & Musings
2.技术与思考
>> One does not simply deliver software [benjiweber.co.uk]
>> 一个人不能简单地交付软件 [benjiweber.co.uk] 。
“Delivery” is not the best word to describe software production.
“交付 “并不是描述软件生产的最佳词汇。
This should be viewed more as a process of exploration and learning, emphasizing the need for adaptability, experimentation, and continuous improvement rather than strict adherence to predetermined plans and routes.
这应更多地被视为一个探索和学习的过程,强调的是适应性、实验和持续改进的必要性,而不是严格遵守预定的计划和路线。
>> Internal and external events, or how to design event-driven API [event-driven.io]
>> 内部和外部事件,或如何设计事件驱动的 API [event-driven.io] </p
It’s crucial to differentiate between internal and external events to avoid issues such as leaking abstractions and coupling.
区分内部事件和外部事件对于避免抽象泄漏和耦合等问题至关重要。
Also worth reading:
还值得一读:
- >> Send Your Logs To Loki [foojay.io]
- >> Patterns For The Design Of Microservices – Part 1 [foojay.io]
- >> GraalVM Replaces the GraalVM Updater with Language Libraries [infoq.com]
- >> Introduction to Kotest [reflectoring.io]
- >> Book review: “Get Your Hands Dirty on Clean Architecture – Second Edition” [foojay.io]
- >> Engineering Team Lessons from Cycling [benjiweber.co.uk]
3. Pick of the Week
3.本周精选
>> Strong static typing, a hill I’m willing to die on… [svix.com]
>>强大的静态键入,一座我愿意为之牺牲的山丘…… [svix.com]