Richard's Blog

Richard's Blog

My Learning Journal

知乎上看到关于水货程序员

最近项目上感觉与厂商之间的配合出现了很大的问题,不理解为什么明明多走一步就能满足需求,厂商那边从产品经理到程序员都不会多走这一步,每次开会都走一套流程:质问厂商 –> 厂商解释(狡辩) –> 指出厂商问题 –> 厂商答应跟进。刚好无意间在某网站看到一个问题,有个回答是截取至知乎的,觉得很有意思。

shui_huo_cxy

如何认识这个世界

这个标题想了好久,感觉只能以这种宽泛的说法来概括。
有写点东西的想法的起因是有一天在油管上看视频,旁边推荐了一个视频叫《如何培养深度思考的习惯?》,视频内容很枯燥,一个 AI 合成的声音在读稿子读 10 分钟,总结只有五点,但是每说一点就会说一段很长的解释,具体内容放在文章末尾。

当时无聊就加速看了一下,虽然视频和 AI 合成的声音让人很不耐烦,内容也看似是一些正确的废话,但是突然联想到现在网上有很多在一个社区里说不到十句就开始键起来的网友,他们的很多不太行的观点基本上都能通过视频内容所说的方式自己找答案,而不需要在网上自怨自艾、阴阳怪气。

Mybatis还是JPA

记得在刚还没毕业准备找工作的时候,为了能更有竞争力,在网上找了一套教程跟着做,当时忘记是哪里找的了,是一套 spring + struts2 + hibernate 的技术栈,我照着教程写了一篇,当时没什么感觉,觉得 HQL 也挺方便的,而且大多数时候不需要写 HQL,Hibernate 的注解会自动映射 Entity,只是在编码时需要注意 Entity 的状态,是在线还是离线状态,记得当时为了省事,不管在线还是离线最后都 save 一下。

是否应该为Springboot的Service层创建interface

以前我也是遵循各大教程,在 Service 层创建 interface,然后创建 impl 类实现它。教程中一般会说:

  • 为了扩展,可以在有需要的时候方便的替换为别的实现,通过 Spring 的依赖注入,不需要修改调用端代码
  • 为了让 Spring 使用比 cglib 更高效的动态代理
关于微前端的一些思考

TL;DR

所谓微前端(Micro-Frontend)更像是一种新的高技术栈宽容度的开发框架,它看似能解决一些异构前端整合的问题,却也没有完全解决。对于存量前端项目在接入微前端时需要非常高的适配成本。所以我认为所谓的微前端更多的是对标微服务(Microservice)一种噱头。

Rust编程语言教程——如何使用Rust构建一个To-Do List应用

原文链接Rust Programming Language Tutorial – How to Build a To-Do List App

自从Rust语言在2015的第一次开源,就获得了来自开源社区的大量关注。并且从2016年后,每一年都会被StackOverflow上的程序员票选为最喜爱的编程语言。

Rust由Mozilla开发并设计成一款系统编程语言(像C或C++)。它没有垃圾回收器,所以性能非常好。同时Rust设计得让Rust看起来和使用起来非常的”高级语言”。

Rust的学习曲线被认为有些陡峭。我不是一个精通Rust的人,但是在这个教程中我将尝试教给你一些概念和实际的方法,帮助你深入理解。

Mac删除深信服(sangfor)的EasyConnect

公司使用深信服(Sangfor)的EasyConnect作为vpn客户端,但是在MacOS上安装后无法在废纸篓中完全删除,会提示’不能完成此操作,因为项目‘wheelfile’正在使用中。’。
深信服的官网问答区也有这个问题,但是下面给出的解决办法无法解决问题却被盖上’官方采纳’的章了。

于是在谷歌搜索发现有一篇是关于移除EasyConnect常驻后台进程的文章,给了我一点启发,虽然不知道此方案能否真的将EasyConnect删除干净,但是至少能将一些EasyConnect安装时的守护进程和自动启动之类的配置删除掉。

Nginx配置一个端口同时处理多种协议

在工作中遇到一个问题,公司因为安全的要求,以前服务在公司内统一使用的http访问方式,现在对一些非我们部门内部的访问需要改为https。这个很简单,Nginx直接配置就完了。
但是过了一天有同事反应有些系统因为很久了,已经没人维护了,所以暂时没法立即修改,还是需要使用http进行访问,但此时已经有一些系统使用相同的端口改为了https访问。
现在就出现了可能同一时间访问的客户端可能会分别使用http和https访问同一端口,但是Nginx的server配置一个server端口只能配置一个协议,于是问题就变成了如何让Nginx使用多种协议监听同一个端口。

数据库中间件MyCat或dble在activiti-5.22中报invalid stream header: EFBFBDEF的问题处理记录

因为项目要与数据库实例解耦和为了将来对数据进行分库分表的需要,最近对公司项目与数据库之间加入数据库中间件,因为MyCat-2.0在beta状态,MyCat-1.6已经不怎么进行维护了。所以选择了对MyCat进行二次开发的dble。

问题

项目中有使用activiti-5.22版本,在切换至dble后发现在执行一些activiti表的操作时会出现如下异常:

1
2
3
### Cause: org.activiti.engine.ActivitiException: Couldn't deserialize object in variable xxxx with root cause

java.io.StreamCorruptedException: invalid stream header: EFBFBDEF

Golang的交叉编译

之前学习 golang 只是想了解一下这个新的热门语言,并没有深究,也没有机会在工作中使用。

今天刚才遇到一个关于 golang 交叉编译的问题。

需求是这样的,filebeat 官方没有支持 AIX 系统,领导想试试能不能自己编译出一个 AIX 系统的字节码文件,把 firebeat 安装在 AIX 上。

我之前学习 golang 的时候有看过关于 golang 编译出来的可执行文件内的库是静态连接,把库包含在了可执行文件里,所以编译出来的文件比较大。

刚好 filebeat 是用 golang 编写的,那么既然库都是静态链接的,那应该支持交叉编译,比如在 windows 环境编译一个 linux 环境的可执行文件。

avatar
Richard
stay hungry, stay foolish