写代码的陈皮

写代码的陈皮

Memory Ebbs, Love Stays
帖子数
17
写代码的陈皮
2023-06-09 11:16:02

微服务带来的新问题:

  • 自动化

  • 可观测性:日志(ELK)、跟踪(Skywalking)、指标(Prometheus)

  • 分布式问题:分布式事务、数据关联、幂等性

SOA与微服务:

  • SOA:整合不同异构系统,ESB 统一解决;基于配置

  • 微服务:拆分系统,分而治之;约定大于配置

DDD:

  • DDD:指定微服务划分,方法论,熟悉业务再建模;统一语言(业务、技术),化繁为简

原文:https://www.cnblogs.com/skychen1218/p/16424567.html

写代码的陈皮
2023-06-07 03:57:34

Selection 是一个强大的表达式语言功能,它让你通过从一个源集合的条目中进行选择,将其转化为另一个集合。

选择使用的语法是 .?[selectionExpression]。它对集合进行过滤,并返回一个新的集合,其中包含原始元素的一个子集。

List<Inventor> list = (List<Inventor>) parser.parseExpression("members.?[nationality == 'Serbian']")
.getValue(societyContext);        

写代码的陈皮
2023-06-07 03:55:57

安全导航操作符:

通常情况下,当你有一个对象的引用时,你可能需要在访问该对象的方法或属性之前验证它是否为空。为了避免这种情况,安全导航操作符返回null,而不是抛出一个异常。

ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = SimpleEvaluationContext.forReadOnlyDataBinding().build();

Inventor tesla = new Inventor("Nikola Tesla", "Serbian");
tesla.setPlaceOfBirth(new PlaceOfBirth("Smiljan"));

String city = parser.parseExpression("placeOfBirth?.city").getValue(context, tesla, String.class);
System.out.println(city);  // Smiljan

tesla.setPlaceOfBirth(null);
city = parser.parseExpression("placeOfBirth?.city").getValue(context, tesla, String.class);
System.out.println(city);  // null - does not throw NullPointerException!!!

写代码的陈皮
2023-06-07 03:53:43

埃尔维斯(Elvis)运算符:

String displayName = (name != null ? name : "Unknown");
// 埃尔维斯(Elvis)运算符
String name = parser.parseExpression("name?:'Unknown'").getValue(new Inventor(), String.class);
写代码的陈皮
2023-06-06 10:25:06

做新产品在功能方面应该有这样的三条原则:

1、完成客户业务场景的最小闭环(这里需要借鉴市场上的已有产品)

2、拥有自己的特色功能,形成差异化优势(最好能够与公司既有优势能力相关,而非单薄的功能)

3、逐渐形成上文说的“产品的灵魂”。只有想清楚我们的产品能提供怎样的独特价值、如何创新地帮客户解决问题,并且能长期坚持、取舍有度,产品才有灵魂。

写代码的陈皮
2023-05-18 02:32:42

阅读小结:当我们聊技术实力的时候,我们到底在聊什么

概念:

  1. 技术实力 = 解决问题的能力。

  2. 技术要能解决具体问题才有价值。

  3. 问题复杂度决定技术实力的高度。

硬实力:

  1. 点:技术点,JDBC

  2. 线:技术线,一个业务功能的处理过程(相关技术点)

  3. 面:技术面,Java技术(多线程、JVM调优等)

  4. 体:技术体系,架构设计(编程语言、数据库、网络)

软实力:

  1. 发现问题能力(根本问题)

  2. 技术创新(造新轮子)

写代码的陈皮
2023-05-11 06:59:46

CommandLineRunner:用于实现项目启动之前,预加载数据。

详情:https://blog.csdn.net/ruben95001/article/details/78340700

#SpringBoot