杜架的技术月刊(202212期)
杜架的技术月刊,主要关注计算机领域,记录本月看到的有价值的信息,主要包含:碎片化思考,阅读笔记分享,开源项目(软件)介绍。内容主题可能有极大的个人喜好偏向,努力做个输出的人,爱我所爱,想我所想,写我所写。

西安.雪
思考
大数据未来发展的趋势在哪里?
在腾讯全球数字生态大会上,腾讯云对这个赛道发展趋势的判断:云原生,数据治理,数智融合,隐私计算。结合自己在公司所接触的情况,我个人比较看重:云原生,数据治理,数智融合 。
云原生
我们公司的技术栈早在 2016 年基本已经全部容器化,redis, mysql,elasticsearch ,kafka 等基础设施早已容易化,但 hadoop 体系却没有容器化,总体感觉大数据体系在云原生化进展特别缓慢,但云原生化带来的收益是很大的,各种云厂商的弹性 MapReduce 也早已在提供服务。
云计算领域非常著名的计算存储分离的架构也慢慢在深入到一些基础设施,该架构也是 kafka 未来最大目标之一。Pulsar 从设计之初就将它列为设计目标之一。
大数据技术本身对硬件资源消耗的要求,对软件运维的要求等各方面,都表明,只有拥抱云原生,大数据才能够避免高门槛,难度大等一系列问题,真正成为所有客户的选择
数据治理
对于这方面,我没有经验,只是在我们内部面临了各种数据层面的问题,数据不可知,数据不可控,数据不可取,数据不可连等等问题,在这个领域也有很多数仓,数据湖(Delta Lake、Iceberg 和 Hudi),元数据管理等产品。
往往企业向数据化转型的途中,使用数据的同时会涉及到很多痛点,这些痛点可能来源于业务、技术、运维、产品等不同的和数据相关的成员

数智融合
自从深度学习技术发展起来以后,人工智能达到了一个新高度。深度学习离不开大量的计算来产生复杂的模型,同样也离不开大量的数据输入进行训练。可以说人工智能的最新进展,就是算力巨大进步和大数据技术的发展相结合的产物。
这种人工智能和大数据结合产生的智能决策的潜力是巨大的,互联网巨头们比如谷歌,脸书,亚马逊,已经通过这一技术的突破赚得盆满钵满。
最近在做公司的个性化推荐,确实学习到了很多新的思路和方法,深度学习的做法和统计学的做法区别很大,存在一定的不可解释性,这方面值得期待。
杜架的技术月刊(202211期)
杜架的技术月刊,主要关注计算机领域,记录本月看到的有价值的信息,主要包含:碎片化思考,阅读笔记分享,开源项目(软件)介绍。内容主题可能有极大的个人喜好偏向,努力做个输出的人,爱我所爱,想我所想,写我所写。

思考
have-do-be vs. be-do-have
两种不同的思维方式,这里用减肥来解释。
第一种思维方式是
1.我想要减肥(do)
2.因为我想要有美好的身材(have)
3.最终我想成为一个健康自信有魅力的人(be)
总结:先做事,做完事之后就会有什么,最终会成为什么
第二种思维方式
1.我要成为一个自信有魅力的人(be)
2.这样一种人会做一些什么事呢(do)
3.做了这些事之后,我会拥有什么呢(have)
总结:先有目标,根据目标倒推出当前要做的事情,做完这些事情之后达成目标就会水到渠成(以终为始)
快速学习
做技术久了,有一个感觉,想要避免 35 岁危机,拥有自己职场的核心竞争力,快速学习绝对是一个秘密武器,但人的能力和精力一定是有限的,如何做到呢?
自己简单梳理一下:
- 保持长期阅读和学习的状态,一切快速学习都是建立在之前的常年累月投资的基础上
- 带着问题去学习,事半功倍
- 做好判断(标准),识别关键(核心)问题,例如:面对一个全新业务场景,如何能够识别 20%的关键业务路径,关键业务痛点
何为知识?
为什么有的时候,会感觉鸡同鸭讲,排除对方理解能力问题,信息差等原因,更大的原因是你讲的思维和听的人的思维不同。
记笔记,写博客算在积累知识吗?在 5 年前我会认为是,但最近越发觉得还不够。再多的信息也不等于知识,
经由我们自己的思维转换并以自己的理解方式吸收的才是自己的知识,
然后再将知识应用结合到日常工作中的才算是个人的能力。
知识是需要整理的,我认为它应该是结构化的。世面上的知识库,书籍,就是个很明显的例子。
适当的对自己的笔记和博客进行整理,我觉得不失为一个好的办法,温故知新,条理化。

《代码精进之路 从码农到工匠》读书笔记
Spring必知必会的技术
Spring 必知必会的技术
参数配置
常用的有两种方式:@Value 和@ConfigurationProperties
| Feature | @ConfigurationProperties |
@Value |
|---|---|---|
| Relaxed binding | Yes | Limited (see note below) |
| Meta-data support | Yes | No |
SpEL evaluation |
No | Yes |
@Value
首先需要在配置类上增加@Configuration
带默认值的
1 | @Value("${kafka.producer.retry:1}") |
使用 Spring Expression Language (SpEL)
1 | @Value("#{'${actuator.send.business.type:eims,item}'.split(',')}") |
@ConfigurationProperties
该方式可以将相应的配置封装在具体类内,对代码组织和封装友好,推进使用这种方式
1 | @ConfigurationProperties(prefix = "my.server") |
1 | my.server: |
JavaNativeImage
Native Image
借助于 GraalVM 和 springboot 3 ,我们可以将 java 应用编译成 native image,脱离 jre 单独运行。
环境搭建
需要安装 GraalVM 和 C++编译环境
安装 GraalVM
下载GraalVM,然后解压到相应目录,配置环境变量:
JAVA_HOME
1 | D:\app\java\graalvm-ce-java17-22.3.0 |
Path
1 | %JAVA_HOME%\bin |
接着验证一下
1 | > java -version |
最后安装native-image,由于功能网络环境限制,先下载,然后使用离线安装:
1 | gu install -L native-image-installable-svm-java17-windows-amd64-22.3.0.jar |
Docker镜像最佳实践
Docker 镜像最佳实践
5 条最佳建议
1.仅安装产线需要依赖与软件
镜像尽可能最小原则
- 仅复制 jar/war
- 使用自定义 JRE(Java Runtime Environment)
2.使用多阶段构建
1 | FROM maven:3.6.3-jdk-11-slim AS build |
杜架的技术月刊(202210期)
杜架的技术月刊,主要关注计算机领域,记录本月看到的有价值的信息,主要包含:碎片化思考,阅读笔记分享,开源项目(软件)介绍。内容主题可能有极大的个人喜好偏向,努力做个输出的人,爱我所爱,想我所想,写我所写。

岁月无痕,流光难驻。用笔印证心灵的虹影,用心感悟时代的呼声,让过往的岁月留存,让看过的世界被更多的人知晓,爱我所爱,想我所想,写我所写,这便是创刊的情和志。
思考
做事
学习任何事务首先要学会基本的规则,然后才能知道什么时候去打破规则。这个原则放在很多地方都能适用。
例如:如何成为一个厉害的程序员,刚入行,大佬会告诉你先按这样写,而这样就是规则,新人最容易创新,但也最容易出错,往往忽略规则,忽略约定成俗,你的视野决定了你看问题的高度,当你掌握基本规则,那么我相信你的很多新奇的想法就可以实现了。为什么大佬告诉你程序员要懂设计原则和设计模式,我想这个应该算是程序员世界的规则吧。
世界的本质是数学
人类孜孜不倦的探索着世界的本质,或者说一个物体的本质,原子核,质子,电子,夸克,这些都可以用数学公式来解释,人的认知能力是有限的,想象力也只局限于三维世界,这些都可以用数学来描述,数学可以让我们看的更远,看到一些我们无法想象的事。三个苹果+两个苹果等于五个苹果,三个桃+两个桃等于五个桃子,抛开外在干扰,3+2=5,这个是本质。外在因素再变化,这个数学本质没有变化,所以我想说未来对世界的探索可能还会有新的发展,新的变化,但数学一定是永恒的。
团队工程经验
一份团队工程经验(新人指导)可以极大的提升团队协作能力,代码质量,生产效率等等方面,而不是手把手教每一个新人。这个其实是做事的第一个阶段,经验文档化,方案演进化。整理了一个思维图:
kafka那些事
kafka那些事
开场白

大家好,很荣幸收到西安 GDG社区的邀请,来做一场有关kafka的分享。
我今天分享的话题是《kafka那些事》,主要内容是关于kafka技术入门分享,说说它的生态,讲讲自己的生产实践经验。
在正式开始之前,我想了解一下大家做后端的都有哪些?请举手。前端呢?
自我介绍

在开始之前,先做个简单的自我介绍,我是truman,目前是Newegg架构师,同时也是西安IT技术圈社区发起人,主要关注于软件架构,中间件平台类开发,大数据基础架构等相关工作。
这里有我的公众号和我们社区的公众号,感兴趣的可以关注一波。
自己也开源了一些项目,做的比较好的有vs code 插件43k下载,给kibana贡献过代码,自己开源的kafka平台KafkaCenter在github上也有1k星。
总结一下:是一个喜欢开源,热爱分享,希望多和大家交流学习。
审视自己,未来的路如何走
在开始之前,我想问你一个问题:你有复盘的习惯吗?
我先回答这个问题,我几乎很少复盘,偶尔只是回顾,不是那种详细的回顾,而是偶然性懊悔和反思。就像写这篇文章一样,但不是复盘。我所以理解的复盘是一个做事的习惯,不仅是工作上,生活上同样是可以复盘的,工作中的经验同样可以在生活中发挥作用的,反哺生活。
今天的分享动力来源于最近看到一篇文章,推荐研读:一个程序员的成长之路

正好就趁此审视自己,规划自己未来的路。

